使用CodeSmith要注意的几点
生活随笔
收集整理的這篇文章主要介紹了
使用CodeSmith要注意的几点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
新的項目即將開始了,項目經理老蔡說上次項目的持久層框架不太適合B/S項目,原因是反射用得太多了,并且數據層內部自己又封裝了好幾層,所以決定從新設計一個執(zhí)行效率更高的框架。
??? 老蔡設計了下他構思好的持久層和數據層的接口,然后叫我先做個模型,如果可以抽象出來的通用代碼再添加到框架了里,然后就開始做數據層,業(yè)務實體類,后臺管理頁面的代碼CodeSmith模板。
??? 第一次編寫CodeSmith模板就馬上要應用到大項目上真是有點壓力,但是也對自己能被指派這個任務而感到高興,因為我從第一次使用CodeSmith生成代碼后就一直都對CodeSmith充滿好奇。
??? 花了差不多一天時間了解了下CodeSmith的API,學了下怎么編寫基本的模板,然后我就開工了。先手動做了一個模型,基本操作都OK了,提取出可以通用的代碼到框架里,然后就開始動手寫模板了。
??? 現在項目接近尾聲了,在項目過程中我的模板被測出了不少Bug,就連我做完一個專門的單元測試后還是有隱含的Bug,但是對于底層代碼的模板質量是很重要的,萬一以后又發(fā)現Bug,那么從新生成項目代碼的量就更大了。
??? 我把我所遇到的Bug與其它一些問題列在這里,希望可以讓剛剛接觸CodeSmith的朋友在編寫模板的時候不要犯和我一樣的錯誤。
????
??? 1.命名空間的規(guī)范要先和項目經理協(xié)商好,以免到時候生成的代碼不符合要求
??? 2.實體對象某個屬性為null時我沒有進行判斷就把null值賦值到DataParameter里,記得如果值為null時要賦值DBNull
??? 3.根據實體對象自動生成Sql語句的時候最好使用DataParameter傳參數,不要直接字符串拼接,比較安全
??? 4.自動生成Sql語句時要注意最好列名和表明都加上方括號"[ ]",防止列名和Sql關鍵字重復時出現錯誤
??? 5.模板中輸入中文的字符串保存模板再開啟后變成亂碼,可以用EditPlus這類軟件編輯模板,然后保存為UTF-8編碼,以后都用EditPlus或類似軟件保存模板,不要直接用CodeSmith保存
???
?? 嗯。。。其他的有想到再補充吧,對了還有一點就是不要像我一樣糊里糊涂的,肯定可以少很多Bug
??? 老蔡設計了下他構思好的持久層和數據層的接口,然后叫我先做個模型,如果可以抽象出來的通用代碼再添加到框架了里,然后就開始做數據層,業(yè)務實體類,后臺管理頁面的代碼CodeSmith模板。
??? 第一次編寫CodeSmith模板就馬上要應用到大項目上真是有點壓力,但是也對自己能被指派這個任務而感到高興,因為我從第一次使用CodeSmith生成代碼后就一直都對CodeSmith充滿好奇。
??? 花了差不多一天時間了解了下CodeSmith的API,學了下怎么編寫基本的模板,然后我就開工了。先手動做了一個模型,基本操作都OK了,提取出可以通用的代碼到框架里,然后就開始動手寫模板了。
??? 現在項目接近尾聲了,在項目過程中我的模板被測出了不少Bug,就連我做完一個專門的單元測試后還是有隱含的Bug,但是對于底層代碼的模板質量是很重要的,萬一以后又發(fā)現Bug,那么從新生成項目代碼的量就更大了。
??? 我把我所遇到的Bug與其它一些問題列在這里,希望可以讓剛剛接觸CodeSmith的朋友在編寫模板的時候不要犯和我一樣的錯誤。
????
??? 1.命名空間的規(guī)范要先和項目經理協(xié)商好,以免到時候生成的代碼不符合要求
??? 2.實體對象某個屬性為null時我沒有進行判斷就把null值賦值到DataParameter里,記得如果值為null時要賦值DBNull
??? 3.根據實體對象自動生成Sql語句的時候最好使用DataParameter傳參數,不要直接字符串拼接,比較安全
??? 4.自動生成Sql語句時要注意最好列名和表明都加上方括號"[ ]",防止列名和Sql關鍵字重復時出現錯誤
??? 5.模板中輸入中文的字符串保存模板再開啟后變成亂碼,可以用EditPlus這類軟件編輯模板,然后保存為UTF-8編碼,以后都用EditPlus或類似軟件保存模板,不要直接用CodeSmith保存
???
?? 嗯。。。其他的有想到再補充吧,對了還有一點就是不要像我一樣糊里糊涂的,肯定可以少很多Bug
轉載于:https://www.cnblogs.com/BG5SBK/archive/2006/04/15/375876.html
總結
以上是生活随笔為你收集整理的使用CodeSmith要注意的几点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 取消win2003关机提示的设置
- 下一篇: C#比较两时间大小