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

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

on

  • 2,413 views

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.

Statistics

Views

Total Views
2,413
Views on SlideShare
1,050
Embed Views
1,363

Actions

Likes
0
Downloads
8
Comments
0

3 Embeds 1,363

http://rogeriomc.wordpress.com 1349
https://rogeriomc.wordpress.com 13
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.

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

  • SETEMBRO, 2010 | SÃO PAULO
  • 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)?
    • Nível Técnico:300
    • Audiência foco:Desenvolvedores com experiência em programação orientada a objetos e na linguagem de programação C# 3 ou superior
    • Objetivos (quais são as três principais mensagens que você gostaria que a audiência absorva):
    • 1Motivações para criação do MEF como facilitador na extensão de software
    • 2O princípio de funcionamento do MEF: exportação, importação e composição
    • 3A integração do MEF com o .NET Framework 4 e o Silverlight 4
    • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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/
  • 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
  • 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
  • Diagrama de extensibilidade com MEFRelacionamento entre os componentes do MEF
  • 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
  • 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
  • Exportação e importação no MEFCapacidades e dependências de partes de composição
    Eutenho
    Eupreciso
  • Composição no MEFCatálogo
    O catálogo fornece as partes
    Catálogo
  • Composição no MEFContêiner de composição
    O contêiner faz as combinações
    Catálogo
  • 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
  • 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
  • Fundamentos do MEF
  • Criação tardia de instância
    Parte A
    Parte B
  • Criação tardia de instância
    Parte A
    Lazy
    <B>
  • Criação tardia de instância
  • 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
  • Tempo de vida das partes
  • 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
  • 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)
  • 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
  • © 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 oManagedExtensibility Framework (MEF)?
    Rogério Moraes de Carvalho
    @rogeriomc
  • Título do anúncio do produto
  • 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
  • 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
  • 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.
  • Formato de tabela
  • Exemplo de gráfico de barras
  • Exemplo de gráfico em pizza
  • Título do Vídeo
  • Título da Demo