Upload
andrej-tozon
View
1.213
Download
5
Embed Size (px)
DESCRIPTION
Slidedeck from my "Silverlight and MEF" talk on NTK conference 2010. In Slovenian language.
Citation preview
Silverlight in MEF
Andrej Tozon, Microsoft MVP
ANT Andrej Tozon s.p., Ljubljana
@andrejt | [email protected] | http://tozon.info/blog/
F
R
A
M
E
W
O
R
K
E
X
T
E
N
S
I B I L I T Y
NET Framework 4 Silverlight 4 .NET 3.5 SP1, Silverlight 3
[http://mef.codeplex.com]
F
R
A
M
E
W
O
R
K
E
X
T
E
N
S
I B I L I T Y
Scenarij 1: Razširitve / vtiči
Scenarij 2: Dostopnost
Scenarij 3: Omejevanje funkcionalnosti
Osnove MEF
Izvoz / Export
Pogodba / Contract
Uvoz / ImportDel / Part
Sestava / Composition
Osnove MEF: uvoz, izvoz, sestava
MEF – Pogodba
[Export]public class FlickrPhotoProvider{…}
[Export(typeof(FlickrPhotoProvider))]public class FlickrPhotoProvider{…}
[Export(@"Ant.Demo.Silverlight.FlickrPhotoProvider")]
public class FlickrPhotoProvider{…}
[Export("Flickr")]public class FlickrPhotoProvider{…}
[Import]public FlickrPhotoProvider
PhotoProvider { get; set; }
[Import(typeof(FlickrPhotoProvider))]public FlickrPhotoProvider
PhotoProvider { get; set; }
[Import(@"Ant.Demo.Silverlight.FlickrPhotoProvider")]
public FlickrPhotoProviderPhotoProvider { get; set; }
[Import("Flickr")]public FlickrPhotoProvider
PhotoProvider { get; set; }
MEF – Pogodba
FlickrPhotoProvider LocalPhotoProvider
[Import]public FlickrPhotoProvider FlickrPhotoProvider { get; set; }
[Import]public LocalPhotoProvider LocalPhotoProvider { get; set; }
MEF – Pogodba
FlickrPhotoProvider LocalPhotoProvider
[ImportMany]public IEnumerable<IPhotoProvider> PhotoProviders { get; set; }
IPhotoProvider
Uvoz več istovrstnih delov
MEF – Pogodba
[ImportMany]public IEnumerable<Lazy<IPhotoProvider>> PhotoProviders { get; set; }
Podprimo lenobo
• Lazy<T>
• Lazy<T>
• [PartCreationPolicy]
– Any
– Shared
– NonShared
• Lahko se določi na uvozu ali izvozu
• ExportFactory<T>
Nadzorovanje ţivljenske dobe objektovMEF – Pogodba
MEF – PogodbaMetapodatki
• Lazy<T>
• Lazy<T, M>
– Izvoz je lahko opremljen z metapodatki…
– … ki se ocenjujejo ob uvozu
• Zavračanje neustreznih delov
• Filtriranje
Pregledovalnik slik - nadgradnja
• Ţelja
– čim hitrejše začetno nalaganje
• Način za uresničitev ţelje
– Delitev aplikacije na dele
– Začetni paket (XAP) je čim manjši
– Ostale funkcionalnosti se naloţijo kasneje
MEF – PogodbaManjkajoči uvozi in ponovna sestava
(Import(AllowDefault = true, AllowRecomposition = true)]public IPhotoProvider PhotoProvider { get; set; }
• TypeCatalog
• AssemblyCatalog
• DirectoryCatalog (WPF)
• AggregateCatalog
• DeploymentCatalog
• [FilteredCatalog]
• Po meri…
KatalogiOdkrivanje delov
DeploymentCatalog in ponovna sestava
• Uvoz, izvoz, sestava
• Šibka sklopljenost delov
– Deli so na voljo od vsepovsod
– Nič več cirkularnih odvisnosti
• Zadovoljuje osnovne potrebe po DI/IoC
• Razširljiv
– Metapodatki
– Katalogi po meri, itd.
Povzetek
• MEF: Pregled [MSDN]
– http://tinyurl.com/MEFoverview
• MEF [CodePlex, .NET 3.5, SL3]
– http://mef.codeplex.com
• MEF Contrib
– http://mefcontrib.com
Viri
Vprašanja?
• Po predavanju boste na vaš elektronski naslov
prejeli vprašalnik o predavanju, ki ste ga ravnokar
poslušali.
• Vprašalniki bodo dostopni tudi preko profila na
spletnem portalu konference.
• Z izpolnjevanjem le tega pripomorete k izboljšanju
konference. Hvala!
Andrej Tozon
ANT Andrej Tozon s.p.
@andrejt
http://tozon.info/blog