.NET Framework, C#, Evento, MEF, Microsoft, Microsoft Tech·Ed, Visual Studio

O evento Tech•Ed Brasil 2010 e a minha palestra de MEF

O sucesso do evento

Nos dias 13, 14 e 15 de setembro de 2010 houve a realização do evento Microsoft Tech•Ed Brasil 2010 (http://www.teched.com.br/), que corresponde à décima edição do evento no Brasil, e teve a presença de 2.363 participantes. Veja a seguinte entrevista com a Renata Rochel, principal organizadora, sobre o sucesso da edição de 2010 do evento no Brasil.

Durante os três dias do evento, houve 193 palestras técnicas distribuídas em 15 salas e uma sessão geral que foi transmitida ao vivo pelo e teve duração de 3 horas e 30 minutos.

A sessão Ask the Experts

Na noite de 14 de setembro de 2010, eu participei da sessão Ask the Experts na mesa .NET Framework / WCF / WPF / WF, que teve duração de 2 horas. Eu respondi a perguntas sobre arquitetura de software e, principalmente, sobre o Managed Extensibility Framework (MEF), que foi assunto da minha palestra no dia seguinte.

Depois, eu tive a oportunidade de conhecer pessoalmente o MVP Israel Aece. Conversamos durante muito tempo e foi ótimo poder trocar ideias com um profissional tão competente tecnicamente.

No Ask the Experts, eu tive a oportunidade de conhecer muitos profissionais que estão trabalhando, ou planejando trabalhar, em sistemas bem interessantes. Foi muito bom poder verificar que os profissionais de .NET estão cada vez mais preocupados com arquitetura e boas práticas no desenvolvimento de software. O uso de boas práticas de POO, design patterns, desenvolvimento ágil, TDD, dentre outros, já são uma realidade para muitos profissionais de .NET. Uma grande evolução quando comparada com a atitude há alguns anos atrás.

Um grupo de desenvolvedores de uma empresa comentou sobre um sistema em que estavam planejando usar Managed Extensibility Framework (MEF) para adaptar as regras de negócios para diferentes clientes. Eles têm a necessidade de personalizar telas de aplicações clientes em Silverlight para clientes diferentes. Para esta tarefa, eu recomendo o uso do Prism, anteriormente conhecido como Composite Application Guidance for WPF and Silverlight. O Prism fornece instruções e uma biblioteca reutilizável para construção de aplicações WPF e Silverlight modulares e flexíveis. Maiores informações podem ser encontradas no site do CodePlex, no seguinte endereço: http://compositewpf.codeplex.com/. Atualmente, a equipe está trabalhando na próxima versão do Prism, denominada Prism v4, para o Silverlight 4 e o .NET Framework 4.

Minha palestra: DEV302 – Como e onde devo utilizar o Managed Extensibility Framework (MEF)? (Nível 300)

Apresentação teórica

Na minha palestra, eu abordei o Managed Extensibility Framework (MEF). O MEF é um framework introduzido no .NET Framework 4 e no Silverlight 4 que simplifica a criação de aplicações extensíveis. Ele facilita a transformação de aplicações estaticamente compiladas para aplicações dinamicamente compostas.

Abaixo, segue a minha apresentação teórica do MEF no Microsoft Tech·Ed Brasil 2010.

Eu fiz toda a apresentação teórica durante, aproximadamente, 20 minutos.

Demonstração

Depois, eu reservei o restante da palestra para realizar uma demonstração, a partir do zero, para mostrar como usar os principais conceitos do MEF na prática. Eu iniciei a demonstração exemplificando como usar o princípio da inversão de controle (IoC – Inversion of Control) para injetar dependências em um tipo que depende de outro tipo. Eu comentei sobre a injeção por construtor e sobre a injeção por propriedade. Deste modo, os participantes tiveram a oportunidade de acoompanhar a codificação de uma injeção de dependência.

Observe que, no início da demonstração, não houve o uso de MEF. O objetivo foi mostrar que na injeção de dependência você tem um componente que não é responsável por obter suas dependências. Estas dependências devem ser injetadas no componente. Primariamente, os desenvolvedores usam contêineres de injeção de dependência para desacoplar seus sistemas e para facilitar o desenvolvimento de testes. No MEF utiliza-se injeção de dependência em termos do princípio. Em geral, os contêineres de inversão de controle (IoC) são baseados em convenção ou registro, enquanto o MEF possui um mecanismo de descoberta.

Posteriormente, eu utilizei o MEF para definir as partes de composição (atributos para importações e exportações) e usei o contêiner de composição para fazer as combinações entre as partes. Durante a demonstração, eu fui mostrando os vários catálogos disponíveis para serem usados na composição: catálogo de tipos, catálogo de assembly, catálogo de diretório e catálogo de agregação.  Além disto, eu mostrei as novas classes acrescentadas no .NET Framework 4 para criação tardia de instâncias.

Finalmente, eu simulei a colocação da aplicação em produção observando uma pasta de extensões, o que permitiria que a mesma fosse estendida automaticamente. Então, eu fechei a apresentação desenvolvendo um componente para estender as operações suportadas pela aplicação. Compilei o componente como um assembly .dll e coloquei na pasta de extensões. Então, a aplicação reconheceu as extensões automaticamente e suportou as novas operações. Foi muito gratificante ver a reação dos espectadores da palestra, que aplaudiram ao verificarem a extensão funcionando sem a necessidade de registro ou configuração. Foi um sinal que a mensagem desejada foi passada com sucesso.

Eu fiquei muito satisfeito ao constatar alguns MVPs assistindo à minha palestra, como o Bruno Sonino, o Renato Haddad, o Luciano Moreira (Luti) e o Israel Aece, dentre outros profissionais competentes. Caros colegas, eu agradeço muito pelas suas presenças e espero que vocês tenham gostado.

Abaixo, segue o link para baixar a solução do Visual Studio 2010, compactada no formato .zip, exatamente como foi realizada na demonstração no dia 15 de setembro de 2010.

DEV302_RogerioMoraesDeCarvalho_MefDemo.zip

Eu estarei fazendo uma série de melhorias no código para apresentar em um futuro WebCast do MSDN para aqueles que não assistiram a minha palestra no Tech•Ed Brasil 2010 ou que queiram assistir novamente. Uma destas melhorias seguirá uma dica do meu amigo Luciano Moreira Caixeta (Luti), MVP de SQL Server, que sugeriu que eu utilizasse LINQ para filtrar as partes de composição. Certamente, esta é uma solução muito mais elegante que o laço foreach que eu usei para filtrar as extensões. Quem tiver interesse no WebCast, basta me seguir pelo Twitter (@rogeriomc) que eu estarei informando quando ele será realizado. Além disto, eu estou programando um artigo de MEF para a revista Mundo.NET.

Rogério Moraes de Carvalho
Twitter: @rogeriomc

2 comentários sobre “O evento Tech•Ed Brasil 2010 e a minha palestra de MEF

    1. Olá Gesilene,

      Eu te agradeço por ter escolhido assistir à minha palestra no Tech·Ed Brasil 2010 e fico satisfeito em saber que você gostou.

      Realmente, o link para o arquivo com a demonstração estava quebrado. Eu acabei de arrumar. Se tiver problema novamente, basta entrar em contato.

      Rogério

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s