麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

.NET框架與網(wǎng)絡(luò)服務(wù)(下)

2024-07-21 02:21:44
字體:
供稿:網(wǎng)友
國內(nèi)最大的酷站演示中心!
.net框架與網(wǎng)絡(luò)服務(wù)(下)
(作者:msdn 2001年02月06日 10:47)

  ■數(shù)據(jù)訪問服務(wù)
  幾乎所有的網(wǎng)絡(luò)服務(wù)都需要查詢和更新永久性數(shù)據(jù),不論是以簡單文件,還是以相關(guān)數(shù)據(jù)庫,或是以其它的存儲(chǔ)類型存在。為了提供對(duì)數(shù)據(jù)的訪問,服務(wù)框架包括activex data objects+ (ado+)類庫。如同名字所暗示的那樣,ado+由ado發(fā)展而來。ado+為基于網(wǎng)絡(luò)的應(yīng)用程序和服務(wù)提供數(shù)據(jù)訪問服務(wù)。圖1闡明了ado+的體系結(jié)構(gòu),表明任何數(shù)據(jù),不論這些數(shù)據(jù)實(shí)際上如何存儲(chǔ)的,都以xml或相關(guān)數(shù)據(jù)的格式被操作。

  ado+定義了那些鏈接數(shù)據(jù)倉庫、對(duì)數(shù)據(jù)倉庫發(fā)送命令及從中獲取結(jié)果的類。這些類由受控?cái)?shù)據(jù)提供者(managed data provider)實(shí)現(xiàn)。ado+中鏈接和命令對(duì)象看上去和ado中的是一樣的,并且一個(gè)名為datareader的新類提供了通過高性能api流獲取結(jié)果的能力。datareader在功能上與ado的記錄集(recordset)是相似的,但是datareader被設(shè)計(jì)用來最小化內(nèi)存中生成的對(duì)象的數(shù)量,用以提高性能、避免垃圾積累。在.net framework中包含了針對(duì)microsoft sql server的受控?cái)?shù)據(jù)提供者以及可通過ole db訪問的任何數(shù)據(jù)倉庫。

  ado+的一個(gè)主要?jiǎng)?chuàng)新是引入了數(shù)據(jù)集(dataset)。一個(gè)數(shù)據(jù)集是內(nèi)存中提供數(shù)據(jù)關(guān)系圖的高速緩沖區(qū)。數(shù)據(jù)集對(duì)數(shù)據(jù)源一無所知,它們可以由程序或通過從數(shù)據(jù)倉庫中調(diào)入數(shù)據(jù)而被生成、填充。不論數(shù)據(jù)從何處獲取,數(shù)據(jù)集都是通過使用同樣的程序模板而被操作的,并且它使用相同的數(shù)據(jù)緩沖區(qū)。使用.net平臺(tái)的開發(fā)人員能夠用數(shù)據(jù)集代替?zhèn)鹘y(tǒng)ado中無連接的記錄集。

  受控?cái)?shù)據(jù)提供者為數(shù)據(jù)倉庫和數(shù)據(jù)集公開的、名為datasetcommand的接口對(duì)象。datasetcommand使用ado+鏈接和命令從數(shù)據(jù)倉庫中提取數(shù)據(jù)集,并把在數(shù)據(jù)集中發(fā)生的變化解析到數(shù)據(jù)倉庫中。

  就像datareaders顯示了對(duì)于相關(guān)數(shù)據(jù)的有效的流訪問一樣,xmlreaders顯示了對(duì)xml數(shù)據(jù)的流訪問。開發(fā)人員使用datanavigator可以滾動(dòng)和編輯內(nèi)存中的xml文檔。datanavigator在功能上和document object model (dom)是一樣的,但它更有效,并提供了能很好映射關(guān)系數(shù)據(jù)表的對(duì)象模板。ado+為那些希望繼續(xù)使用dom作為xml對(duì)象模板而不是使用更有效的datanavigator模板的開發(fā)人員提供了一個(gè)xmldocument類。


  圖1 ado+體系結(jié)構(gòu)

  ■表單應(yīng)用模板
  從概念上講,在服務(wù)框架的最上面是兩個(gè)應(yīng)用程序模板:windows表單應(yīng)用模板和網(wǎng)絡(luò)應(yīng)用程序模板。盡管本文把重點(diǎn)放在把microsft.net框架用作開發(fā)網(wǎng)絡(luò)服務(wù)和網(wǎng)絡(luò)應(yīng)用程序的一種途徑上,但框架也可用于開發(fā)較傳統(tǒng)的基于windows的應(yīng)用程序(當(dāng)然,這些應(yīng)用程序也能使用網(wǎng)絡(luò)服務(wù))。

  編寫windows客戶應(yīng)用程序的開發(fā)人員可使用win表單應(yīng)用程序模板以利用windows豐富的用戶接口特點(diǎn),包括現(xiàn)在的activex控件和windows 2000的新特點(diǎn),如透明的、分層的浮動(dòng)窗口。開發(fā)人員會(huì)發(fā)現(xiàn)win表單可編程模板和對(duì)設(shè)計(jì)階段的支持非常直觀。

  win表單利用了microsft.net框架 runtime以減少基于windows的客戶應(yīng)用程序的開銷。只要應(yīng)用程序和組件是用于win表單應(yīng)用程序的,那么它們就能被框架安全模板在客戶機(jī)上安全地執(zhí)行。

  microsft.net框架裝配模板簡化了應(yīng)用程序的配制和版本化。應(yīng)用程序可被配制為使用它們?cè)诰幾g和測(cè)試中所用的共享組件,而不是使用恰好在客戶機(jī)器上安裝的隨便什么版本的組件,這就提高了應(yīng)用程序的可靠性,減少了應(yīng)用程序所支持調(diào)用的主要因素:用戶接口控件和其它共享組件版本的不兼容性。

  ■網(wǎng)絡(luò)應(yīng)用程序模板
  建立在microsft.net框架上網(wǎng)絡(luò)應(yīng)用程序共享一個(gè)通用應(yīng)用程序模板。包含用于生成在瀏覽器中觀看的網(wǎng)頁的網(wǎng)絡(luò)應(yīng)用程序和網(wǎng)絡(luò)服務(wù)。下面,筆者將詳細(xì)介紹active server pages+ (asp+)的網(wǎng)絡(luò)應(yīng)用程序可編程模板,如圖2所示。

  asp+是由活動(dòng)服務(wù)器頁面(asp)發(fā)展而來。asp+利用common language runtime和服務(wù)框架網(wǎng)絡(luò)應(yīng)用程序提供了一個(gè)可靠的、自動(dòng)化的、可擴(kuò)展的主機(jī)環(huán)境。asp+也受益于common language runtime集成模板,簡化了應(yīng)用程序的配制。另外,它提供簡化應(yīng)用程序開發(fā)的服務(wù)(如狀態(tài)管理服務(wù))以及高水平的編程模板(如asp+網(wǎng)絡(luò)表單和asp+網(wǎng)絡(luò)服務(wù))。

  asp+的核心是http運(yùn)行語言,一個(gè)高性能的用于處理基于低級(jí)結(jié)構(gòu)的http請(qǐng)求的運(yùn)行語言,而基于的結(jié)構(gòu)與microsoft internet information services (iis)所提供的isapi結(jié)構(gòu)相似。由圖2可知,http運(yùn)行語言(http runtime)負(fù)責(zé)處理引入的所有http請(qǐng)求,并對(duì)每個(gè)請(qǐng)求應(yīng)用程序的url進(jìn)行解析,然后把請(qǐng)求分配到應(yīng)用程序以進(jìn)行進(jìn)一步的處理。http 運(yùn)行語言是多線程的,并異步處理請(qǐng)求,因此劣質(zhì)的應(yīng)用程序代碼阻礙不了它對(duì)新請(qǐng)求的處理。而且http運(yùn)行語言假定失敗必會(huì)發(fā)生,因此它通常可以自動(dòng)地從訪問沖突、內(nèi)存泄漏、死鎖等事故中恢復(fù)過來。

  asp+使用基于構(gòu)件的microsft .net框架配制模板,因此它獲得了如xcopy配制、構(gòu)件并行配制、基于xml配制等優(yōu)點(diǎn)。asp+另一個(gè)主要優(yōu)點(diǎn)是,它支持應(yīng)用程序的實(shí)時(shí)更新。管理員不必關(guān)掉網(wǎng)絡(luò)服務(wù)器,甚至不用停止應(yīng)用程序的運(yùn)行就可以更新應(yīng)用文件。應(yīng)用程序文件永遠(yuǎn)不會(huì)被加鎖,甚至在程序運(yùn)行時(shí)文件就可以被覆蓋。當(dāng)文件更新后,系統(tǒng)會(huì)檢測(cè)到文件變化,并用新的應(yīng)用程序代碼建立一個(gè)新的應(yīng)用程序?qū)嵗缓髮⒁氲恼?qǐng)求傳遞到應(yīng)用程序。當(dāng)所有被現(xiàn)存的應(yīng)用程序?qū)嵗幚淼奈赐瓿傻恼?qǐng)求處理完后,該實(shí)例就被銷毀。

  在應(yīng)用程序中,http請(qǐng)求(http request)通過http模塊的管道路由,最終到達(dá)請(qǐng)求處理程序。http模塊和請(qǐng)求處理程序是一些實(shí)現(xiàn)特殊接口的受控類,而這些接口是由asp+定義的。這種管道結(jié)構(gòu)使得為應(yīng)用程序增加服務(wù)非常方便:只需補(bǔ)充一個(gè)http模塊。例如安全、狀態(tài)管理及跟蹤都被實(shí)現(xiàn)為http模塊。高級(jí)可編程模塊,如網(wǎng)絡(luò)服務(wù)和網(wǎng)絡(luò)表單,通常被用于請(qǐng)求處理程序。一個(gè)應(yīng)用程序能鏈接多個(gè)請(qǐng)求處理程序,每個(gè)處理程序?qū)?yīng)一個(gè)url,但是所有的http請(qǐng)求都要通過同樣的管道路由。

  網(wǎng)絡(luò)基本上是一個(gè)無狀態(tài)模型,并且在http請(qǐng)求間沒有聯(lián)系,這使得編寫網(wǎng)絡(luò)應(yīng)用程序很困難,因?yàn)閼?yīng)用程序通常需要維護(hù)跨多個(gè)請(qǐng)求的狀態(tài)。asp+增強(qiáng)了由asp引入的狀態(tài)管理服務(wù),以便為網(wǎng)絡(luò)應(yīng)用程序提供三種類型的狀態(tài):應(yīng)用程序、會(huì)話和用戶。就像在asp中一樣,應(yīng)用程序狀態(tài)特定于一個(gè)應(yīng)用程序?qū)嵗⑶也粫?huì)持久。會(huì)話狀態(tài)是特定于一個(gè)用戶與應(yīng)用程序間的會(huì)話的。與asp會(huì)話狀態(tài)不同,asp+會(huì)話狀態(tài)儲(chǔ)存在一個(gè)獨(dú)立的過程中,并且可把它配制成可以儲(chǔ)存到一個(gè)獨(dú)立的機(jī)器上。這使得會(huì)話狀態(tài)當(dāng)應(yīng)用程序在網(wǎng)絡(luò)群(web farm)擴(kuò)展時(shí)非常有用。用戶狀態(tài)類似于會(huì)話狀態(tài),但通常它不會(huì)超時(shí),并且是永久性的。因此,用戶狀態(tài)對(duì)儲(chǔ)存用戶參數(shù)和其它個(gè)性化的信息是有用的。所有狀態(tài)管理服務(wù)都被實(shí)現(xiàn)為http模塊,因此它們?nèi)菀自黾拥綉?yīng)用程序管道中,或從中刪除。


  圖2 asp+網(wǎng)絡(luò)應(yīng)用模型

  如果除了由asp+提供的服務(wù)外,還需要額外的狀態(tài)管理服務(wù),那么可由第三方的模塊提供。

  asp+同樣提供高速緩沖服務(wù),以改善性能。輸出緩沖可完全節(jié)省網(wǎng)頁翻譯,段緩沖儲(chǔ)存部分的網(wǎng)頁。由于提供了相應(yīng)的類,所以只要需要,應(yīng)用程序、http模塊以及請(qǐng)求處理程序就可以在高速緩存中儲(chǔ)存任意數(shù)量的對(duì)象。

  下面讓我們認(rèn)識(shí)一下建立在asp+可編程模塊之上的兩個(gè)高級(jí)可編程模塊:asp+網(wǎng)絡(luò)表單和asp+網(wǎng)絡(luò)服務(wù)。

  ■asp+網(wǎng)絡(luò)表單
  網(wǎng)絡(luò)表單把基于visual basic表單的高生產(chǎn)性優(yōu)點(diǎn)帶到了網(wǎng)絡(luò)應(yīng)用程序的開發(fā)中來。網(wǎng)絡(luò)表單支持傳統(tǒng)的將html內(nèi)容與腳本代碼混合的asp語法,但是它提出了一種將應(yīng)用程序代碼和用戶接口內(nèi)容分離的更加結(jié)構(gòu)化的方法。引入的網(wǎng)絡(luò)表單控件用于為封裝通用用戶接口元素提供了一種機(jī)制。這些新的特點(diǎn)使得開發(fā)工具在支持vb小應(yīng)用程序的同時(shí),也支持設(shè)計(jì)模塊。


  圖3 asp+網(wǎng)絡(luò)服務(wù)

  網(wǎng)絡(luò)表單控件負(fù)責(zé)生成用戶接口,典型情況是在html表單中。asp+提供了一套映射傳統(tǒng)的html用戶接口小部件(包括列表框,文本框和按鈕)的網(wǎng)絡(luò)表單控件和一套附加的網(wǎng)絡(luò)控件(如日歷和廣告轉(zhuǎn)板)。這些控件的一個(gè)重要特點(diǎn)是,它們可以被編寫以適應(yīng)客戶端的能力;同一網(wǎng)頁把大范圍的客戶端平臺(tái)和表單因素作為目標(biāo)。換句話說,網(wǎng)絡(luò)表單控件能“嗅”到正在查找表單的客戶,然后返回合適的用戶經(jīng)驗(yàn)——可能是適合低級(jí)瀏覽器的html3.2或是適于ie5.0的動(dòng)態(tài)html。

  考慮到網(wǎng)絡(luò)是一種無狀態(tài)的聯(lián)接模型,網(wǎng)絡(luò)應(yīng)用程序開發(fā)人員所面臨的一個(gè)很復(fù)雜的問題是,他們要對(duì)用戶與基于網(wǎng)絡(luò)的接口的交互作用作出反應(yīng)。網(wǎng)絡(luò)利用asp+的體系架構(gòu)提供了一套豐富的服務(wù),以幫助開發(fā)人員建立交互式網(wǎng)頁。用戶與網(wǎng)頁交互作用的狀態(tài)管理的復(fù)雜性被asp+網(wǎng)絡(luò)表單和網(wǎng)絡(luò)表單控件隱藏起來了。對(duì)開發(fā)人員來說,提供的豐富數(shù)據(jù)綁定服務(wù)使得顯示通過數(shù)據(jù)訪問服務(wù)得到的數(shù)據(jù)變得非常容易。

  代碼與內(nèi)容的分離使asp+網(wǎng)頁能動(dòng)態(tài)地編譯到受控類中,用以提高性能。每個(gè)引入的http請(qǐng)求都被傳遞到一個(gè)新的網(wǎng)頁實(shí)例中,因此開發(fā)人員不需要關(guān)心代碼中的線程安全性問題。

  ■asp+網(wǎng)絡(luò)服務(wù)
  asp+網(wǎng)絡(luò)服務(wù)體系架構(gòu)為用asp+建立網(wǎng)絡(luò)服務(wù)提供了一個(gè)高級(jí)可編程模板。雖然建立網(wǎng)絡(luò)服務(wù)并不需要使用網(wǎng)絡(luò)服務(wù)平臺(tái),但是它提供許多的優(yōu)點(diǎn)將簡化應(yīng)用程序的開發(fā)過程,并且它使用的編程模型對(duì)用asp或vb工作的開發(fā)人員來說是很熟悉的。使用這個(gè)可編程模型,開發(fā)人員可以不需要理解http、soap或其它任何網(wǎng)絡(luò)服務(wù)規(guī)范。asp+網(wǎng)絡(luò)服務(wù)可編程模型如圖3所示。

  開發(fā)人員用asp+生成一個(gè)擴(kuò)展名為 .asmx的文件,并把此文件配制為網(wǎng)絡(luò)應(yīng)用程序的一部分,就建立起了一個(gè)網(wǎng)絡(luò)服務(wù)。asmx文件包含受控類的引用,或這個(gè)類的定義。這個(gè)類是由asp+提供的webservice類所派生的。公有的類方法在標(biāo)記上webmethod屬性后,就會(huì)成為網(wǎng)絡(luò)服務(wù)方法,把http請(qǐng)求發(fā)送到asmx文件中的url后,這些方法就會(huì)被調(diào)用。你不必手工為你的網(wǎng)絡(luò)服務(wù)建立一個(gè)契約。當(dāng)被調(diào)用者發(fā)出請(qǐng)求時(shí),asp+會(huì)檢查類的元數(shù)據(jù),從而自動(dòng)生成scl文件。

  客戶可通過soap、http get和http post提交請(qǐng)求。對(duì)方法和參數(shù)進(jìn)行編碼的約定是:http get,將被編譯為查詢字符串;http post,將被編譯為表單數(shù)據(jù)。http get和http post 的機(jī)制不如soap有力,但是它們使得客戶在訪問網(wǎng)絡(luò)服務(wù)時(shí)不必支持soap。

  asp+網(wǎng)絡(luò)服務(wù)模型假定了一個(gè)無狀態(tài)服務(wù)結(jié)構(gòu)。無狀態(tài)結(jié)構(gòu)通常比有狀態(tài)結(jié)構(gòu)更具可擴(kuò)展性。每次收到一個(gè)服務(wù)請(qǐng)求后,就生成一個(gè)新對(duì)象,請(qǐng)求被轉(zhuǎn)化為一個(gè)方法調(diào)用,當(dāng)方法調(diào)用返回時(shí)對(duì)象被銷毀。如果這些服務(wù)需要跨請(qǐng)求維護(hù)狀態(tài),那么它們將使用asp+狀態(tài)管理服務(wù)。基于asp+的網(wǎng)絡(luò)服務(wù)在網(wǎng)絡(luò)應(yīng)用程序模型中運(yùn)行,因此它們得到了該模型的所有安全、配制和其它優(yōu)點(diǎn)。

  asp+網(wǎng)絡(luò)服務(wù)還提供了一個(gè)為在scl文件中描述的網(wǎng)絡(luò)服務(wù)生成分類的受控代理工具。代理生成器把scl文件中描述的消息映射成受控類中的方法。代理對(duì)應(yīng)用程序代碼隱藏了所有的網(wǎng)絡(luò)和引導(dǎo)設(shè)備,因此使用網(wǎng)絡(luò)服務(wù)看起來就象使用其它受控代碼一樣。代理將優(yōu)先使用soap鏈接網(wǎng)絡(luò)服務(wù),但是它同樣支持http get和http post機(jī)制。

  ■結(jié)論
  網(wǎng)絡(luò)服務(wù)為在internet上綁定應(yīng)用程序提供了簡單的、靈活的、基于多標(biāo)準(zhǔn)的模型,同時(shí),最大可能地重用現(xiàn)存體系架構(gòu)和應(yīng)用程序。網(wǎng)絡(luò)應(yīng)用程序可以很容易地與本地開發(fā)的服務(wù)或已存在的服務(wù)集成在一起,而不用考慮開發(fā)平臺(tái)、開發(fā)語言或使用的對(duì)象模型,以用于實(shí)現(xiàn)任何組成的服務(wù)或應(yīng)用程序。

  microsft.net框架為開發(fā)人員提供了一個(gè)極為方便的開發(fā)環(huán)境,從而簡化了安全、可靠、可擴(kuò)展、高可用性的網(wǎng)絡(luò)服務(wù)的建立、部署和不斷的發(fā)展。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美人与牲禽动交精品一区 | 国产精品欧美久久久久一区二区 | 99精品国产一区二区三区 | 日韩在线播放第一页 | 一级做a爱视频 | 一级免费看片 | 欧洲精品久久 | 91久久久久久久久久久久久久 | 欧美国产成人在线 | 国产精品亚洲综合一区二区三区 | 精品国产呦系列在线看 | 亚洲射逼| 精品亚洲午夜久久久久91 | 国产成人自拍小视频 | 久久免费视频7 | 亚洲一区中文字幕 | 午夜久久视频 | 久久2019中文字幕 | 久久久久免费精品国产小说色大师 | 精品国产一二区 | 日韩视频区 | 亚洲欧美国产精品va在线观看 | 成人国产在线视频 | 国产午夜精品久久久 | 国产成人高清成人av片在线看 | 欧美一级片免费在线观看 | 成人免费福利视频 | av在线免费看网站 | 成人在线免费观看视频 | 日本黄色免费观看视频 | 亚洲免费永久 | 九草视频 | 九九热在线视频观看 | 久久精品资源 | 久久久久久久黄色片 | 成人情欲视频在线看免费 | 国产一级桃视频播放 | 欧美一级黄色免费看 | 美女黄色毛片免费看 | 5a级毛片 | 久久久久久久久久91 |