如何實現Winform的模塊化開發?

Winform開發領域開發過十多年的項目中,見證着形形色色的架構和官方技術的應用,從最早類似Winform模式的WebForm技術,到接着的JQuery+界面組件,再到Asp.net Core的技術應用,以及後來的純前端技術出現,Angular、React、Vue等前端技術和語言的廣泛應用,Web應用越來越多,也越來越精細化,從最初的單服務,到單服務+分佈式緩存,再到微服務集羣的各種服務架構,Web開發的體系越來越龐大和複雜化,雖然引入更多先進技術、更多優秀架構,但同時也意味着更高的技術門檻,以及全棧式的開發需求或要求,Winform開發依舊佔領一席之地。本文針對Winform開發的技術特點,針對自己多年的開發經驗,對Winform開發的快速、健壯、解耦的一些領域提出幾點微薄建議,拋磚引玉,希望大家多加指正。

Winform的技術概括

另一方面,作爲Winform的替代者,Silverlight的盛行以及沒落,WPF的逐步應用並重用,以及統一的通用 Windows 平臺 (UWP),都充當着Winform的終結者的大任,不過即使應用範圍縮減,Winform依舊很頑強,即使.netcore的大環境下,也依舊保留在Visual Studio 2022中,可見Winform開發的生命力之頑強。

Winform開發對比其他有不少優點,主要的特點還是開發方便,基於一定的框架,可以快速開發特定的業務管理系統。下面就WInform這個技術應用做一個個人的概括。

1. 用戶體驗

Winform應用裏面,和其他Web系統比起來,它的用戶體驗是最好的,而且界面響應速度也比Web界面來的快捷一些,由於很多情況下,用戶考慮使用方便性,如一些報表的展示、打印、導入導出文件的處理等常規的操作,都還是習慣使用Winform這種定製型非常好的界面來處理,畢竟大多數情況下,單位都有一套業務和數據的管理系統來處理這些業務。

2. 數據敏感

另外很多情況下,如一些事業單位、機構什麼,他們的數據是比較敏感的,不希望對外公開,網絡的引入會提供數據外泄的可能,另外它們也是經常處於內網的環境下,因此一個單機版的程序就可以搞定他們的日常業務處理了,這種特別的業務環境,註定了使用Winform來處理會更勝一籌。

3. 開發便利

Winform開發的程序,發佈共享比較容易,直接安裝就可以使用,可以不需要部署在雲端(雖然我的混合框架方式可以訪問Web API、WCF等服務獲取數據,透明的數據處理);而且Winform的界面開發起來非常方便,結合界面套件,可以做出非常棒的界面效果。另外從開發角度上講,Web前端的技術淘汰非常快,Winform的技術積累反而是在逐步加固的過程,因此對於一些開發人員來說,迭代Winform開發的應用會更加方便,也更加熟練,因此只要客戶在用,系統兼容,這種Winform的程序會一直保留下去。

4. 應用廣泛

Winform開發的程序,其應用領域真的是覆蓋方方面面,包括常規的數據庫應用,以及Socket套接字的處理,底層硬件串口或者Modbus協議對接,基礎打印、讀卡器、射頻開發、USB、攝像頭的控制處理等,可以說Web能做的Winform基本都能做,而Winform能做的Web不一定能做到。

如何實現Winform的模塊化開發?

對於如何實現Winform應用的模塊化開發,其實本身Winform來源於早期Delphi、VB時代,它們已經是在控件的拖動處理、事件驅動方面都已經完善至極,對一些簡單的應用,拖動一些控件,再增加一些事件響應處理即可完成主要的功能,這個也是很多早期共享軟件盛行的重要原因。

隨着程序功能的日益複雜化,Winform程序呈現模塊化,把一些功能處理、UI界面等按照橫向或者豎向劃分,進行界面性、功能性的不同程度的分離,如出現了很多界面組件,如ActiveSkin/Skin++、DotNetBar、DevExpress等等,它們負責界面的渲染和簡單的功能響應,對於業務性的界面則只能由開發者完成處理,但是已經實現一定程度的橫向功能分離了。

通過利用這些UI組件,使得我們的Winform界面更加豐富,就像穿上了很高貴的服飾,面目一新,不過它還是不能解決程序複雜度的問題,有時候因爲界面特性的原因,可能引入更多的複雜性難題,提供更多更精細難懂的事件來處理。

在我們開發一個應用的時候,往往需要集成一些應用場景,如基礎的用戶、角色、機構、權限、日誌等權限管理系統,以及字典參考,附件管理等內容,以及一些封裝好的分頁處理控件,公用類庫等支持類庫等。

因此我們在這個基礎上開發Winform項目,會更加高效快速。

如何實現Winform的模塊化開發?

Winform開發的相關業務邏輯(包括界面UI),都可以封裝在一個簡單的DLL文件中,需要的時候進行引用和調用即可,使用起來非常方便,這種方便也使得Winform程序的模塊化更加簡單和高效。

通過在解決方案中引入相關開發好的模塊,直接調用使用即可,非常快速簡單。

如何實現Winform的模塊化開發?

開發程序模塊,除了一些業務模塊外,大多數都是類似拼積木的方式,把它們在主界面中引入即可。

如何實現Winform的模塊化開發?

而Winform模塊的調用,只需要簡單的調用或者帶入相關參數即可。

如何實現Winform的模塊化開發?

我們Winform框架通過多年積累,也提供了很多基礎的模塊來給我們新業務開發提供便利,如公用類庫、分頁控件、字典管理、權限管理系統、自動升級、附件管理、人員管理、工作流管理等可以反覆重用的模塊。

如何實現Winform的模塊化開發?

有了這些模塊的加持,我們開發項目很多基礎的處理就不用所有的東西都從頭來過。

軟件和建築工程很類似,都是需要構建一個龐大而功能完整的一個系統,而工程化也意味着需要多人協作,那麼就需要把一個龐大的系統橫向或者縱向劃分爲各個可以獨立施工完成的模塊,雖然各個模塊之間有所銜接或者交互,但是基本上可以以模塊化的方式來構建,這個也是工程化開發的精髓所在。

以一個軟件管理系統爲例,我們儘可能把精力焦點放在客戶的業務需求上,而對於常規的如權限控制、字典管理等一些常用的內容,由於它們的處理邏輯在特定領域上基本上比較固定一些,可以儘可能獨立並重復使用。

DevExpress | 下載試用

DevExpress Universal 10月正式發佈今年第二個重大版本——v21.2,此版本正式官宣支持Visual Studio 2022 & .NET6,同時與微軟最新發布的Windows 11完美兼容,全面解決用戶各種使用場景問題。 與時俱進,從未止步!DevExpress 2021最新版本v21.2已正式發佈,慧都獨家搶先解析最新功能、新控件預覽與應用,帶您解鎖2021最強UI控件,助您構建出色的應用程序!

本文轉載自:博客園 - 伍華聰


DevExpress技術交流羣5:742234706      歡迎一起進羣討論

更多DevExpress線上公開課、中文教程資訊請上中文網獲取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章