silverlight in mef

22
Silverlight in MEF Andrej Tozon, Microsoft MVP ANT Andrej Tozon s.p., Ljubljana @andrejt | [email protected] | http://tozon.info/blog/

Upload: andrej-tozon

Post on 09-Jul-2015

1.213 views

Category:

Technology


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Silverlight in MEF

Silverlight in MEF

Andrej Tozon, Microsoft MVP

ANT Andrej Tozon s.p., Ljubljana

@andrejt | [email protected] | http://tozon.info/blog/

Page 2: Silverlight in MEF

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]

Page 3: Silverlight in MEF

F

R

A

M

E

W

O

R

K

E

X

T

E

N

S

I B I L I T Y

Page 4: Silverlight in MEF

Scenarij 1: Razširitve / vtiči

Page 5: Silverlight in MEF

Scenarij 2: Dostopnost

Page 6: Silverlight in MEF

Scenarij 3: Omejevanje funkcionalnosti

Page 7: Silverlight in MEF

Osnove MEF

Izvoz / Export

Pogodba / Contract

Uvoz / ImportDel / Part

Sestava / Composition

Page 8: Silverlight in MEF

Osnove MEF: uvoz, izvoz, sestava

Page 9: Silverlight in MEF

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; }

Page 10: Silverlight in MEF

MEF – Pogodba

FlickrPhotoProvider LocalPhotoProvider

[Import]public FlickrPhotoProvider FlickrPhotoProvider { get; set; }

[Import]public LocalPhotoProvider LocalPhotoProvider { get; set; }

Page 11: Silverlight in MEF

MEF – Pogodba

FlickrPhotoProvider LocalPhotoProvider

[ImportMany]public IEnumerable<IPhotoProvider> PhotoProviders { get; set; }

IPhotoProvider

Uvoz več istovrstnih delov

Page 12: Silverlight in MEF

MEF – Pogodba

[ImportMany]public IEnumerable<Lazy<IPhotoProvider>> PhotoProviders { get; set; }

Podprimo lenobo

• Lazy<T>

Page 13: Silverlight in MEF

• Lazy<T>

• [PartCreationPolicy]

– Any

– Shared

– NonShared

• Lahko se določi na uvozu ali izvozu

• ExportFactory<T>

Nadzorovanje ţivljenske dobe objektovMEF – Pogodba

Page 14: Silverlight in MEF

MEF – PogodbaMetapodatki

• Lazy<T>

• Lazy<T, M>

– Izvoz je lahko opremljen z metapodatki…

– … ki se ocenjujejo ob uvozu

• Zavračanje neustreznih delov

• Filtriranje

Page 15: Silverlight in MEF

Pregledovalnik slik - nadgradnja

Page 16: Silverlight in MEF

• Ţ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; }

Page 17: Silverlight in MEF

• TypeCatalog

• AssemblyCatalog

• DirectoryCatalog (WPF)

• AggregateCatalog

• DeploymentCatalog

• [FilteredCatalog]

• Po meri…

KatalogiOdkrivanje delov

Page 18: Silverlight in MEF

DeploymentCatalog in ponovna sestava

Page 19: Silverlight in MEF

• 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

Page 20: Silverlight in MEF

• MEF: Pregled [MSDN]

– http://tinyurl.com/MEFoverview

• MEF [CodePlex, .NET 3.5, SL3]

– http://mef.codeplex.com

• MEF Contrib

– http://mefcontrib.com

Viri

Page 21: Silverlight in MEF

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

[email protected]

http://tozon.info/blog

Page 22: Silverlight in MEF