Hlavní menu

Nástroje

UvodDoKomponent / MEF

View (print) - Edit page | Recent changes - Page history

Updated 24 September 2015, 15:10 by Eduard Chromik

UvodDoKomponent.MEF History

Hide minor edits - Show changes to output

24 September 2015, 15:10 by Eduard Chromik -
Changed lines 40-41 from:
Full MEF Architecture described [[MEFarchitecture | here]].
to:
MEF as seen on Fig. below, is divided into three main layers Container, Primitives and Attributed Programing Model.
Each of these parts is described in Full MEF Architecture [[MEFarchitecture | here]].
27 March 2015, 13:56 by Eduard Chromik -
Changed lines 3-4 from:

to:
** [[UvodDoKomponent.MEF#model| MEF model]]
** [[UvodDoKomponent.MEF#example| MEF Examples]]
** [[UvodDoKomponent.MEF#architecture| MEF Architecture]]
** [[UvodDoKomponent.MEF#more| More about MEF]]
** [[UvodDoKomponent.MEF#literature| Literature]]
* [[UvodDoKomponent.MEF#practical | Practical section]]
27 March 2015, 13:22 by Eduard Chromik -
Added lines 1-4:
* [[UvodDoKomponent.MEF#theoretical | Theoretical section]]
** [[UvodDoKomponent.MEF#intro| Introduction]]

27 March 2015, 13:14 by Eduard Chromik -
Changed lines 25-28 from:
--> 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
--> 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
--> 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
to:
-> 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
-> 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
-> 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
27 March 2015, 13:13 by Eduard Chromik -
Changed lines 1-3 from:
h1. [[#proc]] Theoretical section

h2. 1. [[#Introduction]] Introduction
to:
h1. [[#theoretical]] Theoretical section

h2. [[#intro]] 1. Introduction
Changed lines 9-49 from:
* [@System.Compostion.* @] is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be
to:
* [@System.Compostion.* @] is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

h2. [[#model]] 2. MEF model

Roughly speaking, MEF's core is comprised of a catalog and a CompositionContainer. A catalog is responsible for discovering extensions and the container coordinates creation and satisfies dependencies.

* *Parts* (i.e. ''Component'') are the cornerstone of MEF. A composable Part offers up one or more *Exports*, and may also depend on one or more externally provided services or *Imports*. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts'' (e.g. an ''Interface'' or predefined data type like string).
* *Containers* perform the actual composition between parts by matching *Exports* with *Imports*, that is, service providers with service consumers.
* *Catalogs* (i.e. ''Component Repository'') are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. *Containers* use *catalogs* to find out which parts they can use during composition.

-> %width=500px%Attach:mef.png

----> Longer description [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).

h2. [[#example]] 3. MEF Examples

--> 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
--> 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
--> 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]

h2. [[#architecture]] 4. MEF Architecture

Full MEF Architecture described [[MEFarchitecture | here]].
-> Attach:arch1_thumb.png
---> *Fig*: _Different layers in the Managed Extensions Framework._


h2. [[#more]] 5. More about MEF
Are you interested to know more about MEF (e.g. "MEF vs standard IoC Container", "MEF Visualizer", "Why to use MEF", "More learing materials" etc.) click [[MEFmore | here]] .

h2. [[#literature]] 6. Literature
*[[Dependency Injection in .NET -> http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501]]
*[[Programming .NET Components, 2nd Edition -> http://www.amazon.com/Programming-NET-Components-Juval-Lowy/dp/0596102070/]]
*[[Pro .NET 1.1 Remoting, Reflection, and Threading -> http://www.amazon.com/Pro-NET-Remoting-Reflection-Threading/dp/1590594525/]]


h1. [[#practical]] Practical section

Parking lot example writen in C# without using MEF [[ParkovistePlain]]. Implementation Attach:ParkingLot_Plain.zip

Parking lot example writen in C# using MEF Dependency Injection [[ParkovisteMEF]]. Implementation Attach:ParkingLot_MEF.zip
27 March 2015, 13:07 by Eduard Chromik -
Changed lines 1-3 from:
h1. Theoretical section

h2. 1. Introduction
to:
h1. [[#proc]] Theoretical section

h2. 1. [[#Introduction]] Introduction
Changed lines 9-48 from:
* [@System.Compostion.* @] is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

h2. 2. MEF model

Roughly speaking, MEF's core is comprised of a catalog and a CompositionContainer. A catalog is responsible for discovering extensions and the container coordinates creation and satisfies dependencies.

* *Parts* (i.e. ''Component'') are the cornerstone of MEF. A composable Part offers up one or more *Exports*, and may also depend on one or more externally provided services or *Imports*. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts'' (e.g. an ''Interface'' or predefined data type like string).
* *Containers* perform the actual composition between parts by matching *Exports* with *Imports*, that is, service providers with service consumers.
* *Catalogs* (i.e. ''Component Repository'') are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. *Containers* use *catalogs* to find out which parts they can use during composition.

-> %width=500px%Attach:mef.png

----> Longer description [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).

h2. 3. MEF Examples

--> 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
--> 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
--> 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]

h2. 4. MEF Architecture

Full MEF Architecture described [[MEFarchitecture | here]].
-> Attach:arch1_thumb.png
---> *Fig*: _Different layers in the Managed Extensions Framework._


h2. 5. More about MEF
Are you interested to know more about MEF (e.g. "MEF vs standard IoC Container", "MEF Visualizer", "Why to use MEF", "More learing materials" etc.) click [[MEFmore | here]] .

h2. Literature
*[[Dependency Injection in .NET -> http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501]]
*[[Programming .NET Components, 2nd Edition -> http://www.amazon.com/Programming-NET-Components-Juval-Lowy/dp/0596102070/]]
*[[Pro .NET 1.1 Remoting, Reflection, and Threading -> http://www.amazon.com/Pro-NET-Remoting-Reflection-Threading/dp/1590594525/]]

h1. Practical section

Parking lot example writen in C# without using MEF [[ParkovistePlain]]. Implementation Attach:ParkingLot_Plain.zip

Parking lot example writen in C# using MEF Dependency Injection [[ParkovisteMEF]]. Implementation Attach:ParkingLot_MEF.zip
to:
* [@System.Compostion.* @] is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be
27 March 2015, 12:57 by Eduard Chromik -
Changed lines 25-28 from:
-> !!! 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
-> h3. 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
-> h3. 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
to:
--> 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
--> 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
--> 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
27 March 2015, 12:56 by Eduard Chromik -
Changed line 25 from:
-> h3. 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
to:
-> !!! 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
27 March 2015, 12:56 by Eduard Chromik -
Changed lines 25-28 from:
--> h3. 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
--> h3. 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
--> h3. 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
to:
-> h3. 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
-> h3. 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
-> h3. 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
27 March 2015, 12:55 by Eduard Chromik -
Changed lines 25-28 from:
h3. 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
h3. 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
h3. 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
to:
--> h3. 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
--> h3. 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
--> h3. 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
27 March 2015, 12:54 by Eduard Chromik -
Added lines 1-2:
h1. Theoretical section
27 March 2015, 12:54 by Eduard Chromik -
Changed lines 42-46 from:
h1. Praktická část

Příklad parkoviště napsané v C# bez použití MEF [[ParkovistePlain]] a výsledná implementace Attach:ParkingLot_Plain.zip

Příklad parkoviště napsané v C# s použitím MEF [[ParkovisteMEF]] a výsledná implementace Attach:ParkingLot_MEF.zip
to:
h1. Practical section

Parking lot example writen in C# without using MEF [[ParkovistePlain]]. Implementation Attach:ParkingLot_Plain.zip

Parking lot example writen in C# using MEF Dependency Injection [[ParkovisteMEF]]. Implementation Attach:ParkingLot_MEF.zip
06 March 2015, 15:05 by Eduard Chromik -
Changed lines 11-13 from:
* *Parts* (i.e. ''Component'') are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts'' (e.g. an ''Interface'' or predefined data type like string).
to:
Roughly speaking, MEF's core is comprised of a catalog and a CompositionContainer. A catalog is responsible for discovering extensions and the container coordinates creation and satisfies dependencies.

* *Parts* (i.e. ''Component'') are the cornerstone of MEF. A composable Part offers up one or more *Exports*, and may also depend on one or more externally provided services or *Imports*. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts'' (e.g. an ''Interface'' or predefined data type like string).
06 March 2015, 14:27 by Eduard Chromik -
Changed lines 13-14 from:
* *Catalogs* (i.e. Component Repository) are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. *Containers* use *catalogs* to find out which parts they can use during composition.
to:
* *Catalogs* (i.e. ''Component Repository'') are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. *Containers* use *catalogs* to find out which parts they can use during composition.
06 March 2015, 14:27 by Eduard Chromik -
Changed lines 13-14 from:
* *Catalogs* are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. *Containers* use *catalogs* to find out which parts they can use during composition.
to:
* *Catalogs* (i.e. Component Repository) are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. *Containers* use *catalogs* to find out which parts they can use during composition.
06 March 2015, 14:25 by Eduard Chromik -
Changed lines 9-10 from:
h2. 2. How MEF works
to:
h2. 2. MEF model
27 February 2015, 14:48 by Eduard Chromik -
Changed line 44 from:
Příklad parkoviště napsané v C# s použitím MEF [[ParkovisteMEF]] a výsledná implementace Attach:ParkovisteMEF.zip
to:
Příklad parkoviště napsané v C# s použitím MEF [[ParkovisteMEF]] a výsledná implementace Attach:ParkingLot_MEF.zip
27 February 2015, 14:46 by Eduard Chromik -
Changed lines 42-43 from:
Příklad parkoviště napsané v C# bez použití MEF [[ParkovistePlain]] a výsledná implementace Attach:ParkovistePlain.zip
to:
Příklad parkoviště napsané v C# bez použití MEF [[ParkovistePlain]] a výsledná implementace Attach:ParkingLot_Plain.zip
27 February 2015, 14:43 by Eduard Chromik -
Added lines 39-44:

h1. Praktická část

Příklad parkoviště napsané v C# bez použití MEF [[ParkovistePlain]] a výsledná implementace Attach:ParkovistePlain.zip

Příklad parkoviště napsané v C# s použitím MEF [[ParkovisteMEF]] a výsledná implementace Attach:ParkovisteMEF.zip
28 January 2015, 16:26 by Eduard Chromik -
Changed lines 2-3 from:
The *Managed Extensibility Framework* ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications (MEF support a ''plugin model'').
to:
The *Managed Extensibility Framework* ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications (MEF support a ''Plugin Model'').
28 January 2015, 16:25 by Eduard Chromik -
Changed lines 2-3 from:
The *Managed Extensibility Framework* ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications (support a ''plugin model'').
to:
The *Managed Extensibility Framework* ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications (MEF support a ''plugin model'').
28 January 2015, 16:25 by Eduard Chromik -
Changed lines 2-3 from:
The *Managed Extensibility Framework* ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.
to:
The *Managed Extensibility Framework* ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications (support a ''plugin model'').
28 January 2015, 16:13 by Eduard Chromik -
Changed line 11 from:
* *Parts* (i.e. ''Component'') are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts''.
to:
* *Parts* (i.e. ''Component'') are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts'' (e.g. an ''Interface'' or predefined data type like string).
28 January 2015, 15:42 by Eduard Chromik -
Changed line 11 from:
* *Parts* (i.e. component) are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts''.
to:
* *Parts* (i.e. ''Component'') are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts''.
28 January 2015, 15:42 by Eduard Chromik -
Changed line 11 from:
* *Parts* are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts''.
to:
* *Parts* (i.e. component) are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts''.
28 January 2015, 15:02 by Eduard Chromik -
Changed lines 17-18 from:
------> Longer description [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).
to:
----> Longer description [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).
28 January 2015, 15:02 by Eduard Chromik -
Changed lines 15-16 from:
-> Attach:mef.png
to:
-> %width=500px%Attach:mef.png
28 January 2015, 14:51 by Eduard Chromik -
Changed lines 33-34 from:
Are you interested to know more about MEF (e.g. "MEF vs standard IoC Container", "MEF Visualizer") click [[MEFmore | here]] .
to:
Are you interested to know more about MEF (e.g. "MEF vs standard IoC Container", "MEF Visualizer", "Why to use MEF", "More learing materials" etc.) click [[MEFmore | here]] .
28 January 2015, 14:35 by Eduard Chromik -
Changed lines 28-31 from:
Attach:arch1_thumb.png
*Fig*: _Different layers in the Managed Extensions Framework._

to:
-> Attach:arch1_thumb.png
---> *Fig*: _Different layers in the Managed Extensions Framework._

28 January 2015, 14:10 by Eduard Chromik -
Changed lines 33-59 from:
Are you interested to know more about MEF (i.e. "MEF vs standard IoC Container", "MEF Visualizer") click [[MEFmore | here]] .


h2. 6. Why to use MEF

[[10 reasons why to use MEF -> http://csharperimage.jeremylikness.com/2010/04/ten-reasons-to-use-managed.html]]

h2. 7. Good explanations

h3. Audio
*[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]] [@IoC@], DI vs MEF

h3. Code
*[[Code: Barbarian Meets MEF -> http://www.barbarianmeetscoding.com/blog/2012/08/14/barbarian-meets-mef-managed-extensiblity-framework/]]
*[[Code: Glenn Block - Building Composable Apps in .NET 4 with the Managed Extensibility Framework -> http://msdn.microsoft.com/en-us/magazine/ee291628.aspx]] Complete explanations of MEF capabilities
*[[Code: Complete MEF Programming Guide -> https://mef.codeplex.com/wikipage?title=Guide&referringTitle=Overview]]

h3. Video
*[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]] Introduction, MEF 2.0
*[[Video: MEF Jan Steberl CZ -> http://channel9.msdn.com/Blogs/JanSteberl/Managed-Extensibility-Framework]] Introduction MEF - CZ

h3. Presentation
*[[Presentation: Lecture by Nuno Cancelo -> http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef]]
*[[Presentation: Lecture by Mohamed Meligy -> http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef]]


to:
Are you interested to know more about MEF (e.g. "MEF vs standard IoC Container", "MEF Visualizer") click [[MEFmore | here]] .
Deleted lines 38-53:


h2. Interestiong links
*[[Spring.NET & Attribute Driven Configuration -> http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html]]
*[[MEF Runtime Plugin Swapping -> http://paxcel.net/blog/mef-runtime-plugin-swapping/]]

h2. TODO

http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20
http://www.codeproject.com/Articles/376033/From-Zero-to-Proficient-with-MEF
http://www.codeproject.com/Articles/37579/Managed-Extensibility-Framework-Part
https://emcpadden.wordpress.com/2008/12/07/managed-extensibility-framework-and-others/

h2. OSGI Spring Links
http://www.javaworld.com/article/2077837/java-se/hello--osgi--part-1--bundles-for-beginners.html
http://www.javaworld.com/article/2077853/java-se/hello--osgi--part-2--introduction-to-spring-dynamic-modules.html#resources
28 January 2015, 14:06 by Eduard Chromik -
Changed lines 33-35 from:
Are you interested to know more about "MEF vs standard IoC Container", "MEF Visualizer" click [[MEFmore | here]] .

to:
Are you interested to know more about MEF (i.e. "MEF vs standard IoC Container", "MEF Visualizer") click [[MEFmore | here]] .

28 January 2015, 14:02 by Eduard Chromik -
Changed lines 33-34 from:
[[MEFmore | More]]
to:
Are you interested to know more about "MEF vs standard IoC Container", "MEF Visualizer" click [[MEFmore | here]] .

28 January 2015, 14:01 by Eduard Chromik -
Changed lines 14-16 from:
Attach:mef.png
Longer description [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).
to:

-> Attach:mef.png

------> Longer description [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).
Changed lines 25-27 from:
h2. 4. MEF [[MEFarchitecture | Architecture]]
to:
h2. 4. MEF Architecture

Full MEF Architecture described [[MEFarchitecture | here]].
28 January 2015, 13:56 by Eduard Chromik -
Changed lines 2-3 from:
The Managed Extensibility Framework ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.
to:
The *Managed Extensibility Framework* ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.
Changed lines 11-13 from:
* *Parts* are the cornerstone of MEF. Parts known as Exports can provide services to other parts whilst parts known as Imports consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via Contracts.
* *Containers* perform the actual composition between parts by matching Exports with Imports, that is, service providers with service consumers.
* *Catalogs* are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. Containers use catalogs to find out which parts they can use during composition.
to:
* *Parts* are the cornerstone of MEF. Parts known as *Exports* can provide services to other parts whilst parts known as *Imports* consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via ''Contracts''.
* *Containers* perform the actual composition between parts by matching *Exports* with *Imports*, that is, service providers with service consumers.
* *Catalogs* are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. *Containers* use *catalogs* to find out which parts they can use during composition.
28 January 2015, 13:54 by Eduard Chromik -
Changed line 1 from:
h2. Introduction
to:
h2. 1. Introduction
Changed lines 6-13 from:
*System.ComponentModel.Composition.[@*@] which has shipped with .NET 4.0 and higher and Silverlight 4. This provides the standard extension model that has been used in Visual Studio.
*System.Compostion.[@*@] is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

h2. How MEF works

*Parts are the cornerstone of MEF. Parts known as Exports can provide services to other parts whilst parts known as Imports consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via Contracts.
*Containers perform the actual composition between parts by matching Exports with Imports, that is, service providers with service consumers.
*Catalogs are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. Containers use catalogs to find out which parts they can use during composition.
to:
* [@System.ComponentModel.Composition.* @] which has shipped with .NET 4.0 and higher and Silverlight 4. This provides the standard extension model that has been used in Visual Studio.
* [@System.Compostion.* @] is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

h2. 2. How MEF works

* *Parts* are the cornerstone of MEF. Parts known as Exports can provide services to other parts whilst parts known as Imports consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via Contracts.
* *Containers* perform the actual composition between parts by matching Exports with Imports, that is, service providers with service consumers.
* *Catalogs* are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. Containers use catalogs to find out which parts they can use during composition.
Changed lines 17-18 from:
h2. MEF Examples
to:
h2. 3. MEF Examples
Changed lines 23-51 from:
h2. MEF vs standard IoC Container
Nicely writen article about "Mef vs IoC"
[[here -> http://msdn.microsoft.com/en-us/magazine/gg650670.aspx]].

DI is based on three dimensions, Object Composition, Lifetime Management, and Interception.
MEF has potential, but as a DI container, it lacks:
*Code as Configuration
*Auto Registration
*XML configuration
*Custom Lifetimes
*[[Interception -> http://msdn.microsoft.com/en-us/magazine/gg535676.aspx]] (another example [[Interception using Dependency Injection Container -> http://www.freeportmetrics.com/blog/interception-using-dependency-injection-container-unity-to-achieve-separation-of-concerns/]])


For Lifestyle it lacks:
*Per graph
*Web Request Context
*Thread Context
*Session Context
*Pooled
*Scoped
*Custom Reference

Its a option to use MEF as a Extension for standard IoC container [[more -> http://blogs.msdn.com/b/nblumhardt/archive/2009/03/16/hosting-mef-extensions-in-an-ioc-container.aspx]].

h3. .NET IoC/DI options:
*[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]] (another [[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]])
*[[OSGi.net -> http://osgi.codeplex.com]]

h2. MEF [[MEFarchitecture | Architecture]]
to:
h2. 4. MEF [[MEFarchitecture | Architecture]]
Changed lines 28-47 from:
h2. MEF Visualizer
Helps to see what is going on inside the MEF Composition Container. [[Download -> http://mefvisualizer.codeplex.com]]
%width=700px%Attach:MEF_Visualization.png

->[@
Container = new CompositionContainer(
new AggregateCatalog(
new AssemblyCatalog( Assembly.GetExecutingAssembly() ) ,
new AssemblyCatalog( Assembly.LoadFrom( @"MEFVisualizer.Exe" ) )
) );

Container.Compose( batch );

var meftoDgml = new MEFToDGML( Container){ IsNamespaceGrouping = true }; // The Visualizer

meftoDgml.WriteToDGMLFile(); // Write to DGML file
@]

h2. Why to use MEF
to:
h2. 5. More about MEF
[[MEFmore | More]]

h2. 6. Why to use MEF
Changed lines 35-36 from:
h2. Good explanations
to:
h2. 7. Good explanations
28 January 2015, 11:44 by Eduard Chromik -
Added lines 74-77:
h2. Why to use MEF

[[10 reasons why to use MEF -> http://csharperimage.jeremylikness.com/2010/04/ten-reasons-to-use-managed.html]]
28 January 2015, 11:42 by Eduard Chromik -
Changed lines 21-22 from:
h3. 3. Hello World [[example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
to:
h3. 3. [[Hello World example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
28 January 2015, 11:42 by Eduard Chromik -
Changed lines 15-18 from:
Longer version [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).

h2. MEF [[MEFExample | Example]]
to:
Longer description [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).

h2. MEF Examples

h3. 1. [[MEFWizardExample | Evil Wizard example ]] - basic usage of MEF.
h3. 2. [[MEFExample | Catalogs example ]] - more *Catalog* focused
h3. 3. Hello World [[example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]] - [@ External *Codeproject* site! @]
04 January 2015, 22:06 by Eduard Chromik -
Changed lines 17-25 from:
h2. MEF Example

Longer version of this example [[more -> http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework]].

Another "Hello World!" [[example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]]

[[10 reasons why to use MEF -> http://csharperimage.jeremylikness.com/2010/04/ten-reasons-to-use-managed.html]]

to:
h2. MEF [[MEFExample | Example]]
04 January 2015, 22:00 by Eduard Chromik -
Deleted line 25:
Changed lines 54-57 from:
h2. MEF Architecture

[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]
to:
h2. MEF [[MEFarchitecture | Architecture]]
Attach:arch1_thumb.png
*Fig*: _Different layers in the Managed Extensions Framework._

04 January 2015, 21:36 by Eduard Chromik -
Changed lines 52-53 from:
*[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]
(another [[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]])
to:
*[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]] (another [[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]])
04 January 2015, 21:36 by Eduard Chromik -
Changed line 53 from:
(another comparsion [[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]])
to:
(another [[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]])
04 January 2015, 21:35 by Eduard Chromik -
Changed line 53 from:
*[[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]]
to:
(another comparsion [[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]])
04 January 2015, 21:27 by Eduard Chromik -
Added lines 58-59:
[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]
Deleted lines 109-110:
[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]
04 January 2015, 21:22 by Eduard Chromik -
Added lines 77-78:

h3. Audio
Added lines 80-81:

h3. Code
Deleted line 82:
*[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]] Introduction, MEF 2.0
Deleted lines 83-84:
*[[Presentation: Lecture by Nuno Cancelo -> http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef]]
*[[Presentation: Lecture by Mohamed Meligy -> http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef]]
Added lines 85-87:

h3. Video
*[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]] Introduction, MEF 2.0
Added lines 90-95:
h3. Presentation
*[[Presentation: Lecture by Nuno Cancelo -> http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef]]
*[[Presentation: Lecture by Mohamed Meligy -> http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef]]


Changed lines 103-105 from:
[[Spring.NET & Attribute Driven Configuration -> http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html]]
[[MEF Runtime Plugin Swapping -> http://paxcel.net/blog/mef-runtime-plugin-swapping/]]
to:
*[[Spring.NET & Attribute Driven Configuration -> http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html]]
*[[MEF Runtime Plugin Swapping -> http://paxcel.net/blog/mef-runtime-plugin-swapping/]]
04 January 2015, 21:17 by Eduard Chromik -
Changed lines 87-88 from:
[[Dependency Injection in .NET -> http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501]]
to:
*[[Dependency Injection in .NET -> http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501]]
*[[Programming .NET Components, 2nd Edition -> http://www.amazon.com/Programming-NET-Components-Juval-Lowy/dp/0596102070/]]
*[[Pro .NET 1.1 Remoting, Reflection, and Threading -> http://www.amazon.com/Pro-NET-Remoting-Reflection-Threading/dp/1590594525/]]

04 January 2015, 20:14 by Eduard Chromik -
Changed lines 4-5 from:
*There are two versions of MEF:*
to:
h3.There are two versions of MEF:
Changed lines 56-57 from:

to:
h2. MEF Architecture
28 December 2014, 16:21 by Eduard Chromik -
Changed lines 95-104 from:
[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]
to:
[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]

http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20
http://www.codeproject.com/Articles/376033/From-Zero-to-Proficient-with-MEF
http://www.codeproject.com/Articles/37579/Managed-Extensibility-Framework-Part
https://emcpadden.wordpress.com/2008/12/07/managed-extensibility-framework-and-others/

h2. OSGI Spring Links
http://www.javaworld.com/article/2077837/java-se/hello--osgi--part-1--bundles-for-beginners.html
http://www.javaworld.com/article/2077853/java-se/hello--osgi--part-2--introduction-to-spring-dynamic-modules.html#resources
28 December 2014, 15:39 by Eduard Chromik -
Changed lines 95-99 from:
[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]

TODO

*
to:
[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]
28 December 2014, 15:38 by Eduard Chromik -
Changed lines 21-22 from:
Another "Hello World!" [[more -> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]]
to:
Another "Hello World!" [[example-> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]]
28 December 2014, 15:38 by Eduard Chromik -
Added lines 21-22:
Another "Hello World!" [[more -> http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework]]
Changed lines 99-100 from:
* http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework
* http://channel9.msdn.com/Blogs/JanSteberl/Managed-Extensibility-Framework
to:
*
28 December 2014, 15:36 by Eduard Chromik -
Deleted line 80:
Changed lines 82-83 from:
to:
*[[Video: MEF Jan Steberl CZ -> http://channel9.msdn.com/Blogs/JanSteberl/Managed-Extensibility-Framework]] Introduction MEF - CZ
Deleted lines 94-99:





28 December 2014, 15:34 by Eduard Chromik -
Changed line 10 from:
Attach:mef.png
to:
Changed lines 14-16 from:
to:
Attach:mef.png
Longer version [[here -> http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home]] (codeplex wiki).
Added lines 80-81:
*[[Presentation: Lecture by Mohamed Meligy -> http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef]]
Deleted line 103:
* http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home
Deleted lines 104-107:

*
* http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html
* http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef
28 December 2014, 15:26 by Eduard Chromik -
Changed line 24 from:
Nicely writen article about "Mef vs Ioc"
to:
Nicely writen article about "Mef vs IoC"
28 December 2014, 15:25 by Eduard Chromik -
Added line 26:
28 December 2014, 15:24 by Eduard Chromik -
Added lines 24-25:
Nicely writen article about "Mef vs Ioc"
[[here -> http://msdn.microsoft.com/en-us/magazine/gg650670.aspx]].
Changed line 102 from:
* http://msdn.microsoft.com/en-us/magazine/gg650670.aspx
to:
*
28 December 2014, 15:22 by Eduard Chromik -
Deleted lines 99-100:

* http://stackoverflow.com/questions/216565/why-exactly-isnt-mef-a-di-ioc-container
28 December 2014, 15:21 by Eduard Chromik -
Changed line 100 from:
* http://www.hanselman.com/blog/HanselminutesPodcast148MEFManagedExtensibilityFrameworkWithGlennBlock.aspx
to:
28 December 2014, 15:18 by Eduard Chromik -
Changed lines 17-18 from:
Longer version of this example [[more -> * http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework]].
to:
Longer version of this example [[more -> http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework]].
28 December 2014, 15:18 by Eduard Chromik -
Added lines 17-18:
Longer version of this example [[more -> * http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework]].
Changed lines 75-76 from:
[[Code: Complete MEF Programming Guide -> https://mef.codeplex.com/wikipage?title=Guide&referringTitle=Overview]]
to:
*[[Code: Complete MEF Programming Guide -> https://mef.codeplex.com/wikipage?title=Guide&referringTitle=Overview]]
Changed line 95 from:
* http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework
to:
28 December 2014, 15:16 by Eduard Chromik -
Changed lines 73-74 from:
to:
[[Code: Complete MEF Programming Guide -> https://mef.codeplex.com/wikipage?title=Guide&referringTitle=Overview]]
Changed lines 88-91 from:
[[MEF Programming Guide -> https://mef.codeplex.com/wikipage?title=Guide&referringTitle=Overview]]


to:



28 December 2014, 15:14 by Eduard Chromik -
Deleted lines 80-82:
[[Hosting MEF Extensions in an IoC Container -> http://blogs.msdn.com/b/nblumhardt/archive/2009/03/16/hosting-mef-extensions-in-an-ioc-container.aspx]]

28 December 2014, 15:11 by Eduard Chromik -
Added lines 40-41:
Its a option to use MEF as a Extension for standard IoC container [[more -> http://blogs.msdn.com/b/nblumhardt/archive/2009/03/16/hosting-mef-extensions-in-an-ioc-container.aspx]].
Added lines 77-83:
h2. Interestiong links
[[Spring.NET & Attribute Driven Configuration -> http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html]]
[[MEF Runtime Plugin Swapping -> http://paxcel.net/blog/mef-runtime-plugin-swapping/]]

[[Hosting MEF Extensions in an IoC Container -> http://blogs.msdn.com/b/nblumhardt/archive/2009/03/16/hosting-mef-extensions-in-an-ioc-container.aspx]]

Deleted lines 89-92:
[[MEF Runtime Plugin Swapping -> http://paxcel.net/blog/mef-runtime-plugin-swapping/]]

[[Hosting MEF Extensions in an IoC Container -> http://blogs.msdn.com/b/nblumhardt/archive/2009/03/16/hosting-mef-extensions-in-an-ioc-container.aspx]]
Changed lines 92-93 from:
[[Spring.NET -> http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html]]
to:

28 December 2014, 15:03 by Eduard Chromik -
Changed lines 70-71 from:
to:
*[[Presentation: Lecture by Nuno Cancelo -> http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef]]
Deleted lines 76-77:

Changed lines 79-80 from:
[[Lecture -> http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef]]
to:

28 December 2014, 15:01 by Eduard Chromik -
Changed lines 28-30 from:
*[[Interception -> http://msdn.microsoft.com/en-us/magazine/gg535676.aspx]] another example [[Interception using Dependency Injection Container -> http://www.freeportmetrics.com/blog/interception-using-dependency-injection-container-unity-to-achieve-separation-of-concerns/]]

to:
*[[Interception -> http://msdn.microsoft.com/en-us/magazine/gg535676.aspx]] (another example [[Interception using Dependency Injection Container -> http://www.freeportmetrics.com/blog/interception-using-dependency-injection-container-unity-to-achieve-separation-of-concerns/]])

28 December 2014, 15:01 by Eduard Chromik -
Changed lines 28-30 from:
*[[Interception -> http://msdn.microsoft.com/en-us/magazine/gg535676.aspx]]

to:
*[[Interception -> http://msdn.microsoft.com/en-us/magazine/gg535676.aspx]] another example [[Interception using Dependency Injection Container -> http://www.freeportmetrics.com/blog/interception-using-dependency-injection-container-unity-to-achieve-separation-of-concerns/]]

Changed lines 76-77 from:
[[Interception using Dependency Injection Container -> http://www.freeportmetrics.com/blog/interception-using-dependency-injection-container-unity-to-achieve-separation-of-concerns/]]
to:

28 December 2014, 14:59 by Eduard Chromik -
Changed lines 28-29 from:
*Interception
to:
*[[Interception -> http://msdn.microsoft.com/en-us/magazine/gg535676.aspx]]

28 December 2014, 14:57 by Eduard Chromik -
Changed lines 68-69 from:

to:
*[[Code: Glenn Block - Building Composable Apps in .NET 4 with the Managed Extensibility Framework -> http://msdn.microsoft.com/en-us/magazine/ee291628.aspx]] Complete explanations of MEF capabilities
28 December 2014, 14:16 by Eduard Chromik -
Changed lines 2-3 from:
The Managed Extensibility Framework ([[MEF -> http://msdn.microsoft.com/cs-cz/library/dd460648(v=vs.110).aspx ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.
to:
The Managed Extensibility Framework ([[MEF -> https://www.google.cz/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fcs-cz%2Flibrary%2Fdd460648%2528v%3Dvs.110%2529.aspx&ei=QgGgVN6XFMz7aPadgYgO&usg=AFQjCNF8DQdQojB0Aslm3_ImIUcjaS-n8w&sig2=rxSYq3UH2K8kdjt26fMAxw&bvm=bv.82001339,d.d2s ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.
28 December 2014, 14:09 by Eduard Chromik -
Changed lines 2-3 from:
The Managed Extensibility Framework (MEF) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.
to:
The Managed Extensibility Framework ([[MEF -> http://msdn.microsoft.com/cs-cz/library/dd460648(v=vs.110).aspx ]]) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.
28 December 2014, 14:07 by Eduard Chromik -
Changed line 41 from:
*[[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates, Spring.NET, -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]]
to:
*[[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates and Spring.NET comparsion -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]]
28 December 2014, 14:06 by Eduard Chromik -
Changed lines 40-46 from:
[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]

[[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates, Spring.NET, -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]]
[[OSGi.net -> http://osgi.codeplex.com]]


to:
*[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]
*[[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates, Spring.NET, -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]]
*[[OSGi.net -> http://osgi.codeplex.com]]


28 December 2014, 14:06 by Eduard Chromik -
Changed lines 39-43 from:
h3. .NET IoC/DI options: [[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]
Unity, Castle Windsor, Ninject facilitates, Spring.NET, [[OSGi.net -> http://osgi.codeplex.com]]


to:
h3. .NET IoC/DI options:
[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]

[[Unity, StructurMap, Autofac, Castle Windsor, Ninject facilitates, Spring.NET, -> http://elegantcode.com/2009/01/07/ioc-libraries-compared/]]
[[OSGi.net -> http://osgi.codeplex.com]]


28 December 2014, 14:03 by Eduard Chromik -
Changed line 39 from:
h3. .NET IoC/DI options:
to:
h3. .NET IoC/DI options: [[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]
Changed lines 41-43 from:
[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]

to:


28 December 2014, 14:00 by Eduard Chromik -
Changed lines 24-29 from:
*1. Code as Configuration
*2. Auto Registration
*3. XML configuration
*4. Custom Lifetimes
*5. Interception
to:
*Code as Configuration
*Auto Registration
*XML configuration
*Custom Lifetimes
*Interception
Changed lines 31-38 from:
*1. Per graph
*2. Web Request Context
*3. Thread Context
*4. Session Context
*5. Pooled
*6. Scoped
*7. Custom Reference
to:
*Per graph
*Web Request Context
*Thread Context
*Session Context
*Pooled
*Scoped
*Custom Reference
28 December 2014, 13:59 by Eduard Chromik -
Changed lines 24-31 from:

1. Code as Configuration
2. Auto Registration
3. XML configuration (not so important to me)
4. Custom Lifetimes
5. Interception
Those things are pretty important.
to:
*1. Code as Configuration
*2. Auto Registration
*3. XML configuration
*4. Custom Lifetimes
*5. Interception
Changed lines 31-39 from:

1. Per graph
2. Web Request Context
3. Thread Context
4. Session Context
5. Pooled
6. Scoped
7. Custom Reference
to:
*1. Per graph
*2. Web Request Context
*3. Thread Context
*4. Session Context
*5. Pooled
*6. Scoped
*7. Custom Reference
28 December 2014, 13:52 by Eduard Chromik -
Changed line 21 from:
h2. MEF vs IoC Container
to:
h2. MEF vs standard IoC Container
Changed lines 42-47 from:
.NET IoC/DI options:
Unity
Castle Windsor
Ninject facilitates
Spring.NET
to:
h3. .NET IoC/DI options:
Unity, Castle Windsor, Ninject facilitates, Spring.NET, [[OSGi.net -> http://osgi.codeplex.com]]
[[Containers comparsion-> http://featuretests.apphb.com/DependencyInjection.html]]

28 December 2014, 00:48 by Eduard Chromik -
Added lines 4-5:
*There are two versions of MEF:*
28 December 2014, 00:17 by Eduard Chromik -
Changed lines 15-18 from:
[[10 reason why to use MEF -> http://csharperimage.jeremylikness.com/2010/04/ten-reasons-to-use-managed.html]]


to:
[[10 reasons why to use MEF -> http://csharperimage.jeremylikness.com/2010/04/ten-reasons-to-use-managed.html]]


28 December 2014, 00:16 by Eduard Chromik -
Changed lines 15-18 from:
to:
[[10 reason why to use MEF -> http://csharperimage.jeremylikness.com/2010/04/ten-reasons-to-use-managed.html]]


28 December 2014, 00:13 by Eduard Chromik -
Changed line 37 from:
Another .NET IoC/DI options:
to:
.NET IoC/DI options:
22 December 2014, 15:56 by Eduard Chromik -
Changed line 62 from:
*[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]] IoC, DI vs MEF
to:
*[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]] [@IoC@], DI vs MEF
22 December 2014, 15:55 by Eduard Chromik -
Changed line 62 from:
*[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]]
to:
*[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]] IoC, DI vs MEF
Changed lines 64-66 from:
*[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]]

to:
*[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]] Introduction, MEF 2.0

22 December 2014, 15:49 by Eduard Chromik -
Changed lines 62-66 from:
[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]]
[[Code: Barbarian Meets MEF -> http://www.barbarianmeetscoding.com/blog/2012/08/14/barbarian-meets-mef-managed-extensiblity-framework/]]
[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]]

to:
*[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]]
*[[Code: Barbarian Meets MEF -> http://www.barbarianmeetscoding.com/blog/2012/08/14/barbarian-meets-mef-managed-extensiblity-framework/]]
*[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]]

22 December 2014, 15:48 by Eduard Chromik -
Changed lines 64-65 from:

to:
[[Video: MEF Oleg Lvovitch and Kevin Ransom -> http://channel9.msdn.com/posts/NET-45-Oleg-Lvovitch-and-Kevin-Ransom-Managed-Extensibility-Framework-MEF-20]]

22 December 2014, 15:46 by Eduard Chromik -
Changed lines 63-64 from:

to:
[[Code: Barbarian Meets MEF -> http://www.barbarianmeetscoding.com/blog/2012/08/14/barbarian-meets-mef-managed-extensiblity-framework/]]

Deleted lines 72-73:
[[Barbarian Meets MEF -> http://www.barbarianmeetscoding.com/blog/2012/08/14/barbarian-meets-mef-managed-extensiblity-framework/]]
22 December 2014, 15:45 by Eduard Chromik -
Changed lines 13-14 from:

to:
h2. MEF Example

Changed line 37 from:
Another .NET options:
to:
Another .NET IoC/DI options:
Changed lines 61-62 from:

to:
h2. Good explanations
[[Audio: MEF with Glenn Block -> http://www.hanselminutes.com/148/mef-managed-extensibility-framework-with-glenn-block]]

22 December 2014, 15:38 by Eduard Chromik -
Changed lines 7-8 from:
h2. How it works
to:
h2. How MEF works
Attach:mef.png
22 December 2014, 15:37 by Eduard Chromik -
Changed lines 7-14 from:
to:
h2. How it works

*Parts are the cornerstone of MEF. Parts known as Exports can provide services to other parts whilst parts known as Imports consume services from other parts. It is throught this relationship between what a part needs, and what a part can provide that the composition takes place. Service definition is done via Contracts.
*Containers perform the actual composition between parts by matching Exports with Imports, that is, service providers with service consumers.
*Catalogs are in charge of part discovery. Using different built-in catalogs, an application can find parts within a given assembly or a given folder at runtime. Containers use catalogs to find out which parts they can use during composition.


22 December 2014, 15:15 by Eduard Chromik -
Changed line 36 from:
Helps to see what is going on inside the MEF Composition Container
to:
Helps to see what is going on inside the MEF Composition Container. [[Download -> http://mefvisualizer.codeplex.com]]
Changed lines 52-54 from:
[[Download -> http://mefvisualizer.codeplex.com]]

to:


22 December 2014, 15:15 by Eduard Chromik -
Changed lines 52-53 from:

to:
[[Download -> http://mefvisualizer.codeplex.com]]

22 December 2014, 15:03 by Eduard Chromik -
Changed lines 37-38 from:
Attach:MEF_Visualization.png
to:
%width=700px%Attach:MEF_Visualization.png
22 December 2014, 14:34 by Eduard Chromik -
Changed lines 39-64 from:
(:source lang=css header="$HTMLStylesFmt['sourceblock'] = '" footer="';":)
[=
.sourceblocklink {
text-align: right;
font-size: smaller;
}
.sourceblocktext {
padding: 0.5em;
border: 1px solid #808080;
color: #000000;
background-color: #F1F0ED;
}
.sourceblocktext div {
font-family: monospace;
font-size: small;
line-height: 1;
height: 1%;
}

.sourceblocktext div.head,
.sourceblocktext div.foot {
font: italic medium serif;
padding: 0.5em;
}=]

to:
->[@
Container = new CompositionContainer(
new AggregateCatalog(
new AssemblyCatalog( Assembly.GetExecutingAssembly() ) ,
new AssemblyCatalog( Assembly.LoadFrom( @"MEFVisualizer.Exe" ) )
) );

Container.Compose( batch );

var meftoDgml = new MEFToDGML( Container){ IsNamespaceGrouping = true }; // The Visualizer

meftoDgml.WriteToDGMLFile(); // Write to DGML file
@]

22 December 2014, 14:26 by Eduard Chromik -
Changed lines 39-43 from:
=csharp[=
ApplicationContext ctx = new ClassPathXmlApplicationContext("cz/zcu/kiv/project/beanDefinition.xml");
=]

to:
(:source lang=css header="$HTMLStylesFmt['sourceblock'] = '" footer="';":)
[=
.sourceblocklink {
text-align: right;
font-size: smaller;
}
.sourceblocktext {
padding: 0.5em;
border: 1px solid #808080;
color: #000000;
background-color: #F1F0ED;
}
.sourceblocktext div {
font-family: monospace;
font-size: small;
line-height: 1;
height: 1%;
}

.sourceblocktext div.head,
.sourceblocktext div.foot {
font: italic medium serif;
padding: 0.5em;
}=]

22 December 2014, 14:20 by Eduard Chromik -
Changed lines 39-53 from:
---> =java122[=
Container = new CompositionContainer(
new AggregateCatalog(
new AssemblyCatalog( Assembly.GetExecutingAssembly() ) ,
new AssemblyCatalog( Assembly.LoadFrom( @"MEFVisualizer.Exe" ) )
) );

Container.Compose( batch );

var meftoDgml = new MEFToDGML( Container){ IsNamespaceGrouping = true }; // The Visualizer

meftoDgml.WriteToDGMLFile(); // Write to DGML file
=]

to:
=csharp[=
ApplicationContext ctx = new ClassPathXmlApplicationContext("cz/zcu/kiv/project/beanDefinition.xml");
=]

22 December 2014, 14:18 by Eduard Chromik -
Changed line 39 from:
--->[=
to:
---> =java122[=
22 December 2014, 14:17 by Eduard Chromik -
Changed lines 39-40 from:
(:code:) [=
// C# source code goes here
to:
--->[=
Container = new CompositionContainer(
new AggregateCatalog(
new AssemblyCatalog( Assembly.GetExecutingAssembly() ) ,
new AssemblyCatalog( Assembly.LoadFrom( @"MEFVisualizer.Exe" ) )
) );

Container.Compose( batch );

var meftoDgml = new MEFToDGML( Container){ IsNamespaceGrouping = true }; // The Visualizer

meftoDgml.WriteToDGMLFile(); // Write to DGML file
22 December 2014, 14:11 by Eduard Chromik -
Changed line 39 from:
(:code=csharp:) [=
to:
(:code:) [=
22 December 2014, 14:08 by Eduard Chromik -
Changed lines 39-53 from:
=java122 [=
Container = new CompositionContainer(
new AggregateCatalog(
new AssemblyCatalog( Assembly.GetExecutingAssembly() ) ,
new AssemblyCatalog( Assembly.LoadFrom( @"MEFVisualizer.Exe" ) )
) );

Container.Compose( batch );

var meftoDgml = new MEFToDGML( Container){ IsNamespaceGrouping = true }; // The Visualizer

meftoDgml.WriteToDGMLFile(); // Write to DGML file
=]

to:
(:code=csharp:) [=
// C# source code goes here
=]

22 December 2014, 14:07 by Eduard Chromik -
Changed lines 39-53 from:
to:
=java122 [=
Container = new CompositionContainer(
new AggregateCatalog(
new AssemblyCatalog( Assembly.GetExecutingAssembly() ) ,
new AssemblyCatalog( Assembly.LoadFrom( @"MEFVisualizer.Exe" ) )
) );

Container.Compose( batch );

var meftoDgml = new MEFToDGML( Container){ IsNamespaceGrouping = true }; // The Visualizer

meftoDgml.WriteToDGMLFile(); // Write to DGML file
=]

22 December 2014, 14:03 by Eduard Chromik -
Changed line 36 from:
to:
Helps to see what is going on inside the MEF Composition Container
22 December 2014, 14:03 by Eduard Chromik -
Changed lines 37-39 from:
Attach:MEF_Visualization

to:
Attach:MEF_Visualization.png

22 December 2014, 14:02 by Eduard Chromik -
Changed lines 37-39 from:
Attach:MEF_Visualization.png

to:
Attach:MEF_Visualization

22 December 2014, 14:02 by Eduard Chromik -
Changed lines 37-39 from:
Attach:komp-subkomp.png

to:
Attach:MEF_Visualization.png

22 December 2014, 14:01 by Eduard Chromik -
Changed lines 37-39 from:
Attach:MEFVisualisation.png

to:
Attach:komp-subkomp.png

22 December 2014, 14:01 by Eduard Chromik -
22 December 2014, 14:00 by Eduard Chromik -
Changed lines 37-39 from:
http://wiki.kiv.zcu.cz/uploads/UvodDoKomponent/MEF_Visualization

to:
Attach:MEFVisualisation.png

22 December 2014, 14:00 by Eduard Chromik -
Changed lines 37-39 from:
Attach:MEF_Visualization.png

to:
http://wiki.kiv.zcu.cz/uploads/UvodDoKomponent/MEF_Visualization

22 December 2014, 13:58 by Eduard Chromik -
Changed line 36 from:
(:attachlist:)
to:
22 December 2014, 13:58 by Eduard Chromik -
Added line 36:
(:attachlist:)
22 December 2014, 13:56 by Eduard Chromik -
Changed lines 35-37 from:
h2. MEF Visualization

to:
h2. MEF Visualizer
Attach:MEF_Visualization.png

22 December 2014, 13:54 by Eduard Chromik -
Added lines 35-37:
h2. MEF Visualization

22 December 2014, 13:53 by Eduard Chromik -
Changed lines 5-7 from:
*System.Compostion.* is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

to:
*System.Compostion.[@*@] is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

22 December 2014, 13:53 by Eduard Chromik -
Changed lines 5-7 from:
*System.Compostion.*_ is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

to:
*System.Compostion.* is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.

22 December 2014, 13:52 by Eduard Chromik -
Changed line 9 from:
DI is based on three dimensions, Object Composition, Lifetime Management, and Interception.
to:
DI is based on three dimensions, Object Composition, Lifetime Management, and Interception.
22 December 2014, 13:52 by Eduard Chromik -
Changed line 35 from:
h1. Literature
to:
h2. Literature
Changed lines 38-39 from:
h1. TODO
to:
h2. TODO
22 December 2014, 13:52 by Eduard Chromik -
Added lines 38-39:
h1. TODO
22 December 2014, 13:51 by Eduard Chromik -
Changed line 1 from:
h1. Introduction
to:
h2. Introduction
Changed line 8 from:
h1. MEF vs IoC Container
to:
h2. MEF vs IoC Container
Added lines 29-34:
Another .NET options:
Unity
Castle Windsor
Ninject facilitates
Spring.NET
22 December 2014, 13:49 by Eduard Chromik -
Added lines 7-8:

h1. MEF vs IoC Container
Deleted lines 9-16:

Unity, Castle Windsor, Ninject facilitates, Spring.NET




[[Dependency Injection in .NET -> http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501]]
Added lines 29-31:
h1. Literature
[[Dependency Injection in .NET -> http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501]]
18 December 2014, 01:06 by Eduard Chromik -
Added lines 37-38:
[[Barbarian Meets MEF -> http://www.barbarianmeetscoding.com/blog/2012/08/14/barbarian-meets-mef-managed-extensiblity-framework/]]
17 December 2014, 20:31 by Eduard Chromik -
Added lines 35-36:
[[Interception using Dependency Injection Container -> http://www.freeportmetrics.com/blog/interception-using-dependency-injection-container-unity-to-achieve-separation-of-concerns/]]
17 December 2014, 19:53 by Eduard Chromik -
Added lines 7-8:
DI is based on three dimensions, Object Composition, Lifetime Management, and Interception.
Added lines 12-34:


[[Dependency Injection in .NET -> http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501]]

MEF has potential, but as a DI container, it lacks:

1. Code as Configuration
2. Auto Registration
3. XML configuration (not so important to me)
4. Custom Lifetimes
5. Interception
Those things are pretty important.

For Lifestyle it lacks:

1. Per graph
2. Web Request Context
3. Thread Context
4. Session Context
5. Pooled
6. Scoped
7. Custom Reference
17 December 2014, 19:50 by Eduard Chromik -
Changed lines 7-9 from:
to:
Unity, Castle Windsor, Ninject facilitates, Spring.NET

17 December 2014, 19:49 by Eduard Chromik -
Added lines 18-19:
[[Spring.NET -> http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html]]
17 December 2014, 17:52 by Eduard Chromik -
Changed lines 22-23 from:
* http://www.mstv.cz/vyvojari/videos/239/Managed-Extensibility-Framework
to:
* http://channel9.msdn.com/Blogs/JanSteberl/Managed-Extensibility-Framework
Changed lines 28-29 from:
* http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef
* http://channel9.msdn.com/Shows/10-4/10-4-Episode-26-Creating-Extensible-Applications-with-the-Managed-Extensibility-Framework
to:
* http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef
17 December 2014, 01:17 by Eduard Chromik -
Deleted line 25:
* http://stackoverflow.com/questions/108116/mef-managed-extensibility-framework-vs-ioc-di
17 December 2014, 00:49 by Eduard Chromik -
Deleted line 18:
* http://mef.codeplex.com
Changed lines 23-25 from:
* http://stackoverflow.com/questions/15572302/difference-between-mef-and-ioc-containers-likeunity-autofac-smap-ninject-windso
* http://stackoverflow.com/questions/709532/is-mef-osgi-for-net
* https://mef.codeplex.com/discussions/209827
to:
17 December 2014, 00:01 by Eduard Chromik -
Changed line 1 from:
Introduction
to:
h1. Introduction
Added line 9:
Added line 11:
Added lines 16-17:
[[MEF Programming Guide -> https://mef.codeplex.com/wikipage?title=Guide&referringTitle=Overview]]
16 December 2014, 23:56 by Eduard Chromik -
Added lines 12-13:
[[Hosting MEF Extensions in an IoC Container -> http://blogs.msdn.com/b/nblumhardt/archive/2009/03/16/hosting-mef-extensions-in-an-ioc-container.aspx]]
16 December 2014, 23:54 by Eduard Chromik -
Added lines 7-8:

[[In-Depth analysis of MEF Architecture -> https://kishore1021.wordpress.com/window-8-winrt/in-depth-analysis-of-mef-architecture/]]
16 December 2014, 23:45 by Eduard Chromik -
Changed line 1 from:
Introduciton
to:
Introduction
Changed lines 7-8 from:
http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef
to:
[[Lecture -> http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef]]
16 December 2014, 23:39 by Eduard Chromik -
Changed line 4 from:
*System[@.@]ComponentModel[@.@]Composition.[@*@] which has shipped with .NET 4.0 and higher and Silverlight 4. This provides the standard extension model that has been used in Visual Studio.
to:
*System.ComponentModel.Composition.[@*@] which has shipped with .NET 4.0 and higher and Silverlight 4. This provides the standard extension model that has been used in Visual Studio.
Added lines 7-10:
http://www.slideshare.net/NunoCancelo/give-more-life-to-your-application-extending-it-with-mef

[[MEF Runtime Plugin Swapping -> http://paxcel.net/blog/mef-runtime-plugin-swapping/]]
16 December 2014, 23:27 by Eduard Chromik -
Changed line 4 from:
*System.ComponentModel.Composition.[@*@] which has shipped with .NET 4.0 and higher and Silverlight 4. This provides the standard extension model that has been used in Visual Studio.
to:
*System[@.@]ComponentModel[@.@]Composition.[@*@] which has shipped with .NET 4.0 and higher and Silverlight 4. This provides the standard extension model that has been used in Visual Studio.
16 December 2014, 23:26 by Eduard Chromik -
Added lines 1-6:
Introduciton
The Managed Extensibility Framework (MEF) is a composition layer for .NET that improves the flexibility, maintainability and testability of large applications. MEF can be used for third-party plugin extensibility, or it can bring the benefits of a loosely-coupled plugin-like architecture to regular applications.

*System.ComponentModel.Composition.[@*@] which has shipped with .NET 4.0 and higher and Silverlight 4. This provides the standard extension model that has been used in Visual Studio.
*System.Compostion.*_ is a lightweight version of MEF, which has been optimized for static composition scenarios and provides faster compositions. It is also the only version of MEF that is as a portable class library and can be used on phone, store, desktop and web applications.
30 October 2014, 15:08 by Eduard Chromik -
Added lines 4-16:
* http://www.codeproject.com/Articles/56635/Managed-Extensibility-Framework
* http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home
* http://www.mstv.cz/vyvojari/videos/239/Managed-Extensibility-Framework
* http://stackoverflow.com/questions/15572302/difference-between-mef-and-ioc-containers-likeunity-autofac-smap-ninject-windso
* http://stackoverflow.com/questions/709532/is-mef-osgi-for-net
* https://mef.codeplex.com/discussions/209827
* http://www.hanselman.com/blog/HanselminutesPodcast148MEFManagedExtensibilityFrameworkWithGlennBlock.aspx
* http://stackoverflow.com/questions/216565/why-exactly-isnt-mef-a-di-ioc-container
* http://stackoverflow.com/questions/108116/mef-managed-extensibility-framework-vs-ioc-di
* http://msdn.microsoft.com/en-us/magazine/gg650670.aspx
* http://the-tread-way.blogspot.cz/2010/04/springnet-attribute-driven.html
* http://www.slideshare.net/Mohamed_Meligy/managed-extensibility-framework-mef
* http://channel9.msdn.com/Shows/10-4/10-4-Episode-26-Creating-Extensible-Applications-with-the-Managed-Extensibility-Framework
30 October 2014, 14:55 by Eduard Chromik -
Changed lines 2-3 from:
http://mef.codeplex.com
http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework
to:
* http://mef.codeplex.com
* http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework
30 October 2014, 14:54 by Eduard Chromik -
30 October 2014, 14:54 by Eduard Chromik -
Added line 3:
http://www.codeproject.com/Articles/188054/An-Introduction-to-Managed-Extensibility-Framework
30 October 2014, 14:54 by Eduard Chromik -
Added lines 1-2:
TODO
http://mef.codeplex.com