新聞中心
1、傳統(tǒng)Winform開(kāi)發(fā)框架

成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)開(kāi)發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開(kāi)發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。
我這里指的傳統(tǒng)Winform開(kāi)發(fā)框架,就是利用數(shù)據(jù)庫(kù)中間件,直接訪問(wèn)數(shù)據(jù)庫(kù)的一種應(yīng)用框架,根據(jù)數(shù)據(jù)庫(kù)管理系統(tǒng)部署的位置的不同,可能分為單機(jī)版(如Access數(shù)據(jù)庫(kù)、Sqlite數(shù)據(jù)庫(kù)等),局域網(wǎng)網(wǎng)絡(luò)版(如SqlServer、Oracle等數(shù)據(jù)庫(kù)),局域網(wǎng)網(wǎng)絡(luò)版,一般需要的是把數(shù)據(jù)庫(kù)部署在局域網(wǎng)另外一個(gè)電腦上,這樣應(yīng)用和數(shù)據(jù)庫(kù)分開(kāi),也有利于性能的提高和數(shù)據(jù)的分享。
這種開(kāi)發(fā)模式,在dotnet里面,就是利用基于ado.net的操作,實(shí)現(xiàn)數(shù)據(jù)的直接訪問(wèn),是一種比較常規(guī)的開(kāi)發(fā)模式,不過(guò)問(wèn)題,就是,不能通過(guò)互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)的訪問(wèn),只能在單機(jī)或者局域網(wǎng)的環(huán)境下進(jìn)行業(yè)務(wù)管理系統(tǒng)的部署和使用,相對(duì)目前很多分布式的應(yīng)用來(lái)講,有一定的局限性。
不過(guò)這種方式也是很常見(jiàn)的模式,常用在一些內(nèi)部業(yè)務(wù)管理系統(tǒng)或者一些工作流系統(tǒng)的維護(hù)上,由于Winform的體驗(yàn)性比較好,數(shù)據(jù)也能有效管理控制,開(kāi)發(fā)部署成本也相對(duì)較低,系統(tǒng)開(kāi)發(fā)效率以及應(yīng)用性能也比較高,因此是一種比較常見(jiàn)的框架表現(xiàn)模式。
如下面我的Winform開(kāi)發(fā)框架界面,就是一個(gè)比較標(biāo)準(zhǔn),傳統(tǒng)式的界面,這種界面一般大家都比較常見(jiàn)。
這種Winform開(kāi)發(fā)框架 是通過(guò)數(shù)據(jù)訪問(wèn)層訪問(wèn)各種指定的數(shù)據(jù)庫(kù),如SqlServer或者Oracle等,一般底層封裝好一點(diǎn)的框架,基本上都會(huì)支持多種數(shù)據(jù)庫(kù),方便在不同的業(yè)務(wù)中使用。我的傳統(tǒng)Winform開(kāi)發(fā)框架的架構(gòu)設(shè)計(jì)圖,如下所示。
2、傳統(tǒng)WCF開(kāi)發(fā)框架
除了以上的傳統(tǒng)的WInform開(kāi)發(fā)框架,基于WInform的技術(shù)和WCF的分布式技術(shù),形成了另外一種Winform開(kāi)發(fā)框架,即為WCF開(kāi)發(fā)框架,我這個(gè)WCF開(kāi)發(fā)框架的介紹也比較多,絕大多數(shù)都是來(lái)源于真實(shí)的項(xiàng)目應(yīng)用。其實(shí)WCF技術(shù),即可用于Winform上,也可以用于Web上,WCF技術(shù)可以用在很多領(lǐng)域,如Web開(kāi)發(fā)、類似Socket通訊的即時(shí)通訊應(yīng)用等,這里介紹的WCF開(kāi)發(fā)框架,是基于Winform的基礎(chǔ)上使用的WCF開(kāi)發(fā)框架。
這里定義的傳統(tǒng)WCF開(kāi)發(fā)框架,是指利用WInform框架的模式,來(lái)承載B/S的方式獲取數(shù)據(jù)進(jìn)行展示,本地不存儲(chǔ)數(shù)據(jù)。就是直接獲取數(shù)據(jù)并在列表控件或者其他基礎(chǔ)控件上顯示數(shù)據(jù)。
由于WCF框架應(yīng)用了很多新的技術(shù),以及是基于分布式網(wǎng)絡(luò)環(huán)境的應(yīng)用,因此,需要考慮服務(wù)的部署,數(shù)據(jù)訪問(wèn)的安全性(用戶名密碼訪問(wèn)、X509證書加密、其他授權(quán)訪問(wèn)),數(shù)據(jù)響應(yīng)以及錯(cuò)誤處理等方方面面,如果是***次接觸,沒(méi)有很好的指導(dǎo)及案例學(xué)習(xí),可能消化相關(guān)的概念并理解,就需要一個(gè)不短的過(guò)程。
傳統(tǒng)的WCF開(kāi)發(fā)框架,由于是本地不緩存數(shù)據(jù),實(shí)時(shí)通過(guò)WCF服務(wù)代理,向WCF服務(wù)請(qǐng)求數(shù)據(jù),獲取數(shù)據(jù)后進(jìn)行顯示的過(guò)程,開(kāi)發(fā)思路相對(duì)比較簡(jiǎn)單,因此這種方式在很多WCF應(yīng)用上,是比較常見(jiàn)的一種。
傳統(tǒng)的基于Winform的WCF開(kāi)發(fā)框架,界面可以和上面的Winform開(kāi)發(fā)框架界面一樣,不過(guò)它的獲取數(shù)據(jù)的機(jī)制不同,它不是通過(guò)數(shù)據(jù)訪問(wèn)類訪問(wèn)本地的數(shù)據(jù)庫(kù),而是通過(guò)服務(wù)器公布WCF服務(wù)來(lái)獲取不同數(shù)據(jù)對(duì)象,然后再Winform中進(jìn)行展現(xiàn),如下面是它的一個(gè)訪問(wèn)機(jī)制的示意圖。
對(duì)于這個(gè)傳統(tǒng)的WCF開(kāi)發(fā)框架的架構(gòu),它其實(shí)是通過(guò)Winform的客戶端WCF代理類,實(shí)現(xiàn)和遠(yuǎn)端服務(wù)器的WCF服務(wù)進(jìn)行通訊,一般是基于Soap協(xié)議的XML格式,當(dāng)然可以很好的配置加密機(jī)制,如X509證書加密,這樣傳輸數(shù)據(jù)就比較安全,同時(shí)對(duì)于WCF服務(wù),還可以采用基于自定義的用戶名、密碼的驗(yàn)證方式來(lái)有效提高WCF服務(wù)接口的安全性。以下是WCF開(kāi)發(fā)框架的架構(gòu)設(shè)計(jì)圖,我們從中可以看出,它的應(yīng)用程序的界面表現(xiàn)層是和WCF服務(wù)客戶端代理層有關(guān)聯(lián),而代理層和WCF服務(wù)層有關(guān)聯(lián),這種隔絕了應(yīng)用程序直接訪問(wèn)數(shù)據(jù)庫(kù)的弊端,提高數(shù)據(jù)安全性,同時(shí)也使得應(yīng)用程序?qū)崿F(xiàn)了分布式的開(kāi)發(fā)應(yīng)用。
3、離線式WCF開(kāi)發(fā)框架
相對(duì)于上面介紹的傳統(tǒng)式WCF開(kāi)發(fā)框架,這種離線式的WCF開(kāi)發(fā)框架 ,就是結(jié)合了傳統(tǒng)Winform開(kāi)發(fā)框架的數(shù)據(jù)訪問(wèn)方式,又利用了WCF分布式數(shù)據(jù)獲取的特點(diǎn),使得數(shù)據(jù)可以離線使用,在一種業(yè)務(wù)要求集中化,又要求不影響正常業(yè)務(wù)操作的應(yīng)用系統(tǒng)場(chǎng)景下比較適合,如我的送水管理軟件網(wǎng)絡(luò)版,就是利用這種模式,分店可以獨(dú)立維護(hù)數(shù)據(jù),沒(méi)有網(wǎng)絡(luò)也一樣可以正常進(jìn)行業(yè)務(wù)操作,但是在網(wǎng)絡(luò)暢通的時(shí)候,可以向總店發(fā)送分店的數(shù)據(jù),或者獲取總店的公共數(shù)據(jù)。
這種離線模式的WCF開(kāi)發(fā)框架,是一種對(duì)網(wǎng)絡(luò)環(huán)境要求不高,既可以獨(dú)立使用,又可以和總部發(fā)生業(yè)務(wù)數(shù)據(jù)往來(lái)的一種模式。這種場(chǎng)景下,如果不考慮數(shù)據(jù)同步及上傳的情況下,他就是一個(gè)傳統(tǒng)的Winform開(kāi)發(fā)框架模式。
考慮數(shù)據(jù)同步,就會(huì)使得整個(gè)離線式的系統(tǒng)可能更加復(fù)雜,要求可能需要自身記錄可能的數(shù)據(jù)變更(添加、修改、刪除),還需要經(jīng)常性的同步系統(tǒng)公用數(shù)據(jù),如果要求同步的間隔比較短,那么我們就要多考慮一些因素。
離線式的WCF開(kāi)發(fā)框架,數(shù)據(jù)存儲(chǔ)我們一般選擇單機(jī)版、方便部署復(fù)制的Sqlite數(shù)據(jù)庫(kù),或者Access數(shù)據(jù)庫(kù),在一些特別的情況下,才會(huì)選擇比較大的SQLServer數(shù)據(jù)庫(kù)或者M(jìn)ysql數(shù)據(jù)庫(kù),由于WCF開(kāi)發(fā)框架的應(yīng)用客戶端和服務(wù)器版本的數(shù)據(jù)庫(kù)不同,如果沒(méi)有比較彈性化、支持多數(shù)據(jù)庫(kù)的WCF開(kāi)發(fā)框架,這種開(kāi)發(fā)模式,就會(huì)比較吃力繁瑣。
離線式的WCF開(kāi)發(fā)框架,一個(gè)特點(diǎn)就是基本上顯示,以及保存等操作數(shù)據(jù)庫(kù)的數(shù)據(jù),都是本地的數(shù)據(jù)庫(kù),不是遠(yuǎn)端的服務(wù)器數(shù)據(jù)庫(kù),這樣,就需要記錄所有發(fā)生變更的數(shù)據(jù)庫(kù)操作,包括寫入,刪除、修改等,以便在網(wǎng)絡(luò)暢通的情況下,可以上傳數(shù)據(jù)到服務(wù)器上面。
和上面第二點(diǎn)介紹的傳統(tǒng)式WCF開(kāi)發(fā)框架,這個(gè)就是多了一個(gè)本地?cái)?shù)據(jù)庫(kù),這樣可以提高數(shù)據(jù)的網(wǎng)絡(luò)依賴性,其他日常操作的響應(yīng),在一些網(wǎng)絡(luò)環(huán)境不經(jīng)常連接的地方,可以很好的發(fā)揮作用,而且,通過(guò)實(shí)現(xiàn)把需要更新的數(shù)據(jù)導(dǎo)出到文件中,還可以實(shí)現(xiàn)數(shù)據(jù)的離線式同步,基本上可以完全獨(dú)立于網(wǎng)絡(luò)了。
這個(gè)模式的WCF框架架構(gòu)圖,是綜合了Winform開(kāi)發(fā)框架架構(gòu)設(shè)計(jì)圖和WCF框架架構(gòu)設(shè)計(jì)圖的特點(diǎn),既有訪問(wèn)本地?cái)?shù)據(jù)庫(kù)的模塊,也有訪問(wèn)操作WCF服務(wù)的模塊,在不同的地方發(fā)揮不同的作用。
4、混合式WCF開(kāi)發(fā)框架
除了以上幾種,還有一種是可以在傳統(tǒng)winform開(kāi)發(fā)框架和WCF開(kāi)發(fā)框架之間自由切換,這種其實(shí)用傳統(tǒng)式WCF開(kāi)發(fā)框架或者離線式WCF開(kāi)發(fā)框架就可以解決,不過(guò)有些人覺(jué)得在局域網(wǎng)里面訪問(wèn)WCF服務(wù),有點(diǎn)小題大做,而且性能也有一定的損失,那么就可以在界面調(diào)用具體操作數(shù)據(jù)類的時(shí)候,封裝多一層,通過(guò)配置來(lái)指向WCF代理類還是Winform框架中的業(yè)務(wù)訪問(wèn)類,這種確實(shí)也可以實(shí)現(xiàn)的。
還有一種情況,就是把系統(tǒng)劃分為很多***模塊(既適應(yīng)WInform集成,也適應(yīng)WCF集成),在不同的場(chǎng)合進(jìn)行不同的開(kāi)光切換,而且只是一個(gè)條件語(yǔ)句的跳轉(zhuǎn),就可以實(shí)現(xiàn)具體的切換,這樣非常有利于模塊的集成封裝。
綜上所述,我自己在各種項(xiàng)目的框架應(yīng)用選擇上,都是以最適合客戶場(chǎng)景來(lái)進(jìn)行選型,如一般的小型的業(yè)務(wù)管理系統(tǒng),用Winform開(kāi)發(fā)框架能快速給客戶做好系統(tǒng)開(kāi)發(fā);而對(duì)于要求分布式的業(yè)務(wù)管理系統(tǒng),工作的時(shí)候網(wǎng)絡(luò)不成問(wèn)題的這種,我一般就選擇傳統(tǒng)的WCF開(kāi)發(fā)框架;而對(duì)于復(fù)雜的,網(wǎng)絡(luò)不能保證的,要求分布式應(yīng)用,數(shù)據(jù)集中管理的,一般采用離線式的WCF開(kāi)發(fā)框架。如果為了更好開(kāi)發(fā)集成模塊,適應(yīng)各種場(chǎng)景的集成,那么就可能要求模塊具有混合式WCF開(kāi)發(fā)框架的特點(diǎn)。
文章名稱:Winform開(kāi)發(fā)框架演化歷史
當(dāng)前地址:http://www.fisionsoft.com.cn/article/cdhhhjs.html


咨詢
建站咨詢
