RSS 2.0 Feed
2008-01 Entries
摘要:一个类(或者一个结构)封装了一些相关的属性和方法。在使用这些属性和方法的时候,设计指导要求从不会得到NullReferenceException。这至少包含两个方面的意思: 代码中决不要显性地 throw new NullReferenceException 代码中要有充分的错误检查,避免由CLR抛出NullReferenceException. 如果某个函数的一个参数不能为null,函数代码需要检查输入是否合法。如果输入是null,代码需要抛出的是ArgumentNullException。 即便是来自微软.NET框架库中的代码也未能100%遵守设计指导,将如下一篇Blog所示。...[阅读全文]

posted @ | Feedback (6) | Filed Under [ 设计指导 | Design Guideline ]

摘要:先前相关:微软将发布.NET框架库的大量源代码 在上次Blog的评论中,有人称赞道:确实,调试方便了不是一点点;这真是太cool了;很好,期待很久了!不过也有这样的评论:买一张MSDN就可以了。实际上,MSDN中并没有包含将发布的.NET Framework的源代码。 这项服务还在最后的调试阶段,很快就会对外发布。我在这个周末通过Visual Studio 2008使用了这一服务。对于.NET程序员来说,这真的是非常有助于调试,也提供了软件开发时候很有价值的参考。 为了在Visual Studio 2008中使用此服务,有以下几个要点: 在Debugging | General 选项中,不要选Enable Just My Code (Managed Only). 在Debugging | General 选项中,选择Enable source server support. 在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源代码服务的推出,我们有更多的阅读材料了!...[阅读全文]

posted @ | Feedback (17) | Filed Under [ WPF/SilverLight ASP.NET WinForm Visual Studio FCL | 库函数 ]

摘要:随着版权意识的增加,许多网站首页(比如此博客堂)都有版权声明,常见的写法举例如下: Copyright(c) 1999-2008 All Rights ReservedCopyright(c) 2008 版权所有 例子中使用了2008的年份,因为国内现在已经是元月一日。重视细节的网站应该已经自动或者手工将其版权声明的年份更新了。是不是这样呢? 搜狐和新浪网更新了,而网易没有。携程网更新了,而ELong(艺龙)没有。大众点评网更新了,而美食中国网没有。博客园更新了,而此博客堂则远远没有。 细微之处,往往可以以小见大。 ------Copyright(c) 2008 版权所有...[阅读全文]

posted @ | Feedback (13) | Filed Under [ 细节 ]