extensibilityinapplication 110827160911-phpapp01

19
Extensibility in Application using MEF By Abhishek Sur Website: www.abhisheksur.com Email : [email protected] Twitter : @abhi2434 www.kolkatageeks.com

Upload: abhishek-sur

Post on 10-May-2015

402 views

Category:

Technology


0 download

DESCRIPTION

In this session I have

TRANSCRIPT

Page 1: Extensibilityinapplication 110827160911-phpapp01

Extensibility in Applicationusing MEFBy Abhishek Sur

Website: www.abhisheksur.comEmail : [email protected]

Twitter : @abhi2434

www.kolkatageeks.com

Page 2: Extensibilityinapplication 110827160911-phpapp01

Agenda

Adding MEF into it

Developing an extensible application

What is Extensibility?

Page 3: Extensibilityinapplication 110827160911-phpapp01

What is Extensibility

Page 4: Extensibilityinapplication 110827160911-phpapp01

Extensiblity

Extensibility is an ability to design an application in such a manner so that 3rd party vendor can come along and customize it.

Extensibility does not require the application to be redeployed.

Extensible applications are flexible on client needs.

Examples : Microsoft Office, Skype, World Warcraft etc.

Page 5: Extensibilityinapplication 110827160911-phpapp01

Bertrand Meyer’s Open Close Principle

Page 6: Extensibilityinapplication 110827160911-phpapp01

Benefits of Extensible application Reusability Modularizing Loose Coupling Greater Momentum Support for 3rd party vendors Feeling of Ownership

Page 7: Extensibilityinapplication 110827160911-phpapp01

Problems of Extensible application Development process is more complex. Architecture should be thought before

actual development begins. Security More error prone

Page 8: Extensibilityinapplication 110827160911-phpapp01

Extensibility in your Application

Demo

Page 9: Extensibilityinapplication 110827160911-phpapp01

Managed Extensibility

Framework

Page 10: Extensibilityinapplication 110827160911-phpapp01

How to MEF

MEF

Compose It

Import It

Export It

Page 11: Extensibilityinapplication 110827160911-phpapp01

Export

Page 12: Extensibilityinapplication 110827160911-phpapp01

Import

Page 13: Extensibilityinapplication 110827160911-phpapp01

Compose

Page 14: Extensibilityinapplication 110827160911-phpapp01

MEF Architecture

Catalog

CustomExportProviderCatalogExportProvider AggregatingExportProvider

CompositionContainer

Part

Export Import

Part

Export Import

Part

Export Import

Page 15: Extensibilityinapplication 110827160911-phpapp01

MEF

Catalog◦ Discovers and maintain extensions

CompositionContainer◦ Coordinate creations and satisfy dependencies

ComposablePart◦ Are Imports and Exports that are composable to

the Container Support for LAZY Support for Dynamic Recomposition

Page 16: Extensibilityinapplication 110827160911-phpapp01

Adding MEF to the application

Demo

Page 17: Extensibilityinapplication 110827160911-phpapp01

Finally

Visual Studio is rich with MEF components They export functionality that your code

might need. They import functionality that your code

might offer. Your extension can export:

◦ IWPFTextViewMarginProvider◦ ITaggerProvider◦ IMouseProcessorProvider◦ ICompletionSourceProvider◦ There are lots more…….

Page 18: Extensibilityinapplication 110827160911-phpapp01

References MEF Article

◦ http://tinyurl.com/MEFWORLD MEF Tips

◦ http://tinyurl.com/mefTips MEF Source

◦ http://tinyurl.com/MEFSOURCE MEF Guide

◦ http://tinyurl.com/mefguide MEF Blogs

◦ http://tinyurl.com/mefBlogs MEF Discussions

◦ http://tinyurl.com/mefDiscussions

Page 19: Extensibilityinapplication 110827160911-phpapp01

Thank you.

Twitter : @abhi2434

Email: [email protected]

www.abhisheksur.com

Abhishek Sur, MVP (Client App Dev)