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

Extensibilityinapplication 110827160911-phpapp01

May 10, 2015

Download

Technology

Abhishek Sur

In this session I have
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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)