MEF DotNetArchitects

Preview:

DESCRIPTION

Palestra sobre MEF no DotNetArchitects

Citation preview

MEF – Managed Extensibility Framework

12/06/2010

Twitter: @fabiomargaritoE-mail: fabiomargarito@gmail.comBlog: www.mgrtconsultoria.com

• Mais de 10 anos de experiência em TI• Trabalha com .Net desde as versões Beta• Atua como arquiteto de software/soluções em uma grande instituição financeira• Professor universitário• Membro ativo do grupo DotNetArchitect• Autor de artigos para a revista .Net Magazine

Fabio Margarito Martins de Barros

3

Agenda

− Sonhos de um sistema

− Princípios de projetos orientados a objetos (S.O.L.I.D)

− MEF

4

Sonhos de todo sistema

− Redução dos custos de manutenção

− Longo tempo de vida sem sofrimento

− Extensíbilidade

5

Princípios de projetos orientados a objetos (S.O.L.I.D)− SRP: Principío da responsabilidade

exclusiva− OCP: Princípio aberto fechado− LSP: Princípio de substituição de

Liskov− DIP: Princípio da inversão de

dependência− ISP: Interface segregation

6

Princípios de projetos orientados a objetos (S.O.L.I.D)− SRP: Principío da responsabilidade

exclusiva− OCP: Princípio aberto fechado− LSP: Princípio de substituição de

Liskov− DIP: Princípio da inversão de

dependência− ISP: Interface segregation

7

Princípios de projetos orientados a objetos (S.O.L.I.D)− DEMOs

8

Soluções para extensibilidade− System.addin− MEF

9

System.addin

− System.addin, ou MAF(Managed Addin Framework), é um framework para criação de aplicações do tipo plugin/addin

10

System.addin – Características− Discovery− Activation− Versioning − Isolation− Lifetime Management− Sandboxing− Unloading

11

MEF - O que é MEF?É um biblioteca que auxilia a criação de aplicações extensíveis e é parte integrante do .Net Framework 4.0

12

MEF – Conceitos básicosParte : é a peça integrante de um quebra cabeças.

Con

trat

o

Catá

log

o

Con

tain

er

13

MEF – Arquitetura

14

MEF – Conceitos básicos

Import

Export

Composed

15

MEF – Aprendendo um pouco mais

Demos

16

MEF – Características

− Roda no AppDomain da aplicação host− Monta todo o grafo de dependência

das partes− Descoberta dinâmica de partes − Controle do tempo de vida das partes− Carga tardia(Lazy Loading)

17

Dúvidas?

19