在我們接觸的很多項目中,如果有一些參考性的項目框架,那么做起開發來,事半功倍,一般來說搭建或者積累這些框架性的項目,非一日之功。一般我們可以把具體的項目分為Winfrom、Web、微信、或者Socket等方面,具體項目界面表現不同,但是界面層底下的應該都是差不多的結構,能夠支持多種數據庫的接入,提供更好的接口封裝,以便重用,實現最優化代碼的處理。
軟件系統隨着業務的發展,變得越來越復雜,不同領域的業務所涉及到的知識、內容、問題非常非常多。如果每次都從頭開發,那都是一個很漫長的事情,且並不一定能將它做好。基於穩定成熟的框架,開發項目,技術和時間都有保障,同時可以利用前人高效的工具進行輔助開發,從而事半功倍。
1、框架的主要特點和要求
從一些資料來解讀下開發框架的特點,如下所示:代碼模板化、重用、高內聚(封裝)、規范、可擴展、可維護、協作開發、通用性。
1、代碼模板化
框架一般都有統一的代碼風格,同一分層的不同類代碼,都是大同小異的模板化結構,方便使用模板工具統一生成,減少大量重復代碼的編寫。在學習時通常只要理解某一層有代表性的一個類,就等於了解了同一層的其他大部分類結構和功能,容易上手。團隊中不同的人員采用類同的調用風格進行編碼,很大程度提高了代碼的可讀性,方便維護與管理。
2、重用
開發框架一般層次清晰,不同開發人員開發時都會根據具體功能放到相同的位置,加上配合相應的開發文檔,代碼重用會非常高,想要調用什么功能直接進對應的位置去查找相關函數,而不是每個開發人員各自編寫一套相同的方法。
3、高內聚(封裝)
框架中的功能會實現高內聚,開發人員將各種需要的功能封裝在不同的層中,給大家調用,而大家在調用時不需要清楚這些方法里面是如果實現的,只需要關注輸出的結果是否是自己想要的就可以了。
4、規范
框架開發時,必須根據嚴格執行代碼開發規范要求,做好命名、注釋、架構分層、編碼、文檔編寫等規范要求。因為你開發出來的框架並不一定只有你自己在用,要讓別人更加容易理解與掌握,這些內容是非常重要的。
5、可擴展
開發框架時必須要考慮可擴展性,當業務邏輯更加復雜、數量記錄量爆增、並發量增大時,能否通過一些小的調整就能適應?還是需要將整個框架推倒重新開發?當然對於中小型項目框架,也不必考慮太多這些內容,當個人能力和經驗足夠時水到渠成,自然就會注意到很多開發細節。
7、可維護
成熟的框架,對於二次開發或現有功能的維護來說,操作上應該都是非常方便的。比如項目要添加、修改或刪除一個字段或相關功能,只需要簡單的操作,十來分鍾或不用花太多的工夫就可以搞定。新增一個數據表和對應的功能,也可以快速的完成。功能的變動修改,不會對系統產生不利的影響。代碼不存在硬編碼等等,保證軟件開發的生產效率和質量。
8、協作開發
有了開發框架,我們才能組織大大小小的團隊更好的進行協作開發,成熟的框架將大大減輕項目開發的難度,加快開發速度,降低開發費用,減輕維護難度。
9、通用性
同一行業或領域的框架,功能都是大同小異的,不用做太大的改動就可以應用到類似的項目中。在框架中,我們一般都會實現一些同質化的基礎功能,比如權限管理、角色管理、菜單管理、日志管理、異常處理......或該行業中所要使用到的通用功能,使框架能應用到某一行業或領域中,而不是只針對某公司某業務而設定(當然也肯定存在那些特定功能的應用框架,這只是非常少的特殊情況,不在我們的考慮范圍)。
2、基於Winform混合式開發框架和Bootstrap開發框架的基礎分析
在很多場合,一般如果是做Winform桌面的應用,我會推薦客戶使用《Winform混合式開發框架》,如果是基於Web的項目開發,一般推薦客戶采用《Bootstrap開發框架》。
1) 《混合式開發框架》混合了傳統《Winform開發框架》、《WCF開發框架》和Web API接口框架的特點,可以在直接訪問數據庫、利用WCF服務獲取數據、利用Web API服務獲取數據三者之間自由切換,統一了系統界面層對業務服務的調用模式,所有組件模塊均實現三種方式的調用,是一種彈性化非常好的框架應用,既可用於單機版軟件或者基於局域網內的應用軟件,也可以用於分布式技術的互聯網環境應用,是一種成熟穩定、安全高效的技術框架。
由於混合型框架,既可以用於傳統Winform系統開發,也可以用於WCF分布式系統開發,還可以用於輕型高效的Web API的分布式系統開發(目前廣泛應用的接口方式),因此環境適應性強;而且由於模塊具有這些特點,可重用性更高,特別對於通用性的模塊,更是具有無可替代的優越性。
2) 基於Metronic的Bootstrap開發框架
該開發框架界面部分采用較新的Bootstrap技術,采用當前最新的Bootstrap3.x,集成了眾多功能強大的Bootstrap插件。
Bootstrap是一個前端的技術框架,很多平台都可以采用,JAVA/PHP/.NET都可以用來做前端界面,整合JQuery可以實現非常豐富的界面效果,目前也有很多Bootstrap的插件能夠提供給大家使用,本框架集合了眾多最為優秀的插件,能給我們Web的用戶體驗提升到一個前所未有的水平。
Metronic是一個國外的基於HTML、JS等技術的Bootstrap開發框架整合,整合了很多Bootstrap的前端技術和插件的使用,是一個非常不錯的技術框架。本框架以這個為基礎,結合我對MVC的Web框架的研究,整合了基於MVC的Bootstrap開發框架,使之能夠符合實際項目的結構需要。
框架后台采用基於C#的MVC技術,是目前.NET開發最為成熟流行的技術,框架后台數據庫支持Oracle、SqlServer、MySql、Sqlite、Access等常規數據庫,可通過配置進行自由切換,使用Enterprise Library模塊進行數據訪問的控制,使得數據訪問更方便輕松。
3、框架的各個特點的說明
上面介紹了開發框架的一些共性,概括總結幾點:代碼模板化、重用、高內聚(封裝)、規范、可擴展、可維護、協作開發、通用性。
1)代碼模板化
我們的框架系列,無論是Winform開發框架,Web開發框架、Bootstrap開發框架等框架系列,都是一脈相承的特點,所有類代碼都統一的代碼風格,各個項目以及分層目錄都是按照統一的命名方式進行構建,易讀易理解,整個框架的代碼,包括項目底層BLL、DAL、Entity等層的代碼,以及Winform界面層、或者Web界面層,都可以利用工具統一生成(我們根據項目界面特點構建對應的模板文件),減少大量重復代碼的編寫。
這些結構利於使用代碼生成工具(Database2Sharp,我們為框架快速開發量身定做的軟件工具)進行項目代碼的生成
2) 重用
由於我們在項目開發中,采用了一些模塊化的方式來組裝項目,可以簡單的理解為積木組合的方式。如權限管理模塊、字典管理模塊、自動更新模塊、人員管理模塊、通訊錄管理模塊、分頁控件、公用類庫等方面,這些可以在項目中根據情況采用對應的模塊,非常高效,整個主體框架也有對應接入這些模塊的案例代碼供參考,因此可以更加直觀明了。
而另一方面,我們在對類的重用方面,也是精益求精,盡量做到精簡重復代碼,提高開發效率的目的。
界面類提供封裝繼承,減少界面的一些繁瑣設置
基礎業務類,我們同樣也是采用重用基類方式,實現接口函數的封裝處理。
以及業務類繼承關系,當然還有其他更多的,基本上都提供一些基類來處理,簡化代碼。
3) 高內聚(封裝)
從上面小節可以看出,整個框架宏觀方面分為多個功能模塊,可以自由搭配使用;微觀方面都有一個繼承關系的基類來對相關的代碼進行封裝處理,這樣開發人員將各種需要的功能封裝在不同的模塊或者基類里面,從而實現高內聚的處理。
Web API的控制器設計對象繼承關系,如下所示:
4) 規范
我們的整個框架系列,嚴格執行代碼開發規范要求,做好命名、注釋、架構分層、編碼、文檔編寫等規范要求,這樣我們只需要了解一個項目的結構,其他項目依次類推,就可以明確各個分層的意義,一葉知秋,管中窺豹就是這個道理,我們可以通過這些知識積累,指導我們其他同事進行項目開發,大家在規范上統一一致就可以步調統一,從而在單位內部擁有更高的開發效率。
其他框架的特點,如可擴展、可維護、協作開發、通用性,也就不再贅述,基本上,整個框架就是為了方便構建項目而搭建,大的方面可以使用開發好的模塊,小的方面可以繼承封裝好的類庫,整個調用的邏輯過程也是經過實踐的考驗,在眾多國內外公司的項目中使用過,同時也獲得非常多的反饋,共同促進整個框架體系的發展。