达达's 胡搞瞎搞工作室

此Blog搬到www.unbe.cn 去了,要找我讨论问题请到我的新Blog

使用CodeSmith要注意的几点

    新的项目即将开始了,项目经理老蔡说上次项目的持久层框架不太适合B/S项目,原因是反射用得太多了,并且数据层内部自己又封装了好几层,所以决定从新设计一个执行效率更高的框架。
    老蔡设计了下他构思好的持久层和数据层的接口,然后叫我先做个模型,如果可以抽象出来的通用代码再添加到框架了里,然后就开始做数据层,业务实体类,后台管理页面的代码CodeSmith模板。
    第一次编写CodeSmith模板就马上要应用到大项目上真是有点压力,但是也对自己能被指派这个任务而感到高兴,因为我从第一次使用CodeSmith生成代码后就一直都对CodeSmith充满好奇。
    花了差不多一天时间了解了下CodeSmith的API,学了下怎么编写基本的模板,然后我就开工了。先手动做了一个模型,基本操作都OK了,提取出可以通用的代码到框架里,然后就开始动手写模板了。
    现在项目接近尾声了,在项目过程中我的模板被测出了不少Bug,就连我做完一个专门的单元测试后还是有隐含的Bug,但是对于底层代码的模板质量是很重要的,万一以后又发现Bug,那么从新生成项目代码的量就更大了。
    我把我所遇到的Bug与其它一些问题列在这里,希望可以让刚刚接触CodeSmith的朋友在编写模板的时候不要犯和我一样的错误。
    
    1.命名空间的规范要先和项目经理协商好,以免到时候生成的代码不符合要求
    2.实体对象某个属性为null时我没有进行判断就把null值赋值到DataParameter里,记得如果值为null时要赋值DBNull
    3.根据实体对象自动生成Sql语句的时候最好使用DataParameter传参数,不要直接字符串拼接,比较安全
    4.自动生成Sql语句时要注意最好列名和表明都加上方括号"[ ]",防止列名和Sql关键字重复时出现错误
    5.模板中输入中文的字符串保存模板再开启后变成乱码,可以用EditPlus这类软件编辑模板,然后保存为UTF-8编码,以后都用EditPlus或类似软件保存模板,不要直接用CodeSmith保存
   
   嗯。。。其他的有想到再补充吧,对了还有一点就是不要像我一样糊里糊涂的,肯定可以少很多Bug

posted on 2006-04-15 13:14  BG5SBK  阅读(497)  评论(0编辑  收藏  举报

导航