Microsoft has decided to remove MEF for Windows 8 Metro and TPL Data Flow from the .NET 4.5 framework release. Instead they will be offered as NuGet packages so that improvements can be released outside of the full .NET release cycle.
This decision continues an overall trend within Microsoft’s Developer Division to move away from large development cycles. A good example of this is ASP.NET MVC. Since 2009 it has had three major releases and is on the verge of a fourth. By comparison ASP.NET WebForms has only had one release. Though the next version of WebForms contains numerous enhancements that should have been released at the same time MVC got them, Microsoft is waiting until all of Visual Studio 2012 and .NET 4.5 is ready.
A more complicated example is Entity Framework. The core of the product is still tied to .NET’s release cycle. However, many of the important features such as “Code First” are being released out-of-band via NuGet.
A huge benefit of using NuGet for releases is that they allow the libraries to be used with profiles that they were not originally shipped with. In this case TPL Dataflow, it was supposed to be for server-side applications. But now it “is supported everywhere, including desktop, server and .NET for Metro style apps”.
Well, that quote is not entirely accurate. The NuGet version of TPL Dataflow includes a license restriction that says it can only be used on Windows-based computers. So even if it is Mono-compatible, you cannot use it in a Mono project.
MEF, on the other hand, is an open source project. So while TPL Dataflow is understandable, it is a little odd that MEF for web and Metro style has the same platform restriction. We would be really surprised if this doesn’t change with the non-Release Candidate version of the license.