您好,登錄后才能下訂單哦!
這篇文章主要介紹了Winform開發框架演化歷史的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1、傳統Winform開發框架
我這里指的傳統Winform開發框架,就是利用數據庫中間件,直接訪問數據庫的一種應用框架,根據數據庫管理系統部署的位置的不同,可能分為單機版(如Access數據庫、Sqlite數據庫等),局域網網絡版(如SqlServer、Oracle等數據庫),局域網網絡版,一般需要的是把數據庫部署在局域網另外一個電腦上,這樣應用和數據庫分開,也有利于性能的提高和數據的分享。
這種開發模式,在dotnet里面,就是利用基于ado.net的操作,實現數據的直接訪問,是一種比較常規的開發模式,不過問題,就是,不能通過互聯網進行數據的訪問,只能在單機或者局域網的環境下進行業務管理系統的部署和使用,相對目前很多分布式的應用來講,有一定的局限性。
不過這種方式也是很常見的模式,常用在一些內部業務管理系統或者一些工作流系統的維護上,由于Winform的體驗性比較好,數據也能有效管理控制,開發部署成本也相對較低,系統開發效率以及應用性能也比較高,因此是一種比較常見的框架表現模式。
如下面我的Winform開發框架界面,就是一個比較標準,傳統式的界面,這種界面一般大家都比較常見。
這種Winform開發框架 是通過數據訪問層訪問各種指定的數據庫,如SqlServer或者Oracle等,一般底層封裝好一點的框架,基本上都會支持多種數據庫,方便在不同的業務中使用。我的傳統Winform開發框架的架構設計圖,如下所示。
2、傳統WCF開發框架
除了以上的傳統的WInform開發框架,基于WInform的技術和WCF的分布式技術,形成了另外一種Winform開發框架,即為WCF開發框架,我這個WCF開發框架的介紹也比較多,絕大多數都是來源于真實的項目應用。其實WCF技術,即可用于Winform上,也可以用于Web上,WCF技術可以用在很多領域,如Web開發、類似Socket通訊的即時通訊應用等,這里介紹的WCF開發框架,是基于Winform的基礎上使用的WCF開發框架。
這里定義的傳統WCF開發框架,是指利用WInform框架的模式,來承載B/S的方式獲取數據進行展示,本地不存儲數據。就是直接獲取數據并在列表控件或者其他基礎控件上顯示數據。
由于WCF框架應用了很多新的技術,以及是基于分布式網絡環境的應用,因此,需要考慮服務的部署,數據訪問的安全性(用戶名密碼訪問、X509證書加密、其他授權訪問),數據響應以及錯誤處理等方方面面,如果是***次接觸,沒有很好的指導及案例學習,可能消化相關的概念并理解,就需要一個不短的過程。
傳統的WCF開發框架,由于是本地不緩存數據,實時通過WCF服務代理,向WCF服務請求數據,獲取數據后進行顯示的過程,開發思路相對比較簡單,因此這種方式在很多WCF應用上,是比較常見的一種。
傳統的基于Winform的WCF開發框架,界面可以和上面的Winform開發框架界面一樣,不過它的獲取數據的機制不同,它不是通過數據訪問類訪問本地的數據庫,而是通過服務器公布WCF服務來獲取不同數據對象,然后再Winform中進行展現,如下面是它的一個訪問機制的示意圖。
對于這個傳統的WCF開發框架的架構,它其實是通過Winform的客戶端WCF代理類,實現和遠端服務器的WCF服務進行通訊,一般是基于Soap協議的XML格式,當然可以很好的配置加密機制,如X509證書加密,這樣傳輸數據就比較安全,同時對于WCF服務,還可以采用基于自定義的用戶名、密碼的驗證方式來有效提高WCF服務接口的安全性。以下是WCF開發框架的架構設計圖,我們從中可以看出,它的應用程序的界面表現層是和WCF服務客戶端代理層有關聯,而代理層和WCF服務層有關聯,這種隔絕了應用程序直接訪問數據庫的弊端,提高數據安全性,同時也使得應用程序實現了分布式的開發應用。
3、離線式WCF開發框架
相對于上面介紹的傳統式WCF開發框架,這種離線式的WCF開發框架 ,就是結合了傳統Winform開發框架的數據訪問方式,又利用了WCF分布式數據獲取的特點,使得數據可以離線使用,在一種業務要求集中化,又要求不影響正常業務操作的應用系統場景下比較適合,如我的送水管理軟件網絡版,就是利用這種模式,分店可以獨立維護數據,沒有網絡也一樣可以正常進行業務操作,但是在網絡暢通的時候,可以向總店發送分店的數據,或者獲取總店的公共數據。
這種離線模式的WCF開發框架,是一種對網絡環境要求不高,既可以獨立使用,又可以和總部發生業務數據往來的一種模式。這種場景下,如果不考慮數據同步及上傳的情況下,他就是一個傳統的Winform開發框架模式。
考慮數據同步,就會使得整個離線式的系統可能更加復雜,要求可能需要自身記錄可能的數據變更(添加、修改、刪除),還需要經常性的同步系統公用數據,如果要求同步的間隔比較短,那么我們就要多考慮一些因素。
離線式的WCF開發框架,數據存儲我們一般選擇單機版、方便部署復制的Sqlite數據庫,或者Access數據庫,在一些特別的情況下,才會選擇比較大的SQLServer數據庫或者Mysql數據庫,由于WCF開發框架的應用客戶端和服務器版本的數據庫不同,如果沒有比較彈性化、支持多數據庫的WCF開發框架,這種開發模式,就會比較吃力繁瑣。
離線式的WCF開發框架,一個特點就是基本上顯示,以及保存等操作數據庫的數據,都是本地的數據庫,不是遠端的服務器數據庫,這樣,就需要記錄所有發生變更的數據庫操作,包括寫入,刪除、修改等,以便在網絡暢通的情況下,可以上傳數據到服務器上面。
和上面第二點介紹的傳統式WCF開發框架,這個就是多了一個本地數據庫,這樣可以提高數據的網絡依賴性,其他日常操作的響應,在一些網絡環境不經常連接的地方,可以很好的發揮作用,而且,通過實現把需要更新的數據導出到文件中,還可以實現數據的離線式同步,基本上可以完全獨立于網絡了。
這個模式的WCF框架架構圖,是綜合了Winform開發框架架構設計圖和WCF框架架構設計圖的特點,既有訪問本地數據庫的模塊,也有訪問操作WCF服務的模塊,在不同的地方發揮不同的作用。
4、混合式WCF開發框架
除了以上幾種,還有一種是可以在傳統winform開發框架和WCF開發框架之間自由切換,這種其實用傳統式WCF開發框架或者離線式WCF開發框架就可以解決,不過有些人覺得在局域網里面訪問WCF服務,有點小題大做,而且性能也有一定的損失,那么就可以在界面調用具體操作數據類的時候,封裝多一層,通過配置來指向WCF代理類還是Winform框架中的業務訪問類,這種確實也可以實現的。
還有一種情況,就是把系統劃分為很多***模塊(既適應WInform集成,也適應WCF集成),在不同的場合進行不同的開光切換,而且只是一個條件語句的跳轉,就可以實現具體的切換,這樣非常有利于模塊的集成封裝。
綜上所述,我自己在各種項目的框架應用選擇上,都是以最適合客戶場景來進行選型,如一般的小型的業務管理系統,用Winform開發框架能快速給客戶做好系統開發;而對于要求分布式的業務管理系統,工作的時候網絡不成問題的這種,我一般就選擇傳統的WCF開發框架;而對于復雜的,網絡不能保證的,要求分布式應用,數據集中管理的,一般采用離線式的WCF開發框架。如果為了更好開發集成模塊,適應各種場景的集成,那么就可能要求模塊具有混合式WCF開發框架的特點。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Winform開發框架演化歷史的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。