在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 為Microsoft .NET做好準備

            為Microsoft .NET做好準備

            作者: 時間:2012-05-02 來源:網(wǎng)絡 收藏

            本文介紹了、WebServices(Web服務)和SOAP(簡單對象訪問協(xié)議),并且對一個調(diào)用了簡單WebServices的源代碼示例進行討論。

            本文引用地址:http://www.biyoush.com/article/149156.htm

            需要具備

            ®eMbeddedVisualTools

            PocketPC上的有效Internet連接

            如果需要,您可以下載本文中的示例代碼。

            須知

            SOAP規(guī)范(當前版本為1.1)仍然是一個處于提議狀態(tài)的標準并且有可能發(fā)生變化。在SOAP規(guī)范發(fā)生修改和變化時,本文中所提供的示例代碼可能需要修改。

            該示例代碼使用了SDL(ServicesDescriptionLanguage,服務描述語言)來定義WebServices,而SDL即將(有望在2001年的上半年)被最新的WSDL規(guī)范(WebServicesDescriptionLanguage,Web服務描述語言)所替代。本文中所提供的示例代碼不能同使用WSDL規(guī)范的WebServices配合工作。

            支持的語言

            英語

            、WebServices和SOAP

            構想的一個核心部分便是實現(xiàn)程序間的普遍集成。這意味著必須使駐留在不同平臺上的各種應用程序都可以調(diào)用以WebServices形式實現(xiàn)的功能和服務。本質(zhì)上說,你可以使用WebServices來開發(fā)可通過HTTP(HypertextTransferProtocol,超文本傳輸協(xié)議)進行使用的組件方法,并且使用XML(ExtensibleMarkupLanguage,擴展標記語言)對通信數(shù)據(jù)進行格式化。而完成這一切工作所使用的標準便是SOAP,SOAP當前正在由W3C進行標準化工作。(請通過本文末尾的鏈接部分了解更多信息)

            WebServices將改變我們設計應用程序的方式,因為我們可以將位于Internet各個角落的功能集成到一個單一的定制化程序當中。顯然,Web應用程序很適合使用這種程序設計方式。但是客戶端程序也可以使用這種方式得以實現(xiàn),這使得豐富的用戶界面同廣泛的分布式服務可以完美結(jié)合在一起。對于MicrosoftWindows®PoweredPocketPC來說,這也是一種完美的手段,因為它具有強大的用戶界面和熟悉的編程平臺,而且同臺式機相比,它具有相對較低的資源占用量(內(nèi)存等等)。因為SOAP協(xié)議相當小巧,如果您想為設備添加無線訪問功能,您可以通過無處不在的功能和服務實現(xiàn)強大的解決方案,從而對現(xiàn)有系統(tǒng)進行極大擴展。“集成點”式的Web服務器離您正在越來越近。它就在那里,在您的手上!

            如何調(diào)用WebServices

            在您的桌面PC上,您首先應該下載SOAPToolkit,然后您可以使用ROPE(RemoteObjectProxyEngine,遠程對象代理引擎)從任何語言中調(diào)用WebServices。ROPE是一個DLL(動態(tài)鏈接庫),它提供了Web服務開發(fā)所需的核心功能和基礎結(jié)構,并且使您可以使用熟悉的編程方式實現(xiàn)Web服務。它允許客戶端訪問某個WebService,只要該客戶端是一個本地COM對象即可。但是,在PocketPC上,現(xiàn)在還沒有任何可用的ROPE實現(xiàn)。我說“現(xiàn)在還沒有”是因為我相信:未來必將出現(xiàn)可在PocketPC上使用的WebServices(SOAP)和其它一些.NET部件。

            同時,您可以使用我提供的簡化ROPE實現(xiàn),它是本文示例代碼的一部分,通過它,您現(xiàn)在就可以在您的PocketPC上開始使用WebServices。

            WebServices能做什么?

            在我們開始討論代碼之前,讓我們首先探討一下WebServices究竟能為我們做些什么。在下面這個窗體中,我從SOAPToolkit中復制了一個示例客戶端程序,并將其作為一個MicrosofteMbeddedVisualBasic®應用程序。

            圖1:PocketPC上的示例ROPE客戶端程序。

            通過這個客戶程序,您可以使用Microsoft在SOAPToolkit中提供的WebService示例從Internet上實時獲知股票價格。您還可以從托管這些服務的服務器上得到當前時間,以及由美國海軍天文臺提供的UTC(CoordinatedUniversalTime)時間。最后,您還可以方便地使用一個向公眾開放的翻譯服務(就在您自己的程序內(nèi)部)。非??幔?/p>

            代碼研究

            以下是btnGetStockQuote_Click事件的代碼(在按下最頂端的“Get”按鈕時執(zhí)行):

            DimlavParameters(2)AsVariant

            DimlsAsString

            'Setparameters

            lavParameters(1)=txtSymbol.Text

            lavParameters(2)=anycompany

            'MakeSOAPcall

            ls=SOAPCall(txtURI.Text,GetStockQuote,lavParameters,

            chkShowPackets.Value=1)

            'Showresult

            MsgBoxShareprice=ls

            代碼說明:

            因為eMbeddedVisualBasic的功能參數(shù)中缺少ParamArray選項,我們必須手動將該參數(shù)添加到Variant數(shù)組中。

            SOAPCall函數(shù)使用了4個參數(shù):

            Web地址,指向WebServices描述文件(SDL)的URI(UniversalResourceIdentifier,通用資源標示符)。

            調(diào)用的方法名。

            方法使用的參數(shù)。

            一個真/假標志,指出在調(diào)用期間()是否顯示XML負載(已發(fā)送和已接受),在本示例代碼中我們在窗體中使用了一個復選框(CheckBox)。

            因為SOAPCall函數(shù)是在ROPE.bas模塊中實現(xiàn)的,對WebServices的調(diào)用過程非常簡單。

            讓我們更深入地看一看ROPE.bas模塊。以下是一些進行實際SOAP調(diào)用的代碼(節(jié)選自SOAPCall函數(shù)):

            'SetPayload

            lsRequest=lsRequestvbCrLf

            lsRequest=lsRequest

            /envelope/SOAP:encodingStyle=http://schemas.xmlsoap.org/soap

            /encoding/>vbCrLf

            lsRequest=lsRequestvbCrLf

            vbCrLf

            lsRequest=lsRequestMethod>vbCrLf

            lsParameterOrder=GetParameterOrder(psServicesDescription,Method)

            IflsParameterOrder>Then

            lasParameterOrder=Split(lsParameterOrder,)

            Fori=0ToUBound(lasParameterOrder)

            lsRequest=lsRequestlasParameterOrder(i)>CStr(Arguments(i+1))

            vbCrLf

            Nexti

            EndIf

            lsRequest=lsRequestvbCrLf

            lsRequest=lsRequest

            lsRequest=lsRequest

            'GetListener

            lsListener=GetListener(psServicesDescription)

            'CreateXMLHTTPobject

            SetloXMLHTTP=CreateObject(Microsoft.XMLHTTP)

            'OpenURLtoListener

            loXMLHTTP.OpenPOST,lsListener,False,,

            'Setheaderinfo

            loXMLHTTP.setRequestHeaderSOAPAction,Method

            loXMLHTTP.setRequestHeaderContent-Type,text/xml

            'MakerequesttoSOAPservice/method

            loXMLHTTP.SendlsRequest

            'IfOK,getresponse

            IfLen(loXMLHTTP.ResponseXML.XML)>0Then

            lsResponse=loXMLHTTP.ResponseXML.XML

            SOAPCall=GetReturnValue(lsResponse,Method)

            Else

            MsgBoxloXMLHTTP.ResponseText

            EndIf

            代碼說明:

            lsRequest變量被實際的請求負載(使用XML格式)所填充。除了方法名和參數(shù)值以外,內(nèi)容主要是硬編碼的XML文本。GetParameterOrder函數(shù)抽取出了參數(shù)和它們各自的順序,以便以正確的順序接收各個參數(shù)。

            GetListener函數(shù)可以取出Web地址,也就是URL(UniversalResourceLocator,通用資源定位符),來“偵聽”WebService。偵聽程序是一個Web頁面,請求將被發(fā)送到這個頁面上,該頁面使用服務描述語言定義。它通常上是一個ASP(ActiveServerPages)頁面,但是使用一個更有效的ISAPI(InternetServerApplicationProgrammingInterface,Internet服務器應用程序編程接口)。

            我目前正在使用XMLHTTP進行實際調(diào)用,您可以在所有PocketPC上找到該組件。

            GetReturnValue函數(shù)負責從響應負載(XML格式)中取出返回值。如果發(fā)生錯誤,返回值為錯誤代碼。

            雖然沒有在上面的代碼中顯示,但大多數(shù)子函數(shù)都使用XMLDOM組件(可在所有PocketPC上找到該組件)分析響應XML字符串。而且即便是ROPE.bas模塊沒有實現(xiàn)所有SOAPToolki所能夠?qū)崿F(xiàn)的所有ROPE功能,但它提供了最重要的大部分功能--足以使您調(diào)用WebServices。

            如果您希望了解更多詳細信息,我建議您認真閱讀完整的示例代碼。

            運行服務

            好了,我已經(jīng)完成了使WebServices開始工作所需的一些基礎工作。現(xiàn)在,要由您來完成最有意思的部分:創(chuàng)建一個使用WebServices的出色程序。目前,Internet上還沒有太多的WebServices供我們使用,所以您必須自己實現(xiàn)一些服務。但是,我知道Microsoft提供了一個叫做TerraService的WebServices,它可以將動態(tài)地圖發(fā)送到您的應用程序之中。此外,您開可以在網(wǎng)上找到一個利用VisualStudio.NETBeta1創(chuàng)建的示例程序。

            如果您想對新出現(xiàn)的WebServices保持跟蹤,請訪問MicrosoftUDDI(UniversalDescription,DiscoveryandIntegration)站點。UDDI的目標是創(chuàng)建一個全球化的WebServices存儲庫,您可以使用它查找所需的功能和服務--甚至是來自某個應用程序的實時服務,包括Microsoft、IBM、Sun、Oracle在內(nèi)的主要廠商和其它100多家廠商都支持UDDI。

            如果您決定在Internet上發(fā)布某個Web服務,請及時通知我--我想先試試它們!

            未來會怎樣

            我相信在不遠的將來,所有的.NET特性都將在PocketPC上得以實現(xiàn)。隨后,對WebServices的支持將集成到操作系統(tǒng)和開發(fā)工具之中。調(diào)用WebServices將像調(diào)用本地組件那樣容易,大多數(shù)應用程序?qū)⑼ㄟ^集成多個服務進行構建。第一次WebServices浪潮預計將出現(xiàn)在公司內(nèi)部,企業(yè)將來自多個系統(tǒng)的服務集成到一個應用程序之中,隨后的發(fā)展趨勢則是通過Internet將來自多個服務提供商的多個服務完全集成在一起。

            相關鏈接

            如果您想了解同.NET有關的更多信息,請訪問Microsoft.NET頁面。

            如果您想了解同SOAP有關的更多信息,請訪問MSDNSOAP開發(fā)資源頁面。

            如果您想了解同ROPE有關的更多信息,請訪問MSDNMagazine文章“WebService開發(fā):立即上手使用SOAPToolkitforVisualStudio”。

            如果您想同PC上的代碼示例進行對比,請下載SOAPToolkit(SOAPToolkitforMicrosoftVisualStudio®V6.0)。

            小結(jié)

            對于利用分布式Web服務的強大功能來說,具有纖細外形的PocketPC可以說是上佳之選。您現(xiàn)在不僅可以瀏覽Web內(nèi)容,而且可以充分利用Web所具有的強大能量(功能),您甚至可以使用無線方式做到這一切。

            我希望,您能像我一樣為這一切感到萬分激動,因為它將實質(zhì)性地改變我們的系統(tǒng)集成方式。當各種出色的WebServices如雨后春筍般涌現(xiàn)出來之時,您就可以在任何地方輕而易舉地利用這些服務。

            希望能有更多的開發(fā)人員就此問題在PocketPC.com上展開討論,因為WebServices是.NET戰(zhàn)略重中之重。



            關鍵詞: 準備 做好 .NET Microsoft

            評論


            相關推薦

            技術專區(qū)

            關閉