microsoft tech·ed brasil 2010: dev302 - como e onde devo utilizar o managed extensibility framework...

Post on 24-May-2015

2.226 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

O Managed Extensibility Framework (MEF) é uma nova biblioteca no Microsoft. NET Framework 4 que resolve problemas de software monolítico, simplificando o design de extensões de aplicações e componentes. Nesta sessão, você aprenderá o básico do MEF e verá o MEF sendo utilizado em um uma variedade de aplicações criadas no .NET Framework.

TRANSCRIPT

SETEMBRO, 2010 | SÃO PAULO

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

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

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

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

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

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

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/

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

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

12

Diagrama de extensibilidade com MEFRelacionamento entre os componentes do MEF

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

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

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

16

Composição no MEFCatálogo

O catálogo fornece as partes

Catálogo

17

Composição no MEFContêiner de composição

O contêiner faz as combinações

Catálogo

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

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

20

Fundamentos do MEF

21

Criação tardia de instância

Parte A Parte B

22

Criação tardia de instância

Parte A Lazy<B>

23

Criação tardia de instância

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)

25

Tempo de vida das partes

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

27

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)

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

© 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.

Por favor,preencha a avaliação!DEV302 - Como e onde devo utilizar o

Managed Extensibility Framework (MEF)?Rogério Moraes de Carvalho@rogeriomc

top related