在实际项目中应用Gentle.net和CodeSmith已大大提高了开发速度和质量


系统已全面使用了gentle.net, 数据库设计完成后即可使用CodeSmith自动生成gengle.net的数据对象类,数据库设计中一定要达到第三范式或者BCNF范式,尤其是在设计m-n关联表的时候,否则在上层代码中作某些查询时候就会暴露出弱点。

当前使用的Gengle.net的CodeSmith代码模版来自于gentle自带的模版,只是在其中作了一些改进,比如添加了一些默认构造函数,把根据主键获取对象的方法修改了一下,并按照自己所使用的代码规范修改了其字段的命名方式。

由于.net 2.0里可以用partial的方式来分布式的定义一个类,受益于该特性,我把由数据库生成的类作为一个基本类文件,而所有扩展属性放在另一个文件中再作声明。这样数据库作了修改后生成的代码可以放心的覆盖其对应的基本类文件。

对于Gentle.net的关联查询问题,当然如果仅仅是为了UI层显示信息用,则大可不必使用关联查询,因为数据对象类中早已声明了这些扩展属性了,绑定或者显示数据时候可以直接使用这些扩展属性,比关联查询更灵活,实际上这种方式是更纯粹的面向对象化的。如果必须要用关联查询,则可以使用SqlCommand,并可配合SqlParameter,而当前的Gentle.net 版本的SqlBuilder类无法自己构造出复杂的组合条件过滤表达式,当然在必须使用关联查询并同时进行分页则没有特别方便的方式,考虑自己补充一个针对Gengle.net分页的类,或者研究一下传说中的我未曾接触过的QueryDOM开源组件。