朱燚

--书到读透处,酒于微醺时

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

转自http://blog.joycode.com/zhanbos/archive/2008/01/07/113466.aspx

先前相关:微软将发布.NET框架库的大量源代码

在上次Blog的评论中,有人称赞道:确实,调试方便了不是一点点;这真是太cool了;很好,期待很久了!不过也有这样的评论:买一张MSDN就可以了。实际上,MSDN中并没有包含将发布的.NET Framework的源代码。

这项服务还在最后的调试阶段,很快就会对外发布。我在这个周末通过Visual Studio 2008使用了这一服务。对于.NET程序员来说,这真的是非常有助于调试,也提供了软件开发时候很有价值的参考。

为了在Visual Studio 2008中使用此服务,有以下几个要点:

  1. 在Debugging | General 选项中,不要选Enable Just My Code (Managed Only).
  2. 在Debugging | General 选项中,选择Enable source server support.
  3. 在Debugging | Symbols 选项中,添加Microsoft Reference源代码服务的URL。 正式的URL很快会对外发布。

首次使用时需要接受2个License:一个是symbol,另外一个是Source.

这样在调试程序的时候就可以看到.NET Framework的源代码,也可以在调试时跟进(Step into)。

比如说WinForm的Button.cs就被下载到\src\source\.net\8.0\DEVDIV\depot\DevDiv\releases\whidbey\REDBITS\ndp\fx\src\WinForms\Managed\System\WinForms\Button.cs\1\Button.cs。从文件夹的结构可以看到,.NET框架3.5下的WinForm代码实质上还是Whidbey即.NET 2.0。但的确有了一些更新。REDBITS下是.NET 3.5发布时候的代码。

即使将Winform的项目的Target Framework改成2.0或者3.0,我们一样得到上述的Button.cs. 这是因为REDBITS在安装时取代了早先2.0的程序集。

在WPF下的Button.cs被下载到\src\source\.net\8.0\WIN_WINDOWS\lh_tools_devdiv_wpf\Windows\wcp\Framework\System\Windows\Controls\Button.cs\1\Button.cs。虽然现在WPF属于DevDiv的一部分了,从这个文件夹的结构可以看到以前WPF是隶属于Windows的。

在代码的格式上,您也一定能够看出DevDiv和Windows的区别。

除了在文件中添加了几行版权声明:

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

您看到的代码与微软内部能够看到的代码是完全相同的。那些代码中的注释,还有对private或者internal members的说明,都是在此之前无法从MSDN的文档中得到的信息。

当然没有任何代码是十全十美的。我已经注意到标有HACK HACK HACK注释的代码了。

阅读代码对程序员而言是一件有趣的活动。随着Microsoft Reference源代码服务的推出,我们有更多的阅读材料了!

发表于 2008年1月7日 10:31 - (阅读:1662;评论:15)

posted on 2008-01-14 12:42  朱燚:-)  阅读(791)  评论(0编辑  收藏  举报