SlideShare une entreprise Scribd logo
1  sur  27
MEF E  ASP.NET MVC 3
Quemsoueu?	 Cadu Souza Twitter: @cadu_sza www.arquiteturando.com.br FocoemArquitetura de Software, Boas Práticas, TDD, DDD Certified Scrum Master Articulista da Revista .NET Magazine
AplicaçõesMonoliticas a origem do caos?
O Quedáorigem a estetipo de aplicação? Desenvolvimentosem TDD Ignorarprincípios de desenvolvimento Falta de sabedorianahora de aplicarpadrões de projetoouaplicação Focosomentenaentrega e desprezo da qualidade de código Forte Acoplamento e baixacoesão
Manutenção? Evolução? NÃOOOOOOOO
E agora quem poderá nos defender?
Composição e Extensibilidade
Fundamentos e Aliados TDD S.O.L.I.D Tecnologiasaderentes a extensão e composição Padrões e Princípios de Desenvolvimento BaixoAcoplamento 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] IContract Part
Catalogos e Containers Catalog Part MEF container
O Processo de composição
Ciclo de vida no MEF
MEF E MVC Casamento ideal
Resolução de Dependências no MVC ASP.NET MVC 3 usa a interface IDependencyResolver Membros de IDependencyResolverGetService()GetServices()
Implementação baseada no MEF Usando MEF ContribMefcontrib possui um conventionModel Opções de implementação de IDependencyResolver
Conventions no MefContrib-MVC3 public 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 Block StructureMap CastleWindsor IDependencyResolver flexível a framworks de DI existentes
Aplicação LEGO
MEF descobre as dependências e  Manutenível Evolutiva Self-Validating Timely TDD + MEF + MVC
Conclusão Aplicações mais robustas Manutenível Evolutiva Construir a aplicação como um LEGO Ter uma aplicação testável
MEF e ASP.NET MVC 3

Contenu connexe

En vedette

En vedette (8)

4.Sergio Montes. Experiencias3
4.Sergio Montes. Experiencias34.Sergio Montes. Experiencias3
4.Sergio Montes. Experiencias3
 
Asp net lab1-1
Asp net lab1-1Asp net lab1-1
Asp net lab1-1
 
Hand written-notes(2)
Hand written-notes(2)Hand written-notes(2)
Hand written-notes(2)
 
Mate
MateMate
Mate
 
RO & RAPN
RO & RAPNRO & RAPN
RO & RAPN
 
Records fit for discovery
Records fit for discoveryRecords fit for discovery
Records fit for discovery
 
Revolução do consumismo
Revolução do consumismoRevolução do consumismo
Revolução do consumismo
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 

Similaire à MEF e ASP.NET MVC 3

Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
Introdução a BDD
Introdução a BDDIntrodução a BDD
Introdução a BDDIsmael
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
Implantando Continuous Delivery com TFS
Implantando Continuous Delivery com TFSImplantando Continuous Delivery com TFS
Implantando Continuous Delivery com TFSAndré Dias
 
Engenharia de Software
Engenharia de SoftwareEngenharia de Software
Engenharia de SoftwareSm3nd3s29
 
3º bate papo com a comunidade
3º bate papo com a comunidade3º bate papo com a comunidade
3º bate papo com a comunidadeFabio Hara
 
FRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica CorporativaFRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica CorporativaJaguaraci Silva
 
DevOps em Cloud utilizando Visual Studio Online e Microsoft Azure
DevOps em Cloud utilizando Visual Studio Online e Microsoft AzureDevOps em Cloud utilizando Visual Studio Online e Microsoft Azure
DevOps em Cloud utilizando Visual Studio Online e Microsoft AzureDaniel Semedo
 
Tópicos Emergentes - DevOps
Tópicos Emergentes - DevOpsTópicos Emergentes - DevOps
Tópicos Emergentes - DevOpsSaulo Lopes
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeGlobalcode
 

Similaire à MEF e ASP.NET MVC 3 (20)

Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
SPA com CSharp
SPA com CSharpSPA com CSharp
SPA com CSharp
 
Introdução a BDD
Introdução a BDDIntrodução a BDD
Introdução a BDD
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
DDD
DDDDDD
DDD
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
 
Implantando Continuous Delivery com TFS
Implantando Continuous Delivery com TFSImplantando Continuous Delivery com TFS
Implantando Continuous Delivery com TFS
 
Apresentação TCC I - IES/SC 2013
Apresentação TCC I - IES/SC 2013Apresentação TCC I - IES/SC 2013
Apresentação TCC I - IES/SC 2013
 
Engenharia de Software
Engenharia de SoftwareEngenharia de Software
Engenharia de Software
 
Es 09
Es 09Es 09
Es 09
 
3º bate papo com a comunidade
3º bate papo com a comunidade3º bate papo com a comunidade
3º bate papo com a comunidade
 
FRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica CorporativaFRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica Corporativa
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
DevOps em Cloud utilizando Visual Studio Online e Microsoft Azure
DevOps em Cloud utilizando Visual Studio Online e Microsoft AzureDevOps em Cloud utilizando Visual Studio Online e Microsoft Azure
DevOps em Cloud utilizando Visual Studio Online e Microsoft Azure
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Tópicos Emergentes - DevOps
Tópicos Emergentes - DevOpsTópicos Emergentes - DevOps
Tópicos Emergentes - DevOps
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli
 

MEF e ASP.NET MVC 3