日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

.NET实现之(WebService数据提供程序)

發(fā)布時間:2024/9/21 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET实现之(WebService数据提供程序) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

說起數(shù)據(jù)提供程序大家都不陌生,數(shù)據(jù)提供程序的作用就是以統(tǒng)一的接口去訪問不同的數(shù)據(jù)源,如OledbProvider、SqlServerProvider、OrcaleProvider等等;不同數(shù)據(jù)源的訪問其實是不一樣的,微軟數(shù)據(jù)源的訪問方式從ODBC到ADO.NET經(jīng)歷了很多路程,各大數(shù)據(jù)源提供商,都在不斷的生產(chǎn)不同結(jié)構(gòu)的數(shù)據(jù)庫,為了以統(tǒng)一的接口去訪問各種不同的數(shù)據(jù)源,微軟的.NET為我們提供了ADO.NET,我們通過ADO.NET可以很方便的訪問不同廠商生產(chǎn)的不同數(shù)據(jù)庫,ADO.NET也為后期自定義數(shù)據(jù)提供程序規(guī)定了一套接口,只要我們自己去實現(xiàn)它就可以用同一種方式,訪問我們自己的數(shù)據(jù)源,我們可以通過封裝訪問我們的XML數(shù)據(jù)源、文本數(shù)據(jù)源、二進制數(shù)據(jù)源、WebService數(shù)據(jù)源、對應(yīng)用程序員來說,可能有很少一部分人去關(guān)注后臺的具體實現(xiàn)的細節(jié);對于剛畢業(yè)的學(xué)生來說,大部分的知識還沒有轉(zhuǎn)變成對技術(shù)的主觀思考,剛剛接觸數(shù)據(jù)提供程序可能有點陌生,所以我們盡可能的將復(fù)雜的東西進行簡單化,讓不需要接觸后臺代碼的程序員就不要接觸,減少思考的時間;

今天我要向大家介紹的是WebService數(shù)據(jù)提供程序,是建立在ADO.NET一套規(guī)范接口上的,為什么我會有這樣的想法去寫這個提供程序,主要來源于我在一段工作時間中不斷遇到企業(yè)使用我們的分布式系統(tǒng)遇到的種種問題,因為我們的分布式系統(tǒng)是采用.NETRemoting實現(xiàn)的,端口是用的8085,走的是TCP協(xié)議;給企業(yè)部署項目的時候,由于企業(yè)的網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜,在加上我們不了解企業(yè)的網(wǎng)絡(luò)結(jié)構(gòu),所以在很大程序上增加了我們的維護工作量,也給企業(yè)帶來了很大的維護時間開銷,我們的.NETRemoting是用Windows服務(wù)作為宿主,部署在應(yīng)用服務(wù)器上,通過路由器的端口映射來處理客戶端的TCP請求;很少一部分企業(yè)的網(wǎng)絡(luò)結(jié)構(gòu)簡單,沒有復(fù)雜的安全防線,由于我們公司做的項目相對而言還是比較大的,都是一些大中型企業(yè);他們的網(wǎng)絡(luò)的系數(shù)很高,防火墻的設(shè)置基本上是不允許使用TCP協(xié)議的,而且除了常用的協(xié)議端口如HTTP的80、FTP的21等,其余的一律封閉,所以我們的系統(tǒng)很難部署使用,但是后來這個問題也解決的了,將.NETRemoting部署到IIS上了,也通過80端口進來再由.NETRemoting子系統(tǒng)去處理;但是過了一段時間,我感覺通過WebService也能很好的實現(xiàn),所以就寫出來與大家分享一下,可能有人覺得WebService沒有.NETRemoting效率高,對于大數(shù)據(jù)量可能會有問題,還有WebService的安全認證怎么控制,這些問題如果需要可以上網(wǎng)參考相關(guān)資料,對于安全認證可以在C/S系統(tǒng)加上Session的相應(yīng)機制,這里就不多說了;

1:

?

該圖給出一般分布式系統(tǒng)的網(wǎng)絡(luò)拓撲圖,企業(yè)和服務(wù)器各自在內(nèi)網(wǎng),企業(yè)通過WebService數(shù)據(jù)提供程序訪問我們的數(shù)據(jù)源;

2:

?

在下已經(jīng)實現(xiàn)一個基本的原型,在HZ.DataProvider.WebServiceDBManager服務(wù)器項目中,可以實現(xiàn)很多種數(shù)據(jù)源,在WebService與數(shù)據(jù)庫服務(wù)器之間可以架設(shè)ORM很寬松的實現(xiàn)數(shù)據(jù)訪問,可以隨意切換數(shù)據(jù)庫類型;這樣層層隔離,也是一種好的開發(fā)方式;

3:

通過提供程序獲取DataReader對象,前臺完全和以前我們所熟悉的一樣開發(fā),對于剛進公司開發(fā)的程序員來說,也是一中解脫,不需要關(guān)注后臺復(fù)雜的實現(xiàn),只需要按照一貫的方式開發(fā)就行;

4:

5:

圖5是服務(wù)器端的實現(xiàn)代碼,這部分代碼就是連接數(shù)據(jù)庫服務(wù)器的代碼,將客戶端傳遞過來的SQL去執(zhí)行,并返回數(shù)據(jù)庫返回的結(jié)果給客戶端;





?本文轉(zhuǎn)自 王清培 51CTO博客,原文鏈接:http://blog.51cto.com/wangqingpei557/567769,如需轉(zhuǎn)載請自行聯(lián)系原作者




總結(jié)

以上是生活随笔為你收集整理的.NET实现之(WebService数据提供程序)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。