MEF E <br />ASP.NET MVC 3<br />
Quemsoueu?	<br />Cadu Souza<br />Twitter: @cadu_sza<br />www.arquiteturando.com.br<br />FocoemArquitetura de Software, Boa...
AplicaçõesMonoliticas a origem do caos?	<br />
O Quedáorigem a estetipo de aplicação?<br />Desenvolvimentosem TDD<br />Ignorarprincípios de desenvolvimento<br />Falta de...
Manutenção? Evolução? NÃOOOOOOOO<br />
E agora quem poderá nos defender?<br />
Composição e Extensibilidade<br />
Fundamentos e Aliados<br />TDD<br />S.O.L.I.D<br />Tecnologiasaderentes a extensão e composição<br />Padrões e Princípios ...
Aplicação que abraça mudanças!<br />
Hot Spots – Pontos de extensão na sua aplicação<br />
Injetar não dói e soluciona?<br />
MEF para que ele veio?<br />
Arquitetura do MEF<br />
Parts e ComposableParts<br />[Import]<br />[Export]<br />IContract<br />Part <br />
Catalogos e Containers<br />Catalog<br />Part<br />MEF container<br />
O Processo de composição<br />
Ciclo de vida no MEF<br />
MEF E MVC Casamento ideal<br />
Resolução de Dependências no MVC<br />ASP.NET MVC 3 usa a interface IDependencyResolver<br />Membros de IDependencyResolve...
Implementação baseada no MEF<br />Usando MEF ContribMefcontrib possui um conventionModel<br />Opções de implementação de I...
Conventions no MefContrib-MVC3<br />public class MvcApplicationRegistry : PartRegistry {  public MvcApplicationRegistry() ...
Unity Application Block<br />StructureMap<br />CastleWindsor<br />IDependencyResolver flexível a framworks de DI existente...
Aplicação LEGO<br />
MEF descobre as dependências e <br />Manutenível<br />Evolutiva<br />Self-Validating<br />Timely<br />TDD + MEF + MVC<br />
Conclusão<br />Aplicações mais robustas<br />Manutenível<br />Evolutiva<br />Construir a aplicação como um LEGO<br />Ter u...
Web camps   mef
Próximos SlideShares
Carregando em…5
×

Web camps mef

482 visualizações

Publicada em

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Web camps mef

  1. 1.
  2. 2. MEF E <br />ASP.NET MVC 3<br />
  3. 3. Quemsoueu? <br />Cadu Souza<br />Twitter: @cadu_sza<br />www.arquiteturando.com.br<br />FocoemArquitetura de Software, Boas Práticas, TDD, DDD<br />Certified Scrum Master<br />Articulista da Revista .NET Magazine<br />
  4. 4. AplicaçõesMonoliticas a origem do caos? <br />
  5. 5. O Quedáorigem a estetipo de aplicação?<br />Desenvolvimentosem TDD<br />Ignorarprincípios de desenvolvimento<br />Falta de sabedorianahora de aplicarpadrões de projetoouaplicação<br />Focosomentenaentrega e desprezo da qualidade de código<br />Forte Acoplamento e baixacoesão<br />
  6. 6. Manutenção? Evolução? NÃOOOOOOOO<br />
  7. 7. E agora quem poderá nos defender?<br />
  8. 8. Composição e Extensibilidade<br />
  9. 9. Fundamentos e Aliados<br />TDD<br />S.O.L.I.D<br />Tecnologiasaderentes a extensão e composição<br />Padrões e Princípios de Desenvolvimento<br />BaixoAcoplamento e Alta coesão<br />
  10. 10. Aplicação que abraça mudanças!<br />
  11. 11. Hot Spots – Pontos de extensão na sua aplicação<br />
  12. 12. Injetar não dói e soluciona?<br />
  13. 13. MEF para que ele veio?<br />
  14. 14. Arquitetura do MEF<br />
  15. 15. Parts e ComposableParts<br />[Import]<br />[Export]<br />IContract<br />Part <br />
  16. 16. Catalogos e Containers<br />Catalog<br />Part<br />MEF container<br />
  17. 17. O Processo de composição<br />
  18. 18. Ciclo de vida no MEF<br />
  19. 19. MEF E MVC Casamento ideal<br />
  20. 20. Resolução de Dependências no MVC<br />ASP.NET MVC 3 usa a interface IDependencyResolver<br />Membros de IDependencyResolverGetService()GetServices()<br />
  21. 21. Implementação baseada no MEF<br />Usando MEF ContribMefcontrib possui um conventionModel<br />Opções de implementação de IDependencyResolver<br />
  22. 22. Conventions no MefContrib-MVC3<br />public class MvcApplicationRegistry : PartRegistry { public MvcApplicationRegistry() {<br /> Scan(x => {<br />x.Assembly(Assembly.GetExecutingAssembly());x.Directory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"));<br /> });<br /> Part()<br /> .ForTypesAssignableFrom<IController>()<br /> .MakeNonShared()<br /> .ExportTypeAs<IController>()<br /> .ExportType()<br /> .Imports( // ... ); }<br />}<br />
  23. 23. Unity Application Block<br />StructureMap<br />CastleWindsor<br />IDependencyResolver flexível a framworks de DI existentes<br />
  24. 24. Aplicação LEGO<br />
  25. 25. MEF descobre as dependências e <br />Manutenível<br />Evolutiva<br />Self-Validating<br />Timely<br />TDD + MEF + MVC<br />
  26. 26. Conclusão<br />Aplicações mais robustas<br />Manutenível<br />Evolutiva<br />Construir a aplicação como um LEGO<br />Ter uma aplicação testável<br />

×