以前用CodeSmith非常习惯了,但是新公司要求所有软件都用正版的。(顺便说下,现在软件正版化的压力正在逐渐增加,个人感觉)

网上搜索了一下,对MyGeneration的评价还不错。于是下载来安装了一下。各种模版很多,但并不是所有模版都及时更新的,例如基于Enterprise Library的模版,在3.1下面就不能编译通过。

于是做了一点改变,主要思路是:
1。顽固地采用贫血模型,个人认为这样设计还是很清晰的,虽然很多人认为这种模型不够OO;
2。Entitiy对象的类名前,加一个下划线,然后再用一个不带下划线的Concrete Entity类来继承。这样做的好处是,所有需要手工修改的内容,可以放在Concrete Entity里面,不必担心重新生成代码后的维护问题;
3。改写了Entity对象里面的Equals方法,逐个比较各个非空属性是否相等,另外也顺便改写了GetHashCode方法;
4。我把原来Service类中返回DataTable的方法改成返回由各个Concrete Entity对象组成的List,然后Insert、Remove和Update方法的传入参数也采用Concrete Entity的对象。

模版可以点击这里下载,供感兴趣者参考。

总的来说,MyGeneration的模版编写不太方便,缺少intellisense支持,文档也不多,调试也有点麻烦。优点就是免费,还可以一次生成多个文件,使用起来还是蛮方便的。
posted on 2007-09-18 14:17  Hightree  阅读(105)  评论(0)    收藏  举报