如果沒有什么好處,不會有人願意去做,那么,你真的需要應用程序框架嗎,它能為你帶來什么好處?
應用程序框架為你提供現成的開發環境
現在來了一個項目,你可以直接打開VS,然后就開工敲代碼嗎?不行,你得先創建項目,當使用了分層架構,還需要創建更多的項目,這些項目根據依賴關系進行配置。然后依次引用各種依賴組件,很多組件還需要配置,比如Log4.Net。
配置好項目以后,你還得測試各依賴組件是否能正常工作,可能你的運氣比較好,一下就全部測試通過。但也有比較背的時候,半天調不通,這時候你會發現環境問題有時比代碼Bug更難搞。
從頭開始創建和配置開發環境是勞神的工作,當你手頭有套自己的應用程序框架,情況就大不相同了,它為你提供了現成的開發環境。
應用程序框架幫助管理第三方依賴組件
隨着開源事業的發展,第三方開源框架名目繁多,層出不窮,另外第三方應用平台也多如牛毛。如果在應用程序中直接使用這些三方API,勢必被牢牢綁定,無法脫身,當要切換框架或應用平台時,不得不重寫應用程序代碼。
如果把第三方框架或應用平台API封裝到應用程序框架中,應用程序僅使用自己框架提供的API,這樣就可以輕松切換相關實現了。
應用程序框架為應用程序體系架構提供支持
當你的項目需求非常簡單,比如企業網站,可能不需要什么體系架構,建立一個表現層項目,所有的代碼直接寫到界面上,或者后置代碼中。對於簡單項目,單層架構還是很有優勢的,簡單、快速。但更復雜的項目需要采用分層架構,目前普遍采用傳統三層架構或DDD分層架構。
特別是Entity Framework的普及,大家開始逐步采用DDD的一些設計元素進行構造。使用DDD的第一步是創建層超類型,即各層構造類型的基類。將層超類型放到應用程序框架中,而不是項目中,可以為多個項目提供支持。
應用程序框架為常規任務提供更易用的Api
前文提到,.Net Framework提供的是原始Api,如果想在應用程序中訪問更易用的Api,還需要自己動手,豐衣足食。
把常見的.Net操作封裝到應用程序框架中,不僅在調用的時候更簡單,而且代碼得到集中管理,修改和擴展都更容易。
應用程序框架解決大部分機械工作,大力提升開發效率
當采用分層架構以后,會發現開發工作量顯著增長,這是由於分層架構會建立多個項目,任何一個操作,都需要在多個項目中創建代碼。另外體系架構越復雜,各層管道連接代碼也越多。
信息系統最基本的操作是CRUD,手工創建這些代碼,不僅浪費時間,而且容易出錯。
通過應用程序框架配套的代碼生成器來生成這些CRUD和管道代碼,可以大力提升開發效率。
應用程序框架內置通用模塊,從而加速項目進度
大部分信息系統都需要進行登錄,主界面菜單,權限控制等操作,開發一個完善的權限管理模塊需要數周時間。
在應用程序框架中內置一些通用模塊,可以顯著提升項目進度。
應用程序框架為團隊開發提供一致的編程風格
團隊開發的一個問題是各程序員的編程習慣和風格不同,導致項目代碼異常混亂,沒人願意維護別人的代碼,當開發某一模塊的程序員離職后,接手該模塊的新程序員將痛苦不堪。
通過制定編碼規范可以一定程度改善這個問題,但還是非常被動,執行效果也可能不佳。
應用程序框架為團隊提供一套Api,且基礎代碼由框架自動創建,編碼規范、編程風格得到強制實施,為后續維護奠定基礎。
綜上所述,量身打造一套符合自己習慣的應用程序框架,對項目質量、進度、可維護性等有重要意義。