MEF for Windows 8 Metro和TPL Data Flow迁移到NuGet

微软决定从 .NET 4.5 框架中删除 MEF for Windows 8 Metro 和 TPL Data Flow。 取而代之的是,他们会作为 NuGet 程序包提供,从而以后做出的改进可以在完整的 .NET 发布周期之外发布。

这个决定延续了微软开发部门中的总体趋势,他们要摆脱庞大的开发周期。 很好的例子就是 ASP.NET MVC。 从 2009 年开始,它已经发布了三个主要版本,并且马上要发布第四个版本。 相比之下,ASP.NET WebForms 只发布了一个版本。 尽管 WebForms 的下一版本包含了大量改进,应该和 MVC 做出改进的同时发布,但是微软还是要等到 Visual Studio 2012 和 .NET 4.5 都就绪了之后再发布。

更复杂的例子是实体框架。 这种产品的核心还是与 .NET 的发布周期绑定在一起。 然而,很多重要的特性,像“代码优先”,也使用 NuGet 在其之外发布了。

使用 NuGet 来发布有很大好处,这让程序库可以使用最初发布时所没有使用的功能。 对于 TPL Dataflow,人们认为它是服务端的应用程序。 然而,现在它“在各处都可以得到支持,包括桌面、服务器和 Metro 样式的 .NET 应用程序”。

好吧,上面的举例可能不完全精确。 TPL Dataflow 的 NuGet 版本包含了一种许可限制,声称它只能在 Windows 的计算机上使用。 所以,即便是兼容 Mono,你也无法在 Mono 项目中使用它。

另外,MEF 是开源的项目。 所以,尽管 TPL Dataflow 是可以理解的,但是 MEF for web and Metro style 也有同样的平台限制就有些奇怪了。 如果在非发布的候选版本中不改变许可,我们就真的会感到奇怪了。

不允许评论