Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework...
-
Upload
rogerio-moraes-de-carvalho -
Category
Technology
-
view
2.227 -
download
0
description
Transcript of Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework...
![Page 1: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/1.jpg)
SETEMBRO, 2010 | SÃO PAULO
![Page 2: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/2.jpg)
Rogério Moraes de CarvalhoConsultor e Instrutor de TIVITA Informática
@rogeriomc
Como e onde devo utilizar o Managed Extensibility Framework (MEF)?NÍVEL TÉCNICO: 300
CÓDIGO DA SESSÃO: DEV302
![Page 3: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/3.jpg)
4
AgendaManaged Extensibility Framework (MEF)
ObjetivosPrincípio aberto-fechadoPlug-insProblemas de extensibilidadeO Managed Extensibility Framework (MEF)O MEF como facilitador da extensibilidadeDiagrama de extensibilidade com MEFFuncionamento do MEFExportação e importação no MEFComposição no MEF
![Page 4: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/4.jpg)
5
AgendaManaged Extensibility Framework (MEF)
Demo 1: Fundamentos do MEFCriação tardia de instânciaDemo 2: Criação tardia de instânciaTempo de vida das partesDemo 3: Tempo de vida das partesMEF Contrib
![Page 5: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/5.jpg)
6
ObjetivosPrincipais assuntos a serem abordados
Exposição da importância da extensibilidade no desenvolvimento de software
Introdução à nova biblioteca MEFIncorporada ao .NET Framework 4 e ao Silverlight 4
Apresentação de quando e como o MEF deve ser usado
![Page 6: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/6.jpg)
7
Princípio aberto-fechadoIntrodução e conceito do princípio
Termo introduzido por Bertrand Meyer na primeira edição do seu livro Object-Oriented Software Construction, em 1988
Em 1996, Robert C. Martin escreveu o influente artigo “The Open-Closed Principle”
Entidades de software devem serabertas para extensão,mas fechadas para modificação
Entidade
![Page 7: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/7.jpg)
8
Plug-insConceito e vantagens de uso
O que é um plug-in?Componente de software para acrescentar funcionalidades específicas a uma aplicação maior
Vantagens de uso de plug-insExtensão de aplicações com novas funcionalidades desenvolvidas por terceirosFacilita o acréscimo de novas funcionalidadesReduz o tamanho de uma aplicaçãoSeparação de código-fonte numa aplicação devido a incompatibilidades em licenças de software
Plug-inAplicação
hospedeira
Gerenciadorde plug-ins
Serviços
![Page 8: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/8.jpg)
9
Problemas de extensibilidadeDificuldades mais comuns
É comum que aplicações hospedeiras criem uma infraestrutura própria para permitirem extensão
Sem reuso em outras implementaçõesAlguns frameworks .NET de extensão
Managed Add-In Framework (MAF)Projetado no .NET Framework para gerenciar extensões
Plux.NEThttp://ase.jku.at/plux/
Mono.Addinshttp://monoaddins.codeplex.com/
Compact Plugs & Compact Injectionhttp://compactplugs.codeplex.com/
![Page 9: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/9.jpg)
10
O Managed Extensibility Framework (MEF)Conceito
O que é o MEF?Framework para simplificar a criaçãode aplicações extensíveis
Que recursos o MEF oferece?Recursos de descoberta e composição que permitem carregar dinamicamente extensões de aplicações
Qual a principal vantagem fornecida pelo MEF?Facilidade de transformar aplicações estaticamente compiladas para dinamicamente compostas
![Page 10: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/10.jpg)
11
O MEF como facilitador da extensibilidadeSolução de problemas de extensibilidade
Padrão para exposição e consumo de extensõesFacilita o reuso de extensões em várias aplicações
Diversas abordagens possíveis de descobertaFacilita a localização e o carregamento de extensõesDispensa a necessidade do registro explícito das extensões disponíveis
Metadados permitem marcar extensõesFacilita a consulta e filtragem de extensões
![Page 11: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/11.jpg)
12
Diagrama de extensibilidade com MEFRelacionamento entre os componentes do MEF
![Page 12: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/12.jpg)
13
Funcionamento do MEFCatálogo e contêiner e partes de composição
Simplificadamente, o MEF é composto por:Catálogo (Catalog)
Responsável por descobrir extensõesContêiner de composição (CompositionContainer)
Responsável por coordenar a criação e satisfazer as dependências das partes de composição
Parte de composição (ComposablePart)Importações (Imports)
Especificação declarativa de suas dependênciasExportações (Exports)
Especificação declarativa de suas capacidades
![Page 13: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/13.jpg)
14
Exportação e importação no MEFCapacidades e dependências de partes de composição
Exportação (Export)Uma parte de composição oferece um ou mais serviços (exportações)
Importação (Import)Uma parte de composição pode depender de um ou mais serviços externos (importações)
Contrato (Contract)Exportações e importações têm contratosContratos são as pontes entre exportações e importações
![Page 14: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/14.jpg)
15
Exportação e importação no MEFCapacidades e dependências de partes de composição
Exportação
Importação
Composição
Eu tenho Eu preciso
![Page 15: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/15.jpg)
16
Composição no MEFCatálogo
O catálogo fornece as partes
Catálogo
![Page 16: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/16.jpg)
17
Composição no MEFContêiner de composição
O contêiner faz as combinações
Catálogo
![Page 17: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/17.jpg)
18
Composição no MEFCombinações das partes de composição dos catálogos
O contêiner faz as combinações
Catálogo
TypeCatalog
AssemblyCatalog
DirectoryCatalog
AggregatingCatalog
![Page 18: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/18.jpg)
19
Precisa de um IContrato[Import]Tem um
IContrato[Export]
Composição no MEFEsquema de composição
Aplicação hospedeira
Extensão AContêiner de composição
Parte
Parte
![Page 19: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/19.jpg)
20
Fundamentos do MEF
![Page 20: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/20.jpg)
21
Criação tardia de instância
Parte A Parte B
![Page 21: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/21.jpg)
22
Criação tardia de instância
Parte A Lazy<B>
![Page 22: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/22.jpg)
23
Criação tardia de instância
![Page 23: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/23.jpg)
24
Tempo de vida das partes
ContêinerContêiner
Parte A Parte B Parte B Parte B
Parte compartilhada(Shared)
Parte não compartilhada(Non-Shared)
![Page 24: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/24.jpg)
25
Tempo de vida das partes
![Page 25: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/25.jpg)
26
MEF ContribExtensões ao MEF
O que é o MEF Contrib?Biblioteca de extensões ao Managed Extensibility Framework (MEF) desenvolvida pela comunidade
RecursosExtensões
Catálogo genéricoIntegração
Integração com UnityModelos de programação
Modelo de ProviderModelo de convenções
![Page 26: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/26.jpg)
27
![Page 27: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/27.jpg)
28
Conteúdo relacionadoSessões do Tech·Ed Brasil 2010
DEV 201 - Novidades e razões para migrar para o Microsoft .NETFramework 4 (João Paulo Clementi e Diego Blanco)
DEV 301 - Novidades do Windows Communication Foundation (WCF) no .NET Framework 4 (Evilázaro Alves)
DEV 305 - Implementando Serviços RESTful usando o Microsoft .NET Framework (Israel Aece)
DEV 402 - Desenvolvimento com C# no mundo moderno(Alfred Myers)
![Page 28: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/28.jpg)
29
Conteúdo relacionadoSites e livros indicados
MEF Community Site (Hospedado no CodePlex)http://mef.codeplex.com/
MEF Contrib (Hospedado no CodePlex)http://mefcontrib.codeplex.com/
Object-Oriented Software Construction, 2nd EditionAutor: Bertrand Meyer - Editora: Prentice Hall
Clean Code: A Handbook of Agile Software CraftsmanshipAutor: Robert C. Martin - Editora: Prentice Hall
![Page 29: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/29.jpg)
© 2008 Microsoft Corporation. Todos os direitos reservados. Microsoft, Windows, Windows Vista e outros nomes de produtos são ou podem ser marcas registradas e/ou marcas comerciais nos EUA e/ou outros países.Este documento é meramente informativo e representa a visão atual da Microsoft Corporation a partir da data desta apresentação. Como a Microsoft deve atender a condições de mercado em constante alteração, este
documento não deve ser interpretado como um compromisso por parte da Microsoft, e a Microsoft não pode garantir a precisão de qualquer informação fornecida após a data desta apresentação. A MICROSOFT NÃO DÁ QUALQUER GARANTIA, SEJA ELA EXPRESSA, IMPLÍCITA OU ESTATUTÁRIA, REFERENTE ÀS INFORMAÇÕES DESTA APRESENTAÇÃO.
![Page 30: Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)](https://reader035.fdocumentos.tips/reader035/viewer/2022062312/5561e8d9d8b42aa5068b5140/html5/thumbnails/30.jpg)
Por favor,preencha a avaliação!DEV302 - Como e onde devo utilizar o
Managed Extensibility Framework (MEF)?Rogério Moraes de Carvalho@rogeriomc