Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Silverlight in MEF

1,330 views

Published on

Slidedeck from my "Silverlight and MEF" talk on NTK conference 2010. In Slovenian language.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Silverlight in MEF

  1. 1. Silverlight in MEF<br />Andrej Tozon, Microsoft MVP<br />ANT Andrej Tozon s.p., Ljubljana<br />@andrejt | andrej@tozon.info | http://tozon.info/blog/<br />
  2. 2. MEF<br />EXTENSI<br />MANAGED<br />FRAMEWORK<br /> BILITY<br />NET Framework 4<br />Silverlight 4<br />.NET 3.5 SP1, Silverlight 3[http://mef.codeplex.com]<br />
  3. 3. MEF<br />EXTENSI<br />MANAGED<br />FRAMEWORK<br /> BILITY<br />
  4. 4. Scenarij 1: Razširitve / vtiči<br />
  5. 5. Scenarij 2: Dostopnost<br />
  6. 6. Scenarij 3: Omejevanjefunkcionalnosti<br />
  7. 7. Osnove MEF<br />Sestava / Composition<br />Izvoz / Export<br />Uvoz / Import<br />Del / Part<br />Pogodba / Contract<br />
  8. 8. Osnove MEF: uvoz, izvoz, sestava<br />
  9. 9. MEF – Pogodba<br />[Export]<br />publicclassFlickrPhotoProvider<br />{…}<br />[Export(typeof(FlickrPhotoProvider))]<br />publicclassFlickrPhotoProvider<br />{…}<br />[Export(@"Ant.Demo.Silverlight<br /> .FlickrPhotoProvider")]<br />publicclassFlickrPhotoProvider<br />{…}<br />[Export("Flickr")]<br />publicclassFlickrPhotoProvider<br />{…}<br />[Import]<br />publicFlickrPhotoProvider<br />PhotoProvider{ get; set; }<br />[Import(typeof(FlickrPhotoProvider))]<br />publicFlickrPhotoProvider<br />PhotoProvider { get; set; }<br />[Import(@"Ant.Demo.Silverlight<br /> .FlickrPhotoProvider")]<br />publicFlickrPhotoProvider<br />PhotoProvider { get; set; }<br />[Import("Flickr")]<br />publicFlickrPhotoProvider<br />PhotoProvider { get; set; }<br />
  10. 10. MEF – Pogodba<br />?<br />FlickrPhotoProvider<br />LocalPhotoProvider<br />[Import]<br />publicFlickrPhotoProviderFlickrPhotoProvider{ get; set; }<br />[Import]<br />publicLocalPhotoProviderLocalPhotoProvider { get; set; }<br />
  11. 11. MEF – Pogodba<br />Uvoz več istovrstnih delov<br />FlickrPhotoProvider<br />LocalPhotoProvider<br />IPhotoProvider<br />[ImportMany]<br />publicIEnumerable<IPhotoProvider>PhotoProviders { get; set; }<br />
  12. 12. MEF – Pogodba<br />Podprimo lenobo<br />Lazy<T><br />[ImportMany]<br />publicIEnumerable<Lazy<IPhotoProvider>> PhotoProviders{ get; set; }<br />
  13. 13. Lazy<T><br />[PartCreationPolicy]<br />Any<br />Shared<br />NonShared<br />Lahko se določi na uvozu ali izvozu<br />ExportFactory<T><br />MEF – Pogodba<br />Nadzorovanježivljenske dobe objektov<br />
  14. 14. MEF – Pogodba<br />Metapodatki<br />Lazy<T><br />Lazy<T, M><br />Izvoz je lahkoopremljen z metapodatki…<br />… ki se ocenjujejoobuvozu<br />Zavračanje neustreznih delov<br />Filtriranje<br />
  15. 15. Pregledovalnikslik - nadgradnja<br />
  16. 16. Želja<br />čim hitrejše začetno nalaganje<br />Način za uresničitev želje<br />Delitev aplikacije na dele<br />Začetni paket (XAP) je čim manjši<br />Ostale funkcionalnosti se naložijo kasneje<br />MEF – Pogodba<br />Manjkajoči uvozi in ponovna sestava<br />(Import(AllowDefault = true, AllowRecomposition = true)]<br />publicIPhotoProviderPhotoProvider{ get; set; }<br />
  17. 17. TypeCatalog<br />AssemblyCatalog<br />DirectoryCatalog (WPF)<br />AggregateCatalog<br />DeploymentCatalog<br />[FilteredCatalog] <br />Po meri…<br />Katalogi<br />Odkrivanjedelov<br />
  18. 18. DeploymentCatalog in ponovnasestava<br />
  19. 19. Uvoz, izvoz, sestava<br />Šibka sklopljenost delov<br />Deli so na voljo od vsepovsod<br />Nič več cirkularnih odvisnosti<br />Zadovoljuje osnovne potrebe po DI/IoC<br />Razširljiv<br />Metapodatki<br />Katalogi po meri, itd.<br />Povzetek<br />
  20. 20. MEF: Pregled [MSDN]<br />http://tinyurl.com/MEFoverview<br />MEF [CodePlex, .NET 3.5, SL3]<br />http://mef.codeplex.com<br />MEF Contrib<br />http://mefcontrib.com<br />Viri<br />
  21. 21. Andrej Tozon<br />ANT Andrej Tozon s.p.<br />@andrejt<br />andrej@tozon.info<br />http://tozon.info/blog<br />Vprašanja?<br />Po predavanju boste na vaš elektronski naslov prejeli vprašalnik o predavanju, ki ste ga ravnokar poslušali.<br />Vprašalniki bodo dostopni tudi preko profila na spletnem portalu konference.<br />Z izpolnjevanjem le tega pripomorete k izboljšanju konference. Hvala!<br />

×