Open.up.your.applications.with.MEF
Upcoming SlideShare
Loading in...5
×
 

Open.up.your.applications.with.MEF

on

  • 722 views

 

Statistics

Views

Total Views
722
Views on SlideShare
721
Embed Views
1

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • ManagedExtensibilityFramework fick massor med uppmärksamhet på PDC konferensen i höstas. Det var en av väldigt få sessioner som fick äran av Da Capo på grund av publiktryck!I den här sessionen kommer jag berätta allt om det nya ramverket som gör det enkeltatt arbeta modulärt och som gör det lätt att lägga till och byta ut funktioner i dina applikationer.Jag heter Magnus Mårtensson.Jag jobbar som konsult och coach på Dotway.
  • Jag lärdekänna Glenn när jag letade talare till Øredev. Nu är vi vänner på Facebook,LinkedIn, MSN, via våra blogar och Twitter osv.Dessutom har vi träffats IRL två gånger; Dels på PDC och dels här hemma på Øredev!Förkortningen MEF förresten… En liten anekdot i sammanhanget är att Glenns fru tycker det är lite svårt att berätta för folk vad hennes man jobbar med: He’sinvolved in MEF! METH är ett anfetaminliknande preparat!Så jag behöver väl inte ens säga att MEF kommer att få ett nytt namn innan det släpps?Jag har förresten några av Glenns slides med idag.
  • NärGlenn började på MEF teamet blev han alltså helt naturligt min MEF dealer och det var han som drog ner mig i träsket så att säga.Jag har skrivit den första blogposten om MEF i en ASP.NET lösning. Det jag gjorde var addera MEF så enkelt jag kunde till en compositeweb lösning.Så min blog post fick en hel del uppmärksamhet på Microsoft och då blev jag inbjuden att medverka till att staka ut riktningen av MEF i en privat mailgrupp på Microsoft.Jag är alltså en mycket tidig beta användare av MEF och jag använder faktiskt MEF i ett kundprojekt idag!
  • Nu tänkte jag göra en liten publikundersökning med den här kodsliden!Det här har jag kodat många gånger i många olika kodprojkekt!Upp med handen alla som har kodat en sån här snurra!För varje assembly i katalogen; och sen för varje typ i assemblyn… det är rätt så många säg xx%!Detta är EN av de saker som ManagedExtensibilityFramework syftar till att ersätta och alla ni som höjde handen har nytta av MEF!
  • Så innan ni ger vika för erat alldeles egna lilla begynnande MEF beroende så kanske det kan vara på sin plats att nämna just det;Vilka är det som kommer att kunna dra nytta av MEF?Det är dels de som vill bygga applikationer som tredje part lätt kan utvidga.Dels de som vill bygga applikationer som är lättare att underhålla.Utbyggbarhet och underhåll är två nyckelproblem som MEF är designat för!
  • Det är nu sista slotten för konferensen jag är mycket väl medveten om att ni är så gott som på väg hem från den här mycket trevliga och givande tillställningen och att ni helt säkert är ordentligt trötta och hjärnmanglade vid det här laget! Jag vet att jag brukar vara det i slutet av konferenser i alla fall.Tack för att ni kom hit för att lyssna på mig och jag kan ärligt säga att Microsoft har sparat det bästa till sist!Vi kommer att gå igenom hur MEF funkar och det kommer att spilla över mer och mer i demos ju längre tiden går. Jag har fler demos än vad vi kommer att hinna med men det gör inget. Man kan säga att det här seminariet har en lång svans, dvs. vi kör så mycket som vi hinner och ni kommer att få massor med tips och trix om hur MEF fungerar och vad ni kan göra med det!Inom ett par veckor så lovar jag att jag kommer att lägga upp denna demo kod på codeplex och blogga om det från min blog! Jag har nämligen en annan session om ASP.NET MVC på SDC konferensen i nästa vecka.Det här är er take away från det här seminariet; MEF Makes ExtensibilityFun (Fabulous etc.) Jag kommer att tillbringa den kommande knappa timmen med att visa er varför!
  • Extensibility - (overloaded) taking an application that has already been compiled and adding more functionality to it. You can extend from the outside and extend from the inside.

