MEF E ASP.NET MVC 3
Quemsoueu?	Cadu SouzaTwitter: @cadu_szawww.arquiteturando.com.brFocoemArquitetura de Software, Boas Práticas, TDD, DDDCertified Scrum MasterArticulista da Revista .NET Magazine
AplicaçõesMonoliticas a origem do caos?
O Quedáorigem a estetipo de aplicação?Desenvolvimentosem TDDIgnorarprincípios de desenvolvimentoFalta de sabedorianahora de aplicarpadrões de projetoouaplicaçãoFocosomentenaentrega e desprezo da qualidade de códigoForte Acoplamento e baixacoesão
Manutenção? Evolução? NÃOOOOOOOO
E agora quem poderá nos defender?
Composição e Extensibilidade
Fundamentos e AliadosTDDS.O.L.I.DTecnologiasaderentes a extensão e composiçãoPadrões e Princípios de DesenvolvimentoBaixoAcoplamento e Alta coesão
Aplicação que abraça mudanças!
Hot Spots – Pontos de extensão na sua aplicação
Injetar não dói e soluciona?
MEF para que ele veio?
Arquitetura do MEF
Parts e ComposableParts[Import][Export]IContractPart
Catalogos e ContainersCatalogPartMEF container
O Processo de composição
Ciclo de vida no MEF
MEF E MVC Casamento ideal
Resolução de Dependências no MVCASP.NET MVC 3 usa a interface IDependencyResolverMembros de IDependencyResolverGetService()GetServices()
Implementação baseada no MEFUsando MEF ContribMefcontrib possui um conventionModelOpções de implementação de IDependencyResolver
Conventions no MefContrib-MVC3public class MvcApplicationRegistry : PartRegistry {  public MvcApplicationRegistry() {    Scan(x => {x.Assembly(Assembly.GetExecutingAssembly());x.Directory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"));    });    Part()      .ForTypesAssignableFrom<IController>()      .MakeNonShared()      .ExportTypeAs<IController>()      .ExportType()      .Imports(        // ...       );  }}
Unity Application BlockStructureMapCastleWindsorIDependencyResolver flexível a framworks de DI existentes
Aplicação LEGO
MEF descobre as dependências e ManutenívelEvolutivaSelf-ValidatingTimelyTDD + MEF + MVC
ConclusãoAplicações mais robustasManutenívelEvolutivaConstruir a aplicação como um LEGOTer uma aplicação testável
Web camps   mef

Web camps mef