Managed Extensibility Framework (MEF)

2,684 views

Published on

MEF in Action: import, export e compose

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,684
On SlideShare
0
From Embeds
0
Number of Embeds
841
Actions
Shares
0
Downloads
41
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Managed Extensibility Framework (MEF)

  1. 1. Managed Extensibility Framework (MEF)1nn0vaLab
  2. 2. Managed Extensibility Framework (MEF)1nn0vaLab
  3. 3. Managed Extensibility Framework (MEF) MEF è un framework che offre alle applicazioni la capacità di essere estese dinamicamente attraverso componenti esterni noti solo a runtime1nn0vaLab
  4. 4. for extension part / component for modification1nn0vaLab
  5. 5. Managed Extensibility Framework (MEF) Export it Import it Compose it1nn0vaLab
  6. 6. Managed Extensibility Framework (MEF) Definiamo prima il servizio (part) da esporre Utilizzare sempre le interfacce per definire i contratti da esportare Part A1nn0vaLab
  7. 7. Managed Extensibility Framework (MEF) Definiamo prima il servizio (part) da esporre Dichiariamo l’implementazione da rendere disponibile ai consumer Part A1nn0vaLab
  8. 8. Managed Extensibility Framework (MEF) Definiamo nel consumer il “punto di estensione” Part A1nn0vaLab
  9. 9. Managed Extensibility Framework (MEF) Dove cerca MEF le parti da utilizzare? TypeCatalog AssemblyCatalog Catalog DirectoryCatalog AggregateCatalog1nn0vaLab
  10. 10. Managed Extensibility Framework (MEF) Come risolve i collegamenti import/export? Dove cerca MEF le parti da utilizzare? Container1nn0vaLab
  11. 11. It’s DEMO time!
  12. 12. Managed Extensibility Framework (MEF) MEF architecture1nn0vaLab
  13. 13. Managed Extensibility Framework (MEF) Part by discovery Part by registration External configuration, NO configuration via Fluent API or XML Wiring in the part Auto Wiring Almost pure POCO Pure POCO1nn0vaLab
  14. 14. Managed Extensibility Framework (MEF) • Metadata support • Be “lazy” • Recomposition1nn0vaLab
  15. 15. Managed Extensibility Framework (MEF) Possiamo associare al servizio informazioni aggiuntive (metadati) in modo da farle leggere ai consumer ... ... per esempio per filtrare le implementazioni da importare1nn0vaLab
  16. 16. Managed Extensibility Framework (MEF) ... per esempio per filtrare le implementazioni da importare1nn0vaLab
  17. 17. Managed Extensibility Framework (MEF) Eseguire l’importazione solo nel momento in cui viene utilizzata! Lazy<T,M> (con M metadata) è utile per filtrare le importazioni in base ai metadati1nn0vaLab
  18. 18. Managed Extensibility Framework (MEF) Con MEF possiamo avere la ricomposizione automatica delle parti in caso di aggiunta di nuove estensioni (o rimozione di una esistente) [ImportMany(AllowRecomposition(true)] + IPartImportsSatisfiedNotification1nn0vaLab
  19. 19. Managed Extensibility Framework (MEF) Dynamically loading XAPs with MEF http://channel9.msdn.com/Shows/SilverlightTV/Silverlight -TV-11-Dynamically-Loading-XAPs-with-MEF1nn0vaLab
  20. 20. Managed Extensibility Framework (MEF) Resources Project hosting on codeplex http://mef.codeplex.com Community-developed library of extensions http://mefcontrib.codeplex.com/ Hamilton Verissimo (the “MEF man”) http://blogs.msdn.com/b/hammett/ Glenn Block (the “MEF maniac”) http://codebetter.com/glennblock/1nn0vaLab
  21. 21. CreditsLe immagini contenute in questa presentazioneeccetto la foto iniziale acquistata suiStockPhoto hanno licenza Creative CommonsSlide 2 : http://www.flickr.com/photos/69691418@N00/4368951793/Slide 3 : http://www.flickr.com/photos/16013376@N00/4562002778/
  22. 22. Thank You! MANUEL SCAPOLAN website: www.manuelscapolan.it twitter: manuelscapolan e-mail: info@manuelscapolan.it 23

×