﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Jon Flanders commented on How to write MEF in 2 hours or less</title><description>But even if they did - I would guess most of us would still buy from a vendor.
  
  
I know from experience that you can whip together a dynamic loader in a short amount of time.  But it won't have the full feature set of MEF - it won't be the same framework that other people use (and used by Visual Studio, the SQL Modeling Tools etc).
  
  
There is a benefit to resiting the NIH urge:
  
1) How long will it take the next person who builds on your framework to learn it (once MEF become part of the framework  - new developers should automatically understand how to use it).
  
2) How easy will it be for you to maintain?  How many new features will get added to MEF over time?
  
  
I am guessing you know these things - but perhaps others reading your blog don't.
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment12</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment12</guid><pubDate>Thu, 31 Dec 2009 20:49:40 GMT</pubDate></item><item><title>Ayende Rahien commented on How to write MEF in 2 hours or less</title><description>Jon,
  
Those don't take two hours or less
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment11</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment11</guid><pubDate>Thu, 31 Dec 2009 19:09:21 GMT</pubDate></item><item><title>Jon Flanders commented on How to write MEF in 2 hours or less</title><description>So why not build your own transitors, CPUs, RAM, HD, and video card?
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment10</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment10</guid><pubDate>Thu, 31 Dec 2009 18:59:10 GMT</pubDate></item><item><title>Glenn Block commented on How to write MEF in 2 hours or less</title><description>I decided to put a few more thoughts in a post: 
[codebetter.com/.../...or-less-i-am-all-for-it.aspx](http://codebetter.com/blogs/glenn.block/archive/2009/12/30/mef-in-2-hours-or-less-i-am-all-for-it.aspx)</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment9</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment9</guid><pubDate>Thu, 31 Dec 2009 00:52:07 GMT</pubDate></item><item><title>Glenn Block commented on How to write MEF in 2 hours or less</title><description>Finally got around to finding this. 
  
  
Oren, I don't have any issue with anything you said above. You may very well be able to implement your own feature set for your apps in a shorter amount of two. Certainly MEF supports many scenarios some of which you might never need, though others you may be discarding prematurely.
  
  
The thing about MEF though is it is not designed for you. And what I mean but that is not being tongue and cheek. I mean, it's main goal is not for the individual it is for the ecosystem.
  
  
1. It is designed for an ecosystem of extenders. It introduces a common approach for building that ecosystem across many applications.
  
  
2. It is designed to support some very large extensible applications like Visual Studio.
  
  
Albeit the above being the case, we've worked hard to ensure that you can "turn up the dial" of complexity as you need it, and can get off the ground with a minimal set. You don't need to be Visual Studio to take advantage of MEF.
  
  
I can't help but think that you are oversimplifying the capabilities MEF provides, and that those features would not be so trivial to implement, however I am not going to go there. 
  
  
  
  
  
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment8</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment8</guid><pubDate>Thu, 31 Dec 2009 00:04:53 GMT</pubDate></item><item><title>Julian Birch commented on How to write MEF in 2 hours or less</title><description>This does, of course, assume that there aren't subtleties to the framework that you don't understand yet.  After all, I doubt you'd apply this argument to Castle Windsor or NHibernate.  The "interesting part" of Castle Windsor is constructor injection, and that's pretty easy to write from scratch.
  
  
It's only later that you discover that your two hour IoC container doesn't really cut it in the more complex scenarios.  Equally, I imagine it would take a while to start to really appreciate the subtleties of what Hammett's solving.
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment7</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment7</guid><pubDate>Mon, 21 Dec 2009 15:17:22 GMT</pubDate></item><item><title>Set commented on How to write MEF in 2 hours or less</title><description>&gt;I strongly believe that working on the naked CLR is sacrilege. 
  
  
You should really do an audit at my company then....
  
Got blamed because I used a javascript BSD licence library haha
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment6</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment6</guid><pubDate>Sat, 19 Dec 2009 03:39:34 GMT</pubDate></item><item><title>Ayende Rahien commented on How to write MEF in 2 hours or less</title><description>Ryan,
  
that depends on too many variables. As for "from scratch", I strongly believe that working on the naked CLR is sacrilege.
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment5</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment5</guid><pubDate>Fri, 18 Dec 2009 20:30:23 GMT</pubDate></item><item><title>Ryan Riley commented on How to write MEF in 2 hours or less</title><description>Your previous post from 2007, while effective, isn't quite "from scratch" which is what I thought you meant (though you never said so). I guess the question is then, would you use MEF or use your own hot swap code? What are the advantages and disadvantages of each? I know others are writing on this, but I'm interested in your take.
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment4</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment4</guid><pubDate>Fri, 18 Dec 2009 15:55:26 GMT</pubDate></item><item><title>Alex Simkin commented on How to write MEF in 2 hours or less</title><description>Fortunately MEF will become a part of the framework - the dependency that we have anyway.
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment3</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment3</guid><pubDate>Fri, 18 Dec 2009 15:35:20 GMT</pubDate></item><item><title>Andrey Shchekin commented on How to write MEF in 2 hours or less</title><description>I tend to do it the other way around -- if there is an existing library, I will generally throw away my code that does the same, take the library, tweak its API into submission and use that.
  
  
Because it saves on maintenance, unit-testing, and libraries tend to evolve themselves, growing new features just when I need them.
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment2</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment2</guid><pubDate>Fri, 18 Dec 2009 13:58:07 GMT</pubDate></item><item><title>Vitaly Stakhov commented on How to write MEF in 2 hours or less</title><description>Reasonable point. However other team members may be not so happy to gettting used to ad hoc frameworks/libraries that grow right and left on the project. Good thing to keep in mind as an option though.
</description><link>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment1</link><guid>http://ayende.com/4330/how-to-write-mef-in-2-hours-or-less#comment1</guid><pubDate>Fri, 18 Dec 2009 13:04:20 GMT</pubDate></item></channel></rss>