微软决定从.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 也有同样的平台限制就有些奇怪了。 如果在非发布的候选版本中不改变许可,我们就真的会感到奇怪了。
查看英文原文: MEF for Windows 8 Metro and TPL Data Flow Moved to NuGet
评论