Your SlideShare is downloading. ×
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed Extensibility Framework (MEF)

2,205
views

Published on

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 …

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.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,205
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Bertrand Meyer (nasceu em 1950 na França): É um acadêmico, autor e consultor no campo das linguagens de computação. Criador da linguagem de programação Eiffel. Um dos primeiros defensores da Programação Orientada a Objetos (POO). Seu livro Object-Oriented Software Construction é amplamente considerado o melhor trabalho de apresentação de casos de POO. A primeira edição foi publicada em 1988.Object-Oriented Software Construction: Livro escrito por Bertrand Meyer, amplamente considerado um texto fundamental de POO. A primeira edição foi publicada em 1988 e a segunda, extensivamente revisada e expandida (1296 páginas), em 1997. Ambas as edições foram publicadas pela editora Prentice Hall.Princípio aberto-fechado: Entidades de software devem ser abertas para extensão, mas fechadas para modificação. Ou seja, entidades devem permitir modificações em seu comportamento SEM a necessidade de alteração em seu código-fonte. Nesta ideia, a implementação de uma entidade (classe) somente pode ser modificada para corrigir erros.Princípio aberto-fechado de Meyer: A definição de Meyer recomenda a herança de implementação. A implementação pode ser reutilizada por meio de herança, mas especificações de interface não necessitam de implementação.Princípio aberto-fechado polimórfico: Durante a década de 1990, o princípio aberto/fechado foi popularmente redefinido para referenciar o uso de interfaces abstratas, onde as implementações podem ser modificadas e múltiplas implementações podem ser criadas e polimorficamente substituídas umas pelas outras.Em contraste com o uso de Meyer, esta definição recomenda a herança de classes abstratas. Especificações de interfaces podem ser reutilizadas por meio de herança, mas a implementação não precisa. A interface existente é fechada para modificações e novas implementações, no mínimo, implementam esta interface.Em 1996, Robert Cecil Martin (autor e consultor de software americano, informalmente chamado “Uncle Bob” ou “Tio Bob”) escreveu o artigo “The Open-ClosedPrinciple” que foi uma das escritas mais influentes desta abordagem.
  • Mecanismo dos plug-insA aplicação hospedeira fornece serviços que o plug-in pode usar, incluindo uma maneira dos plug-ins se registrarem com a aplicação hospedeira e um protocolo para troca de dados com o plug-in. Plug-ins dependem dos serviços fornecidos pela aplicação hospedeira e usualmente não funcionam por si próprios. Por outro lado, a aplicação hospedeira opera de maneira independente dos plug-ins, tornando possível aos usuários finais adicionar a atualizar plug-ins dinamicamente sem a necessidade de fazer mudanças na aplicação hospedeira.ApplicationProgramming Interfaces (APIs) abertas fornecem uma interface padrão, permitindo que terceiros criem plug-ins que interagem com a aplicação hospedeira. Uma API estável permite que plug-ins de terceiros continuem a funcionar mesmo com mudanças na versão original e para estender o ciclo de vida de aplicações obsoletas. As APIs de plug-in do Adobe Photoshop e do AfterEffects se tornaram padrão e aplicações concorrentes como o Corel Paint Shop Pro as adotou.Informações complementares:http://en.wikipedia.org/wiki/Plug-in_(computing)
  • Informações no tópico “Whatproblems does MEF solve?” da documentação: http://mef.codeplex.com/wikipage?title=Overview&referringTitle=DocumentationMEF and MAFPrevious versions of the .NET Framework introduced the Managed Add-in Framework (MAF), designed to allow applications to isolate and manage extensions. The focus of MAF is slightly higher-level then MEF, concentrating on extension isolation and assembly loading and unloading, while MEF's focus is on discoverability, extensibility, and portability. The two frameworks interoperate smoothly, and a single application can take advantage of both.
  • O MEF facilita a extensibilidade permitindo uma programação mais declarativa.Informações no tópico “WhatisMEF?” da documentação: http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Documentation
  • What problems does MEF solve?MEF presents a simple solution for the runtime extensibility problem. Until now, any application that wanted to support a plugin model needed to create its own infrastructure from scratch. Those plugins would often be application-specific and could not be reused across multiple implementations.MEF provides a standard way for the host application to expose itself and consume external extensions. Extensions, by their nature, can be reused amongst different applications. However, an extension could still be implemented in a way that is application-specific. Extensions themselves can depend on one another and MEF will make sure they are wired together in the correct order (another thing you won't have to worry about). MEF offers a set of discovery approaches for your application to locate and load available extensions. MEF allows tagging extensions with additonal metadata which facilitates rich querying and filtering
  • O núcleo do modelo de composição é o contêiner de composição, que contem todas as partes disponíveis e realiza a composição. Ou seja, ele faz a correspondência entre as importações e as exportações.Para descobrir as partes disponíveis, o contêiner de composição faz uso de um catálogo. Um catálogo é um objeto que torna disponíveis partes de alguma fonte. O MEF fornece catálogos para descobrir partes de um tipo fornecido, um assembly ou um diretório. Desenvolvedores de aplicações podem facilmente criar novos catálogos para descobrir partes de outras fontes, como um Web Service.
  • Transcript

    • 1. SETEMBRO, 2010 | SÃO PAULO
    • 2. Instruções gerais (hidden slide):
      Instruções aos palestrantes: Complete este slide para que o Track Owner avalie a sequência da sua apresentação, tópicos cobertos, integração das demos e alinhamento do conteúdo com a descrição e nível da sessão.
      • Título:Como e onde devo utilizar o ManagedExtensibility Framework (MEF)?
      • 3. Nível Técnico:300
      • 4. Audiência foco:Desenvolvedores com experiência em programação orientada a objetos e na linguagem de programação C# 3 ou superior
      • 5. Objetivos (quais são as três principais mensagens que você gostaria que a audiência absorva):
      • 6. 1Motivações para criação do MEF como facilitador na extensão de software
      • 7. 2O princípio de funcionamento do MEF: exportação, importação e composição
      • 8. 3A integração do MEF com o .NET Framework 4 e o Silverlight 4
      • 9. Sequência da sua apresentação (incluindo as demos):
    • CÓDIGO DA SESSÃO:DEV302
      Como e onde devo utilizar o ManagedExtensibility Framework (MEF)?Nível Técnico: 300
      Rogério Moraes de Carvalho
      Consultor e Instrutor de TI
      VITA Informática
      @rogeriomc
    • 10. AgendaManagedExtensibility Framework (MEF)
      Objetivos
      Princípio aberto-fechado
      Plug-ins
      Problemas de extensibilidade
      O ManagedExtensibility Framework (MEF)
      O MEF como facilitador da extensibilidade
      Diagrama de extensibilidade com MEF
      Funcionamento do MEF
      Exportação e importação no MEF
      Composição no MEF
    • 11. AgendaManagedExtensibility Framework (MEF)
      Demo 1: Fundamentos do MEF
      Criação tardia de instância
      Demo 2: Criação tardia de instância
      Tempo de vida das partes
      Demo 3: Tempo de vida das partes
      MEFContrib
    • 12. ObjetivosPrincipais assuntos a serem abordados
      Exposição da importância da extensibilidadeno desenvolvimento de software
      Introdução à nova biblioteca MEF
      Incorporada ao .NET Framework 4 e ao Silverlight 4
      Apresentação de quando e como o MEF deve ser usado
    • 13. 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-ClosedPrinciple”
      Entidades de software devem serabertas para extensão,mas fechadas para modificação
      Entidade
    • 14. Plug-insConceito e vantagens de uso
      Plug-in
      Aplicação hospedeira
      Gerenciador
      de plug-ins
      Serviços
      O que é um plug-in?
      Componente de software para acrescentar funcionalidades específicas a uma aplicação maior
      Vantagens de uso de plug-ins
      Extensão de aplicações com novas funcionalidades desenvolvidas por terceiros
      Facilita o acréscimo de novas funcionalidades
      Reduz o tamanho de uma aplicação
      Separação de código-fonte numa aplicação devido a incompatibilidades em licenças de software
    • 15. Problemas de extensibilidadeDificuldades mais comuns
      É comum que aplicações hospedeiras criem uma infraestrutura própria para permitirem extensão
      Sem reuso em outras implementações
      Alguns frameworks .NET de extensão
      ManagedAdd-In Framework (MAF)
      Projetado no .NET Framework para gerenciar extensões
      Plux.NET
      http://ase.jku.at/plux/
      Mono.Addins
      http://monoaddins.codeplex.com/
      CompactPlugs & CompactInjection
      http://compactplugs.codeplex.com/
    • 16. O ManagedExtensibility 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
    • 17. O MEF como facilitador da extensibilidadeSolução de problemas de extensibilidade
      Padrão para exposição e consumo de extensões
      Facilita o reuso de extensões em várias aplicações
      Diversas abordagens possíveis de descoberta
      Facilita a localização e o carregamento de extensões
      Dispensa a necessidade do registro explícito das extensões disponíveis
      Metadados permitem marcar extensões
      Facilita a consulta e filtragem de extensões
    • 18. Diagrama de extensibilidade com MEFRelacionamento entre os componentes do MEF
    • 19. 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ões
      Contê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ências
      Exportações (Exports)
      Especificação declarativa de suas capacidades
    • 20. 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 contratos
      Contratos são as pontes entre exportações e importações
    • 21. Exportação e importação no MEFCapacidades e dependências de partes de composição
      Eutenho
      Eupreciso
    • 22. Composição no MEFCatálogo
      O catálogo fornece as partes
      Catálogo
    • 23. Composição no MEFContêiner de composição
      O contêiner faz as combinações
      Catálogo
    • 24. Composição no MEFCombinações das partes de composição dos catálogos
      AggregatingCatalog
      O contêiner faz as combinações
      DirectoryCatalog
      AssemblyCatalog
      Catálogo
      TypeCatalog
    • 25. Composição no MEFEsquema de composição
      Parte
      Aplicação hospedeira
      Precisa de um IContrato
      [Import]
      [Export]
      Tem um IContrato
      Contêiner de composição
      Extensão A
      Parte
    • 26. Fundamentos do MEF
    • 27. Criação tardia de instância
      Parte A
      Parte B
    • 28. Criação tardia de instância
      Parte A
      Lazy
      <B>
    • 29. Criação tardia de instância
    • 30. Tempo de vida das partes
      Parte compartilhada(Shared)
      Parte não compartilhada(Non-Shared)
      Contêiner
      Contêiner
      Parte A
      Parte B
      Parte B
      Parte B
    • 31. Tempo de vida das partes
    • 32. MEFContribExtensões ao MEF
      O que é o MEFContrib?
      Biblioteca de extensões ao ManagedExtensibility Framework (MEF) desenvolvida pela comunidade
      Recursos
      Extensões
      Catálogo genérico
      Integração
      Integração com Unity
      Modelos de programação
      Modelo de Provider
      Modelo de convenções
    • 33.
    • 34. 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)
    • 35. Conteúdo relacionadoSites e livros indicados
      MEFCommunity Site (Hospedado no CodePlex)http://mef.codeplex.com/
      MEFContrib (Hospedado no CodePlex)
      http://mefcontrib.codeplex.com/
      Object-Oriented Software Construction, 2ndEditionAutor: Bertrand Meyer - Editora: Prentice Hall
      Clean Code: A Handbook of Agile Software CraftsmanshipAutor: Robert C. Martin - Editora: Prentice Hall
    • 36. © 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.
    • 37. Por favor,
      preencha a avaliação!
      DEV302 - Como e onde devo utilizar oManagedExtensibility Framework (MEF)?
      Rogério Moraes de Carvalho
      @rogeriomc
    • 38. Título do anúncio do produto
    • 39. Template de PowerPoint Cor do Subtítulo
      Exemplo de slide com subcabeçalho
      Defina o cabeçalho do slide em "Title Case"
      Defina os subcabeçalhos em "sentence case"
      Procure definir o subcabeçalho em 36pt ou menor para que caiba em uma só linha
      A cor do subcabeçalho é definida para este template, mas deve ser selecionada no PowerPoint 2007, é a quinta cor de fonte da esquerda para a direita
    • 40. Exemplo de preenchimento
      Diretrizes para PowerPoint
      A fonte, o tamanho e a cor do texto foram formatados para você no Slide Mestre
      Use a palheta de cores exibida abaixo
      Cor de hyperlink:www.microsoft.com
      Exemplo de preenchimento
      Exemplo de preenchimento
      Exemplo de preenchimento
      Exemplo de preenchimento
      Exemplo de preenchimento
    • 41. Slide para exibir código de software
      Use este layout para exibir o código de software
      Esta fonte é Consolas, uma fonte monoespaçada
      O slide não possui bullets, mas os níveis podem ser recuados usando-se o ícone "Aumentar Nível de Lista" no menu de Início
      Para usar aspas normais " em vez de aspas inglesas ” faça o seguinte:
      Clique no Botão do Office no canto superior esquerdo
      Na parte inferior do menu, escolha as Opções do PowerPoint
      No painel à esquerda, selecione Revisão de Texto
      Clique no botão Opções de AutoCorreção
      Selecione a aba AutoFormatação ao Digitar, e desmarque a opção "Aspas normais" por "aspas inglesas".Em seguida clique em OK.
    • 42. Formato de tabela
    • 43. Exemplo de gráfico de barras
    • 44. Exemplo de gráfico em pizza
    • 45. Título do Vídeo
    • 46. Título da Demo