論動軟代碼生成器的好與壞


  曾幾何時,動軟代碼生成器是一種非常方便的工具,很多從事C#語言的開發人員都用過這個工具,當然也包括樓主本人。

以往的開發模式都是圍繞數據庫為中心展開的,先設計好數據庫,然后再編寫代碼。動軟代碼生成器就是在這樣的背景下誕生的。

你只要設計好數據庫模式,然后用動軟代碼生成器一鍵生成數據訪問層代碼,非常方便。(雖然動軟有業務層,但我認為那是雞肋,只不過是數據訪問層的一層簡單包裝,沒有實際意義)

這對不想手動編寫枯燥乏味的數據庫操作的開發人員來說,非常有吸引力。

  下面樓主憑借自己的經驗,從好與壞兩個方面來總結動軟代碼生成器。

優勢

  一、自動生成實體類和數據訪問代碼。

  二、大部分數據庫操作都能滿足,包括分頁

  三、快速開發

劣勢

  一、生成的實體類缺少關聯性,而大部分實際項目都需要導航

  二、缺少數據庫事務支持,所有的操作都是單表的

  三、對有些類型支持不好,比如date和新的datetimeoffset

  四、查詢的數據是基於DataSet而不是實體,讓人感覺很怪

  五、數據庫結構修改就要手動生成代碼,如果你修改了動軟生成的文件,那就等着哭吧。

  六、不支持從代碼生成數據庫(Code First)。

 

  IT領域有句非常著名的格言:沒有銀彈。沒有一勞永逸的解決方案,沒有萬能葯。代碼生成器不是銀彈。很多年前,我聽過這樣一種說法,代碼生成器可以代替開發人員。

這樣說的原因有兩個:一,你的開發人員太爛,跟代碼生成器差不多;二、你的產品太爛,用代碼生成器都可以搞定。不管哪種原因,說這話的人就很爛,哈哈! 

  隨着IT技術的快速發展,涌現出很多優秀的工具可以替代代碼生成器。樓主是做.Net的,給大家推薦幾個不錯的工具,知道的就權當班門弄斧,不知道的就當做學習。

首推微軟的Entity Framework,其次是NHibernate。Entity Framework是微軟親兒子,和微軟自家的Sql Server集成得很好。NHibernate是開源的,支持數據庫比較多,可移植性好。

如果你不喜歡這些重量級的框架,那么可以考慮用ibatis和dapper。就樓主而已,如果可以選擇的話,我會考慮用一下Entity Framework和Linq。Linq真是太牛逼了,不得不佩服微軟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM