msolap

对技术保持足够的敬畏

导航

微软网站下载.net framework library的源代码(3.5SP1, WPF, WCF...)

突然发现离开编程技术已经四年了,再回头还是那么亲切可爱。一直认为读源码是学习技术的绝佳途径,自己受益良多。曾有人问微软内部讨论组,深入学习.net framework的最佳途径是什么,答曰,用调试器进入.net framework源代码。

 

微软在发布.net framework 1.0后不久就发布了share source计划(内部代号Rotor)。作为计划的一部分,sscli可以直接从微软网站免费下载。sscli包含了.net framework底层全部的实现代码(包括CLR, BCL, C# compiler),除CLR部分有极少数优化代码略有不同外,其余部分均和微软内部代码完全一致。sscli的版本号和.net framework的版本号保持一致,如sscli 1.0对应.net framework 1.0,sscli 1.1对应.net 1.1。sscli的发布时间略滞后于.net的发布。

 

对于sscli一直有两点遗憾:1) sscli 缺少程序员最关注的部分,asp.net,ado.net,Win Form等,而这些也是我们最想了解的部分。2) sscli几乎没做什么的宣传,以至于绝大多数.net程序员至今仍不知道它的存在。从这两点看,微软的sscli更多是对开源社区的一种回应(微软模式)。我想微软也许没有意识到源代码的开放对于程序员了解.net,吸引程序员来到.net平台有着无穷的魅力。

 

慢慢地,事情发生了变化。随着Reflector工具的越来越强大,使得查看.net framework的内部运行机制变得便捷许多。程序员对通过读.net framework源码来了解.net的诉求也似乎减少了很多。但Reflector的一个问题是无法在使用Visual Studio.NET进行调试时进入.net framework内部。

 

2008年初, ScottGu在blog宣布晚些时候微软将开放.net framework library source code和symbols以供下载和浏览,并可以通过Visual Studio 2008进行调试。

 

现在这部分源代码终于已经无需任何工具,直接下载(http://referencesource.microsoft.com/netframework.aspx)了。下载的安装包,除了源代码外,还包括了相应的symbols。这样调试的时候可以直接使用本地的调试库,而无需从远程微软网站下载了,调试速度大大地提高了。

 

msolap

2010/1

 

posted on 2010-01-24 12:28  msolap  阅读(773)  评论(0编辑  收藏  举报