以前,只有 Visual Studio 2008 才能获得.NET 运行时的源码。IDE 在调试应用时会按需下载源码。如果你是一个 Windows 用户,现在就可以从微软参考源码中心(Microsoft Reference Source Code Center)下载源码了。除了一个 MSI 包以外,还有开发者需要仔细阅读的一些协议限制。
在我们进入 EULA 之前应该快速了解一下其包含什么不包含什么。其中包含了.NET 核心及 Base Class Library,还包含了 WinForms、WPF 与 WebForms。而大多数非 GUI 库如 System.Data 则不在其中,不过不久之后他们也将包含进来。
.NET 源码基于微软.NET Framework 参考协议。InfoQ 无法提供法律意见,然而我们想指出其中一些有趣的章节。
首先是表明微软仍旧以 Windows 为中心的章节。虽然微软已经放松了一些跨平台的限制,但他们依然不想对任何竞争者让步。这意味着 Mono 团队成员甚至不应该查看这些代码,而从事 Linux 开发的人也应该重新考虑一下。
“你”意味着软件的许可人,不应该参与到非 Windows 操作系统的设计、开发及测试,更不能开发出与该软件相同的特性或功能。
既然这是一个参考使用协议,因此让我们来看看微软是如何定义“参考使用”这个条款的。
“参考使用”表示以参考的方式在你的公司中使用该软件(以只读形式),并且以个人的目的来调试及维护产品以运行在微软的 Windows 操作系统产品上。为了清楚说明,“参考使用”不包含(a)使用软件来为非 Windows 操作系统进行设计、开发及测试的权利,更不能开发出与该软件相同的特性或功能;(b)在公司外分发软件的权利。
其动机很明显。源码的发布并不是开放的结果,它仅仅是为从事于 Windows 开发的开发者提供了一些实际的好处而已。
微软承认源码的发布是不可避免的。Steven Tewils 表示,源码实际上已经在私下广为流传了。发布这些源码的真正目的在于发布其注释。
评论