<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx</link><description>Recently my team has been working on the Managed Extensions Framework (MEF)... I have gotten a chance to explain the concept to folks and I think I have discovered a way to talk about MEF that folks can easily get. So I thought I'd spend a little time</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>infoblog &amp;raquo; Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969086</link><pubDate>Mon, 29 Sep 2008 18:36:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969086</guid><dc:creator>infoblog &amp;raquo; Simple Introduction to Extensible Applications with the Managed Extensions Framework</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://blog.a-foton.ru/index.php/2008/09/29/simple-introduction-to-extensible-applications-with-the-managed-extensions-framework/"&gt;http://blog.a-foton.ru/index.php/2008/09/29/simple-introduction-to-extensible-applications-with-the-managed-extensions-framework/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969216</link><pubDate>Mon, 29 Sep 2008 19:55:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969216</guid><dc:creator>joewood</dc:creator><description>&lt;p&gt;Very nice tutorial.&lt;/p&gt;
&lt;p&gt;How about an option to dynamically bind. &amp;nbsp;So if you drop a new DLL in the directory it would be added into the container and bound at runtime - without having to restart.&lt;/p&gt;
&lt;p&gt;Also like to see some options for synchronous/asynchronous calling patterns in outgoing interfaces where there's more than one target. &amp;nbsp;Maybe an opportunity to incorporate WF.&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969257</link><pubDate>Mon, 29 Sep 2008 20:36:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969257</guid><dc:creator>Jason Olson</dc:creator><description>&lt;p&gt;Hey Joe, regarding dynamically binding... while Brad didn't show it here, it is supported in the current methods via &amp;quot;rebinding.&amp;quot; The reason the app needs to be restarted here in Brad's demo is he outputs the messages and then effectively ends the app. &lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969273</link><pubDate>Mon, 29 Sep 2008 20:49:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969273</guid><dc:creator>Will</dc:creator><description>&lt;p&gt;I'd love to see one of these frameworks move the linking logic into a much lower level in the type resolution call stack. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is great and all, but what happens when a type is resolved from within code you can't control? &amp;nbsp;For instance, during xaml or xml deserialization. &amp;nbsp;You can't rewrite the serializers to use the MEF to identify, load and compose types that aren't known at compile time or within any loaded assemblies....&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969475</link><pubDate>Mon, 29 Sep 2008 23:59:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969475</guid><dc:creator>iCe</dc:creator><description>&lt;p&gt;I see great oportunity within the logging app block to greatly extend the loggers you want without providing any explicit implementation.&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969576</link><pubDate>Tue, 30 Sep 2008 02:02:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969576</guid><dc:creator>Robert</dc:creator><description>&lt;p&gt;I have a few questions about MEF: What about System.Addin? Couldn&amp;#180;t that be done with it? What is the difference between MEF and System.Addin?&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969713</link><pubDate>Tue, 30 Sep 2008 04:49:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969713</guid><dc:creator>joewood</dc:creator><description>&lt;p&gt;Thanks Jason.&lt;/p&gt;
&lt;p&gt;Also I would ask how this works with start-up configuration - like IoC containers.&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969860</link><pubDate>Tue, 30 Sep 2008 08:21:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969860</guid><dc:creator>Hank</dc:creator><description>&lt;p&gt;I have searched the NET and I should say I have not come across an article like this which is so easy to understand and learn the concepts.&lt;/p&gt;
&lt;p&gt;cheers&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969889</link><pubDate>Tue, 30 Sep 2008 08:55:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969889</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@Robert, Krys has a good article on this here. &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/kcwalina/archive/2008/06/13/MAFMEF.aspx"&gt;http://blogs.msdn.com/kcwalina/archive/2008/06/13/MAFMEF.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The bits that he wrote the article based on are old, however the principle still stands. MAF is primarily focused on add-in activation and isolation. MEF is concerned with discovery and compostion of clr-types, which includes types activated through MAF. There is some overlap though, however in the places where they overlap, the functionality supports the primary goals of each framework.&lt;/p&gt;
</description></item><item><title>More MEF Samples and launch of MEF contrib.</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969907</link><pubDate>Tue, 30 Sep 2008 09:11:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969907</guid><dc:creator>My Technobabble</dc:creator><description>&lt;p&gt;The past few weeks, the momentum has picked up around samples using MEF. In my last post I mentioned&lt;/p&gt;
</description></item><item><title>Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969934</link><pubDate>Tue, 30 Sep 2008 09:41:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969934</guid><dc:creator>Daniel's blog</dc:creator><description>&lt;p&gt;Brad Abrams has a post on his blog Simple Introduction to Extensible Applications with the Managed Extensions&lt;/p&gt;
</description></item><item><title>8am and The Managed Extensibility Framework </title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969950</link><pubDate>Tue, 30 Sep 2008 10:06:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969950</guid><dc:creator>Casey Charlton - Insane World</dc:creator><description>&lt;p&gt;Brad Abrams can always be relied upon for a great post - and the latest whizzy thing to come from Microsoft&lt;/p&gt;
</description></item><item><title>8am and The Managed Extensibility Framework </title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969981</link><pubDate>Tue, 30 Sep 2008 10:49:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969981</guid><dc:creator>Community Blogs</dc:creator><description>&lt;p&gt;Brad Abrams can always be relied upon for a great post - and the latest whizzy thing to come from Microsoft&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8969990</link><pubDate>Tue, 30 Sep 2008 11:02:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969990</guid><dc:creator>BorekB</dc:creator><description>&lt;p&gt;This is great introduction. There might be a small typo - IOutputString interface should contain OutputString() instead of OutputStringToConsole().&lt;/p&gt;
</description></item><item><title>Simple Introduction to Extensible Applications with the MEF</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8970007</link><pubDate>Tue, 30 Sep 2008 11:09:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970007</guid><dc:creator>DotNetKicks.com</dc:creator><description>&lt;p&gt;You've been kicked (a good thing) - Trackback from DotNetKicks.com&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8970244</link><pubDate>Tue, 30 Sep 2008 16:23:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970244</guid><dc:creator>Ganesh</dc:creator><description>&lt;p&gt;Excellent KISS approach. &lt;/p&gt;
&lt;p&gt;I have only one doubt,&lt;/p&gt;
&lt;p&gt;The second example looks like the export happens by type rather than the property. This would mean any dll loaded by a catalog if it has a exported string it will show that as a message.&lt;/p&gt;
&lt;p&gt;The other thing is what someone had already said, this whole idea of loading dlls by reflection should happen at a very low level.&lt;/p&gt;
&lt;p&gt;There are other issues with the MEF approach and calls for enhancements. For example &lt;/p&gt;
&lt;p&gt;1) securing a class to be loaded based on authentication,&lt;/p&gt;
&lt;p&gt;2) getting the other dlls that are used by the one loaded is another I can think of.&lt;/p&gt;
&lt;p&gt;3) Loading dlls from different sources.&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8970331</link><pubDate>Tue, 30 Sep 2008 17:25:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970331</guid><dc:creator>joshka</dc:creator><description>&lt;p&gt;The feed item for this is borked and loses formatting.&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8970549</link><pubDate>Tue, 30 Sep 2008 20:58:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970549</guid><dc:creator>Dave R.</dc:creator><description>&lt;p&gt;Thank you for the post. I have a few queries:&lt;/p&gt;
&lt;p&gt;1) Will MEF be a separate download with source, a DLL-only download, or will it become part of the Framework?&lt;/p&gt;
&lt;p&gt;2) It seems a little like an 'everything including the kitchen sink' approach. For simple client-side apps that, say, just want to dynamically load extensions, this is going to add quite a lot to download sizes. This is what stopped me from using things like Application Blocks in the past - they seem focused on the Enterprise rather than the more casual developer. Can we pick and choose from the catalogs should we only want to use one type?&lt;/p&gt;
&lt;p&gt;3) You mention that there are many different catalog types. If this is the case, wouldn't it be preferable to rely on the container constructor to recognise both the type and whether it's being passed a single container or a List of them? It seems a bit tortuous to have to setup an AggregatingComposablePartCatalog, add other catalogs to that, then pass it to the container. I think it would be less hassle for devs if we could just create a container without having to be explicit about the catalogs. Also could there be an overloaded Catalog constructor instead of all the separate types? For example:&lt;/p&gt;
&lt;p&gt;// 'Catalog' instead of 'AttributedAssemblyPartCatalog'&lt;/p&gt;
&lt;p&gt;var myCatalog = new Catalog(Assembly.GetExecutingAssembly());&lt;/p&gt;
&lt;p&gt;var container = new CompositionContainer(myCatalog);&lt;/p&gt;
&lt;p&gt;container.AddPart(this);&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;var cats = new List&amp;lt;Catalog&amp;gt;() { new Catalog(Assembly.GetExecutingAssembly()), new Catalog(&amp;quot;C:\\My Types&amp;quot;) };&lt;/p&gt;
&lt;p&gt;var container = new container(cats);&lt;/p&gt;
&lt;p&gt;container.AddPart(this);&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;3) Hasn't this been covered by other extensibility frameworks?&lt;/p&gt;
&lt;p&gt;Sorry if this seems a little negative. I do look forward to having a play with the release and reading about it further.&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8970566</link><pubDate>Tue, 30 Sep 2008 21:20:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970566</guid><dc:creator>Ganesh</dc:creator><description>&lt;p&gt;In the example under Taking MEF to next level, the Interface is well known to the application as well as the MEF'd dll. This would mean that a dynamic loading will only be possible for those dlls that support that interface.&lt;/p&gt;
&lt;p&gt;So from that example it looks like, an application implementing MEF should be well aware of what interface(s) it is going to implement. hmmmm.,,,,,,&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8970586</link><pubDate>Tue, 30 Sep 2008 21:39:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970586</guid><dc:creator>chrisplasun@hotmail.com</dc:creator><description>&lt;p&gt;How do AppDomains fit into this? Or do they at all?&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8970694</link><pubDate>Tue, 30 Sep 2008 23:42:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970694</guid><dc:creator>Ganesh</dc:creator><description>&lt;p&gt;for single applications where the classes are in the same assembly, won't the code below be easier to implement?&lt;/p&gt;
&lt;p&gt;&amp;lt;code&amp;gt;&lt;/p&gt;
&lt;p&gt;private ArrayList getTasks()&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;		ArrayList allTasks = new ArrayList();&lt;/p&gt;
&lt;p&gt;		Assembly assembly = Assembly.Load(Assembly.GetCallingAssembly().FullName );&lt;/p&gt;
&lt;p&gt;			foreach (Type type in assembly.GetTypes())&lt;/p&gt;
&lt;p&gt;			{&lt;/p&gt;
&lt;p&gt;				if (type.IsClass == true)&lt;/p&gt;
&lt;p&gt;				{&lt;/p&gt;
&lt;p&gt;					// create an instance of the object&lt;/p&gt;
&lt;p&gt;					try&lt;/p&gt;
&lt;p&gt;					{&lt;/p&gt;
&lt;p&gt;						object taskable = type.GetInterface (&amp;quot;ITask&amp;quot;);&lt;/p&gt;
&lt;p&gt;						if (taskable != null) &lt;/p&gt;
&lt;p&gt;						{&lt;/p&gt;
&lt;p&gt;							object ClassObj = Activator.CreateInstance(type);&lt;/p&gt;
&lt;p&gt;							if (ClassObj is ITask )&lt;/p&gt;
&lt;p&gt;							{&lt;/p&gt;
&lt;p&gt;								allTasks.Add((ITask)ClassObj);&lt;/p&gt;
&lt;p&gt;							}	&lt;/p&gt;
&lt;p&gt;						}&lt;/p&gt;
&lt;p&gt;					}&lt;/p&gt;
&lt;p&gt;					catch(MissingMethodException ex)&lt;/p&gt;
&lt;p&gt;					{&lt;/p&gt;
&lt;p&gt;						Console.WriteLine (ex.Message);&lt;/p&gt;
&lt;p&gt;					}&lt;/p&gt;
&lt;p&gt;				}				&lt;/p&gt;
&lt;p&gt;			}&lt;/p&gt;
&lt;p&gt;			return allTasks;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;lt;/code&amp;gt;&lt;/p&gt;
&lt;p&gt;where ITask is the interface. &lt;/p&gt;
&lt;p&gt;The above code will instantiate all classes in the executing assembly that implements ITask&lt;/p&gt;
&lt;p&gt;for loading from other assemblies, one can use &amp;quot;LoadFile&amp;quot; or &amp;quot;LoadFrom&amp;quot; method of Assembly class&lt;/p&gt;
&lt;p&gt;This will work in all versions of .net framework in my opinion &lt;/p&gt;
&lt;p&gt;And in the main logic , all one has to do is to,&lt;/p&gt;
&lt;p&gt;ArrayList taskStack = getTasks(); &lt;/p&gt;
&lt;p&gt;			foreach(ITask aTask in taskStack)&lt;/p&gt;
&lt;p&gt;			{&lt;/p&gt;
&lt;p&gt;				aTask.execute ();&lt;/p&gt;
&lt;p&gt;			}&lt;/p&gt;
&lt;p&gt;Doesn't the code do the same thing what MEF does?&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8971139</link><pubDate>Wed, 01 Oct 2008 08:18:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8971139</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@Dave&lt;/p&gt;
&lt;p&gt;1. MEF will continue to ship on Codeplex for now, but will be rolled into the framework.&lt;/p&gt;
&lt;p&gt;2. Catalogs load things on demand. So if all you are asking for is a logger in a single assembly, ONLY that assembly will load, and only upon instantiation. If that logger has a dependency on another assembly, then it will load as well.&lt;/p&gt;
&lt;p&gt;3. Good points on the catalog. We are working on syntactic sugar to do this. One apporach is have a hosting api that contains all the common things you need to do. For example it would accept a list of folders which behind the scenes will end up having a DirectoryPartCatalog created. The api will be a helper which creates the resolver and catalogs behind the scenes allowing the client to simply write one line of code. Does this make sense?&lt;/p&gt;
&lt;p&gt;Thanks for the feedback, keep it coming!&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Glenn&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8971149</link><pubDate>Wed, 01 Oct 2008 08:25:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8971149</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@chrisplasun&lt;/p&gt;
&lt;p&gt;MEF doesn't handle isolation as this is what System.Addin is for. MEF can work with System.Addin to allow it activate parts in a separate app domain / process. We don't provide the plumbing for this out of the box, but our model supports it.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8971441</link><pubDate>Wed, 01 Oct 2008 14:43:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8971441</guid><dc:creator>Jomit</dc:creator><description>&lt;p&gt;Excellent Brad,&lt;/p&gt;
&lt;p&gt;Simple &amp;amp; Effective. The last example was more interesting. &lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Jomit&lt;/p&gt;
</description></item><item><title>Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8971483</link><pubDate>Wed, 01 Oct 2008 15:17:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8971483</guid><dc:creator>GHA</dc:creator><description>&lt;p&gt;Simple Introduction to Extensible Applications with the Managed Extensions Framework&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8972427</link><pubDate>Thu, 02 Oct 2008 02:43:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8972427</guid><dc:creator>Dave R.</dc:creator><description>&lt;p&gt;Hi Glenn,&lt;/p&gt;
&lt;p&gt;Many thanks for the response. The 'syntactic sugar' you mention is exactly the sort of thing that sounds very useful, especially if it shields us mere mortals from having to do a lot of the plumbing for simple scenarios.&lt;/p&gt;
&lt;p&gt;It would be fantastic if you could share some of the API mock-ups with us - I'm passionate about this after reading Brad's FDG book ;)&lt;/p&gt;
</description></item><item><title>使用托管扩展性框架（MEF）创建可扩展应用的简介</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8975780</link><pubDate>Fri, 03 Oct 2008 21:15:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8975780</guid><dc:creator>Joycode@Ab110.com</dc:creator><description>&lt;p&gt;【原文地址】 Simple Introduction to Extensible Applications with the Managed Extensions Framework 【原文发表日期】&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8978915</link><pubDate>Tue, 07 Oct 2008 01:10:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8978915</guid><dc:creator>Richie Scott</dc:creator><description>&lt;p&gt;Excellent blog Brad - can you tell me where you think MEF fits with Unity, replace or complement?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8988074</link><pubDate>Wed, 08 Oct 2008 01:07:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8988074</guid><dc:creator>Cleve Littlefield</dc:creator><description>&lt;p&gt;I would love to see another article under the same writing approach that compares MEF to System.AddIn (as one other person commented) and/or any generic IoC container like StructureMap, Unity, Castle Windsor...&lt;/p&gt;
&lt;p&gt;What are the overlaps, dependencies, differences?&lt;/p&gt;
</description></item><item><title>Excellent Article on Managed Extensions Framework and writing Addin-based Applications from Brad Abrams</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8991077</link><pubDate>Wed, 08 Oct 2008 12:42:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8991077</guid><dc:creator>Thoughts and Ideas on Semantics and Contexts</dc:creator><description>&lt;p&gt;hi there, also I've talked a little bit in this blog on practical writing of Add-in-based applications,&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8992502</link><pubDate>Thu, 09 Oct 2008 09:37:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8992502</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;Hi Dave&lt;/p&gt;
&lt;p&gt;Here is a snippet which we've been toying with just to illustrate the thinking&lt;/p&gt;
&lt;p&gt;In your Main method of your program you would do something like:&lt;/p&gt;
&lt;p&gt;static void Main(args[] string) {&lt;/p&gt;
&lt;p&gt; &amp;nbsp;var CompositionHost = new CompositionHost(&amp;quot;.\&amp;quot;);&lt;/p&gt;
&lt;p&gt; &amp;nbsp;CompositionHost.Run(args)&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;this would then import an IApplicationStart that has a Start method and would kick off composition.&lt;/p&gt;
&lt;p&gt;[Export(typeof(IApplicationStart))&lt;/p&gt;
&lt;p&gt;public class ApplicationStart : IApplicationStart&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp;void Run(string[] args){}&lt;/p&gt;
&lt;p&gt; &amp;nbsp;[Import]&lt;/p&gt;
&lt;p&gt; &amp;nbsp;ISomeService Service{get;set;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;The host class would manage the container behind the scenes, automatically import the App Start and execute it. Having the App Start part imported would being the composition satisfying any it's imports, it's imports imports, and so on.&lt;/p&gt;
&lt;p&gt;Because App Start is an interface, you can host it wherever you like for example in an App.Xaml.cs, or the Main for a winform app, or even in a Web Service host.&lt;/p&gt;
&lt;p&gt;Does this seem useful? Any feedback would be appreciated.&lt;/p&gt;
</description></item><item><title>Extensible Applications with MEF</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#8996626</link><pubDate>Sun, 12 Oct 2008 14:41:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8996626</guid><dc:creator>Guy     kolbis</dc:creator><description>&lt;p&gt;MEF stands for &amp;amp;quot; M anaged E xtensions F ramework&amp;amp;quot;. The idea behinds it is to allow reuse and&lt;/p&gt;
</description></item><item><title>Managed Extensibility Framework (MEF) Demo</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#9049007</link><pubDate>Thu, 06 Nov 2008 16:55:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9049007</guid><dc:creator>Brad Abrams </dc:creator><description>&lt;p&gt;The Managed Extensibility Framework (MEF) is a new feature of .NET 4 (and will work on 3.5 as well) that&lt;/p&gt;
</description></item><item><title>Managed Extensibility Framework (MEF) Demo</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#9053588</link><pubDate>Sat, 08 Nov 2008 06:10:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9053588</guid><dc:creator>Brad Abrams </dc:creator><description>&lt;p&gt;The Managed Extensibility Framework (MEF) is a new feature of .NET 4 (and will work on 3.5 as well) that&lt;/p&gt;
</description></item><item><title>re: Simple Introduction to Extensible Applications with the Managed Extensions Framework</title><link>http://blogs.msdn.com/brada/archive/2008/09/29/simple-introduction-to-composite-applications-with-the-managed-extensions-framework.aspx#9150411</link><pubDate>Fri, 28 Nov 2008 11:12:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9150411</guid><dc:creator>Bill Sithiro</dc:creator><description>&lt;p&gt;Good programmers have been implementing similar approaches to this since like... forever! Not that I don't like it, I think it would be great if this becomes mainstream in the .NET world having a common way of implementing plug-in/add-in/extentending architecture. But, I have a question, what if the class with the color text output that came later could apply the same behaviour to the earlier monochrome ones. How hard would that be to implement?&lt;/p&gt;
</description></item></channel></rss>