Open.up.your.applications.with.MEF Open.up.your.applications.with.MEF Presentation Transcript

  • Öppna upp din applikation med Managed Extensibility Framework
    Magnus Mårtensson, Senior Consultant, Dotway AB
    http://blog.noop.se
  • Glenn Block
    Program ManagerMEF @ Microsoft
  • Magnus & MEF
  • vardlls = Directory.GetFiles("/Extensions", "*.dll");
    foreach (stringdllindlls)
    {
    varassembly = Assembly.LoadFile(dll);
    foreach (Typetypeinassembly.GetTypes())
    {
    […];
    }
    }
  • Do you want to build apps that third-parties can extend?
    Do you want to build more maintainable apps?
    MEF is for you!
  • MEF
    Makes Extensibility Fun
    (Fabulous)
  • A software extension is a computer program designed to be incorporated into another piece of softwarein order to enhance, or extend,the functionalities of the latter.
    Extension
    Wikipedia
  • FörlängningUtvidgning/UtbyggnadTillbyggnad
    Extension på Svenska?
    Lexin
  • Hard to achieve Extensibility...
  • No common standards!
  • Extensibility2
    gamespot.com
  • End User MEF demo
  • Imports and Exports
    Import
    Need
    Export
    Got
    Parts
  • Common Extensibility ScenarioWindows and Menus with MEF
    Application
    Need
    Menus
    Need a Toolwindow
    Got a MenuService
    Got a Toolwindow
    Got a Menu
    Extension A
    Extension B
    Need a MenuService
  • Common Extensibility ScenarioWindows and Menus with MEF
    Part
    Import
    Menus
    Import “Toolwindow”
    Import IMenuService
    Export “Toolwindow”
    Export aMenue
    Part
    Part
    Export IMenuService
  • An Application built of composableparts!
  • Import/Export MEF demo
  • Dependency Injection (DI)
    Inversion of Control (IoC)
    The Hollywood principle
  • Is MEF an IoC Container?
  • IoC is about managing a known set of extensions.
  • MEF is about managing an unknown set of extensions.
  • MEF @ MS?
    Why is there notan IoC container inthe .NET Framework?
  • MEF?
    Did you say MAF?
  • First, The Composable Part
    Part
    A
  • Parts Relate Through Contracts
    Part
    B
    Part
    A
    Contract
  • Imports Are Contracts A Part Needs
    Part
    B
    Import
    Import
  • Exports Are Contracts A Part Offers
    Part
    A
    Export
    Export
  • The Container Is The Matchmaker
    Container
  • Container Queries Catalogs
    Container
    Catalog
  • MEF Bootstrap demo
  • Parts Can Load Lazily
    Part
    B
    Export
    <A>
    Part
    A
  • Lazy Export demo
  • [Export(typeof(IService)),
    ExportMetadata("Index", 1),
    ExportMetadata("Type", CacheType.Local)]
    Parts are self describing
  • Metadata demo
  • Querying the Container demo
  • Recomposition demo
  • Parts Can Have Different Lifetimes
    Singleton
    Factory
    Container
    Container
    Part A
    Part A
    Part A
    Part A
  • Singleton/Factory demo
  • Imports Ordering demo
  • Alternate attribute models demo
  • Parent and Child Containers
    Root Cont.
    Part A
    Container
    Part B
    Part C
    Part D
  • Parent/Child Container demo
  • Export providers
  • Custom Export provider demo
  • Adapting Export Provider demo
  • Composite Web demo
  • MEF Resources
    Codeplex:
    http://codeplex.com/MEF
    http://codeplex.com/MEFContrib
    Program Manager:
    http://blogs.msdn.com/gblock/
    Available in .NET Framework 4.0!
  • @
    ShamelessPlug: http://blog.noop.se