三十六、合理使用.NET运行时诊断
1、System.Diagnostics.Debug\Trace\EventLog为运行时提供了程序添加诊断信息所需要的所有工具,EventLog提供入口时的应用程序能写到系统事件日志中;
2、最后不要写自己的诊断库,.NET FCL 已经拥有了我们需要的核心库。
三十七、使用标准配置机制
1、.NET框架的System.Windows.Application类为我们定义了建立通用配置路径的属性;
2、Application.LocalAppDataPath和Application.userDataPath 会生成本地数据目录和用户数据的路径名;
3、不要在ProgramFiles和Windows系统目录中写入数据,这些位置需要更高的安全权限,不要指望用户拥有写入的权限。
三十八、定制和支持数据绑定
1、BindingMananger和CurrencyManager这两个对象实现了控件和数据源之间的数据传输;
2、数据绑定的优势:使用数据绑定要比编写自己的代码简单得多;应该将它用于文本数据项之外的范围-其他显示属性也可以被绑定;对于Windowos Forms 数据绑定能够处理多个控件同步的检查相关数据源;
3、在对象不支持所需的属性时可以通过屏蔽当前的对象然后添加一个想要的对象来支持数据绑定。
三十九、使用.NET验证
1、ASP.NET中有五种控件来验证有效性,可以用CustomValidator派生一个新类来增加自己的认证器;
2、Windows验证需要子System.Windows.Forms.Control.Validating些一个事件处理器。
四十、根据需要选用恰当的集合
1、数组有两个比较明显的缺陷:不能动态的调整大小;调整大小非常耗时;
2、ArrayList混合了一维数组和链表的特征,Queue和Stack是建立在Array基础上的特殊数组;
3、当程序更加灵活的添加和删除项时,可以使更加健壮的集合类型,当创建一个模拟集合的类时,应当为其实现索引器和IEnumberable接口。
四十一、DataSet优于自定义结构
1、DataSet有两个缺点个:使用XML序列化机制的DataSet与非.NET 代码之间的交互不是很好;DataSet是一个非常通用的容器;
2、强类型的DataSet打破了更多的设计规则,其获得的开发效率要远远高于自己编写的看上去更为优雅的设计。
四十二、利用特性简化反射
通过设计和实现特性类,强制开发人员用他们来声明可被动态使用的类型、方法和属性,可以减少应用程序的运行时错误,提高软件的用户满意度。
四十三、避免过度使用反射
1、Invoke成员使用的参数和返回值都是System.Object,在运行时进行类型的转换,但出现问题的可能性也变得更多了;
2、接口使我们可以得到一个更为清晰、也更具可维护性的系统,反射式一个很强大的晚期绑定机制.NET框架使用它来实现Windows控件和Web控件的数据绑定。