.NET框架当.NET发布第一个版本时,微软公司也同时将.NET框架的一个子集以Rotor的形式发布为Shared Source。作为Rotor的2.0版本,Rumor将作为最后一个以源代码形式发布给开发者社区的.NET CLI。从那时开始,微软公司与Novell公司以及Mono项目达成协议,以便让Mono能够继续发展。Mono是一个开源版本的.NET框架以及.NET运行时的实现,它能够支持.NET应用程序跨平台地运行于U/Linux和OS X之上——就像运行于Windows中一样。
在支持Mono的同时,Novell公司又发起了若干个建立于Mono之上的开源.NET应用程序。包括:
Banshee
Beagle
F-spot
iFolder
Monodevelop当然,上面的列表并没有停止增长。Jeff Atwood决定为一个优秀的.NET开源项目再赞助一万美元。所言一出,震惊四座。作为Jeff慷慨捐赠的回馈,很快这个列表中的.NET开源项目就增长到了74个。Jeff这样说道: 我为什么会对.NET开源项目这么关心?简而言之,因为在微软技术领域中,开源项目通常都被看作是二等公民。很多开源项目对.NET社区产生了巨大的推动作用,不过微软公司却并没有提供任何形式的支持。我希望这种状况能够得到改变。事实上,我不仅仅停留在“希望”上——若是微软公司希望以开发工具提供商的身份走得更远的话,那么这种状况则必须要改变! 可是,由于微软公司以及其他类似ISV现有的商业模型,很多开源项目似乎根本无法在.NET社区中存活。Frans Bouma说道:开源项目并不需要金钱来维持,它们所需要的是关注。而微软公司近些年的做法却仅仅是将钱砸过去——结局自然毫无所获。因为在大多数微软平台开发者的眼中, 如果你想使用某个控件、类库或者工具,那么就必须要花钱来买;而若是你开发了这些产品,那么也自然能从中获取到金钱报酬。
这才是微软平台上缺乏开源项目的根本原因。即使你投入了再多的钱,其本质并没有改变。而之所以其本质没有改变,主要原因却是微软公司并不希望看到这种改变——原因很简单:若这种改变确实发生了的话,那么微软公司所剩的日子也不多了。Ted Dennison又指出了在.NET平台上开发开源项目所遇到的另一个问题:首先,在发起开源项目之前,开发者需要选择的各种.NET授权协议都与GPL相互兼容吗?出于某些目的,微软公司将其EULA设定为无法兼容GPL。
全文链接:http://www.infoq.com/cn/news/2007/07/dotnet-open-source