Glenn Block Program Manager Microsoft Corporation TL33 TL49 Related sessions.

34
A lap Around the Managed Extensibility Framework Glenn Block Program Manager Microsoft Corporation TL33 TL4 9 Relate d sessio ns

Transcript of Glenn Block Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Page 1: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

A lap Around the Managed Extensibility Framework

Glenn Block Program Manager

Microsoft Corporation

TL33

TL49Related sessions

Page 2: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

MEFMakes ExtensibilityFunFeasibleFlyFrupendousFastFlavorfulFabulous

Page 3: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

The MEF Guild Team

Page 4: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Extensibility

Page 5: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Why Are There So Few Extensible Apps?

Page 6: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Developers Desire Extensibility

Page 7: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Extensibility ChallengesHard to write, hard to useNo standardHard To Achieve Extensibility2

http://www.flickr.com/photos/21507453@N08/2096004461/

Page 8: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

We're Making It EasySystem.ComponentModel….Open and Easy to extendSimple To Implement

Page 9: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Managed Extensibility Framework

announcing

Page 10: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Common Extensibility ScenarioWindows and Menus

Application

Extension A

Extension B

Need a Toolwindow

Got a Toolwindow

Need Menus

Got aMenu

Need a MenuService

Got a MenuService

Page 11: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Hello MEF

Glenn BlockProgram ManagerMEF

demo

Page 12: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Common Extensibility ScenarioWindows and Menus with MEF

NeedGot

ImportExport

Page 13: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Extension A

Common Extensibility ScenarioWindows and Menus with MEF

Application

Extension B

Need Menus

Got Menus

Got a MenuService

Need a Toolwindow

Export MenuService

Import Menus

Export Menus

Need a MenuService

Import MenuService

Import Toolwindow

Got a Toolwindow

Export Toolwindow

Page 14: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Extension APart B

Common Extensibility ScenarioComposition with MEF

Application

Extension B

Part A

Part C

They're all parts!

Page 15: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Windows And Menus With MEF

public interface IToolWindow { }public interface IMenuService { } public interface IMenu { } public class Application{ [Import] public IEnumerable<IToolWindow> ToolWindows { get; set; }  [Import] public IEnumerable<IMenu> Menus { get; set; }} [Export(typeof(IMenuService))]public class MenuService : IMenuService { }

Import Toolwindows

Import Menus

Export a Menu Service

Page 16: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Windows And Menus With MEF

[Export(typeof(IToolWindow))]public class SomeToolWindow : IToolWindow{ [Import] public IMenuService MenuService { get; set; }} [Export(typeof(IMenu))]public class SomeMenu : IMenu{}

Export a Toolwindow

Import a MenuService

Export a Menu

Page 17: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

An Application Built Of Composable Parts

Page 18: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

The MEF ABCs

Page 19: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

First, The Composable Part

Part A

Page 20: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Parts Relate Through Contracts

ContractPart

BPart

A

Page 21: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Imports Are Contracts A Part Needs

Part B

Import

Import

Page 22: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Export

Export

Exports Are Contracts A Part Offers

Part B

Page 23: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

The Container Is The Matchmaker

Container

Page 24: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

More MEF Toys

http://www.flickr.com/photos/jenlightjenlight/58730309/sizes/o/

Page 25: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Catalog

Container Queries Catalogs

Container

Page 26: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Parts Can Load Lazily

Part B

Part A

Export<A>

Page 27: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

ContainerContainer

Parts Can Have Different Lifetimes

Part A

Singleton

Part A Part A Part A

Factory

Page 28: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

MEFMakes ExtensibilityFunFeasibleFlyFrupendousFastFlavorfulFabulous

Page 29: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Where Can I Get MEF Today?

MEF on Codeplex (including samples and full source!!!)http://tinyurl.com/MEFHome

Programming Guide:http://tinyurl.com/MEFGuide

Discussions: http://tinyurl.com/MEFDiscussions

Team Blogs: http://tinyurl.com/MEFBlogs

Email me: [email protected]

Page 30: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Where Can I Get MEF In The Future?

Page 31: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Evals & Recordings

Please fill

out your

evaluation for

this session at:

This session will be available as a recording at:

www.microsoftpdc.com

Page 32: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

Please use the microphones provided

Q&A

Page 33: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 34: Glenn Block  Program Manager Microsoft Corporation TL33 TL49 Related sessions.