日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]為Microsoft .NET做好準(zhǔn)備

本文介紹了.NET、WebServices(Web服務(wù))和SOAP(簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議),并且對(duì)一個(gè)調(diào)用了簡(jiǎn)單WebServices的源代碼示例進(jìn)行討論。

需要具備

Microsoft®eMbeddedVisualTools

PocketPC上的有效Internet連接

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

須知

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

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

支持的語(yǔ)言

英語(yǔ)

Microsoft.NET、WebServices和SOAP

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

WebServices將改變我們?cè)O(shè)計(jì)應(yīng)用程序的方式,因?yàn)槲覀兛梢詫⑽挥贗nternet各個(gè)角落的功能集成到一個(gè)單一的定制化程序當(dāng)中。顯然,Web應(yīng)用程序很適合使用這種程序設(shè)計(jì)方式。但是客戶(hù)端程序也可以使用這種方式得以實(shí)現(xiàn),這使得豐富的用戶(hù)界面同廣泛的分布式服務(wù)可以完美結(jié)合在一起。對(duì)于MicrosoftWindows®PoweredPocketPC來(lái)說(shuō),這也是一種完美的手段,因?yàn)樗哂袕?qiáng)大的用戶(hù)界面和熟悉的編程平臺(tái),而且同臺(tái)式機(jī)相比,它具有相對(duì)較低的資源占用量(內(nèi)存等等)。因?yàn)镾OAP協(xié)議相當(dāng)小巧,如果您想為設(shè)備添加無(wú)線(xiàn)訪(fǎng)問(wèn)功能,您可以通過(guò)無(wú)處不在的功能和服務(wù)實(shí)現(xiàn)強(qiáng)大的解決方案,從而對(duì)現(xiàn)有系統(tǒng)進(jìn)行極大擴(kuò)展。“集成點(diǎn)”式的Web服務(wù)器離您正在越來(lái)越近。它就在那里,在您的手上!

如何調(diào)用WebServices

在您的桌面PC上,您首先應(yīng)該下載SOAPToolkit,然后您可以使用ROPE(RemoteObjectProxyEngine,遠(yuǎn)程對(duì)象代理引擎)從任何語(yǔ)言中調(diào)用WebServices。ROPE是一個(gè)DLL(動(dòng)態(tài)鏈接庫(kù)),它提供了Web服務(wù)開(kāi)發(fā)所需的核心功能和基礎(chǔ)結(jié)構(gòu),并且使您可以使用熟悉的編程方式實(shí)現(xiàn)Web服務(wù)。它允許客戶(hù)端訪(fǎng)問(wèn)某個(gè)WebService,只要該客戶(hù)端是一個(gè)本地COM對(duì)象即可。但是,在PocketPC上,現(xiàn)在還沒(méi)有任何可用的ROPE實(shí)現(xiàn)。我說(shuō)“現(xiàn)在還沒(méi)有”是因?yàn)槲蚁嘈牛何磥?lái)必將出現(xiàn)可在PocketPC上使用的WebServices(SOAP)和其它一些.NET部件。

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

WebServices能做什么?

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

圖1:PocketPC上的示例ROPE客戶(hù)端程序。

通過(guò)這個(gè)客戶(hù)程序,您可以使用Microsoft在SOAPToolkit中提供的WebService示例從Internet上實(shí)時(shí)獲知股票價(jià)格。您還可以從托管這些服務(wù)的服務(wù)器上得到當(dāng)前時(shí)間,以及由美國(guó)海軍天文臺(tái)提供的UTC(CoordinatedUniversalTime)時(shí)間。最后,您還可以方便地使用一個(gè)向公眾開(kāi)放的翻譯服務(wù)(就在您自己的程序內(nèi)部)。非常酷!

代碼研究

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

DimlavParameters(2)AsVariant

DimlsAsString

‘Setparameters

lavParameters(1)=txtSymbol.Text

lavParameters(2)="anycompany"

‘MakeSOAPcall

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

chkShowPackets.Value=1)

‘Showresult

MsgBox"Shareprice="&ls

代碼說(shuō)明:

因?yàn)閑MbeddedVisualBasic的功能參數(shù)中缺少ParamArray選項(xiàng),我們必須手動(dòng)將該參數(shù)添加到Variant數(shù)組中。

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

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

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

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

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

因?yàn)镾OAPCall函數(shù)是在ROPE.bas模塊中實(shí)現(xiàn)的,對(duì)WebServices的調(diào)用過(guò)程非常簡(jiǎn)單。

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

‘SetPayload

lsRequest=lsRequest&""&vbCrLf

lsRequest=lsRequest&"

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

/encoding/"">"&vbCrLf

lsRequest=lsRequest&""&vbCrLf

"&vbCrLf

lsRequest=lsRequest&"<"&Method&">"&vbCrLf

lsParameterOrder=GetParameterOrder(psServicesDescription,Method)

IflsParameterOrder<>""Then

lasParameterOrder=Split(lsParameterOrder,"")

Fori=0ToUBound(lasParameterOrder)

lsRequest=lsRequest&"<"&lasParameterOrder(i)&">"&CStr(Arguments(i+1))

&""&vbCrLf

Nexti

EndIf

lsRequest=lsRequest&""&vbCrLf

lsRequest=lsRequest&"

 

 

 

lsRequest=lsRequest&""

‘GetListener

lsListener=GetListener(psServicesDescription)

‘CreateXMLHTTPobject

SetloXMLHTTP=CreateObject("Microsoft.XMLHTTP")

‘OpenURLtoListener

loXMLHTTP.Open"POST",lsListener,False,"",""

‘Setheaderinfo

loXMLHTTP.setRequestHeader"SOAPAction",Method

loXMLHTTP.setRequestHeader"Content-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

代碼說(shuō)明:

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

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

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

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

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

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

運(yùn)行服務(wù)

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

如果您想對(duì)新出現(xiàn)的WebServices保持跟蹤,請(qǐng)?jiān)L問(wèn)MicrosoftUDDI(UniversalDescription,DiscoveryandIntegration)站點(diǎn)。UDDI的目標(biāo)是創(chuàng)建一個(gè)全球化的WebServices存儲(chǔ)庫(kù),您可以使用它查找所需的功能和服務(wù)--甚至是來(lái)自某個(gè)應(yīng)用程序的實(shí)時(shí)服務(wù),包括Microsoft、IBM、Sun、Oracle在內(nèi)的主要廠商和其它100多家廠商都支持UDDI。

如果您決定在Internet上發(fā)布某個(gè)Web服務(wù),請(qǐng)及時(shí)通知我--我想先試試它們!

未來(lái)會(huì)怎樣

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

相關(guān)鏈接

如果您想了解同.NET有關(guān)的更多信息,請(qǐng)?jiān)L問(wèn)Microsoft.NET頁(yè)面。

如果您想了解同SOAP有關(guān)的更多信息,請(qǐng)?jiān)L問(wèn)MSDNSOAP開(kāi)發(fā)資源頁(yè)面。

如果您想了解同ROPE有關(guān)的更多信息,請(qǐng)?jiān)L問(wèn)MSDNMagazine文章“WebService開(kāi)發(fā):立即上手使用SOAPToolkitforVisualStudio”。

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

小結(jié)

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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

上海2026年3月23日 /美通社/ -- 近日,Lucanet藍(lán)科中國(guó)(簡(jiǎn)稱(chēng)"藍(lán)科中國(guó)")受邀參加2026上海全球投資促進(jìn)大會(huì),與來(lái)自全球的投資者、企業(yè)代表齊聚上海東方樞紐國(guó)際商務(wù)合作區(qū),圍繞&qu...

關(guān)鍵字: CAN NET PLAYER ASIA

Nscale收購(gòu)Monarch計(jì)算園區(qū)——美國(guó)首個(gè)獲州認(rèn)證的AI微電網(wǎng),現(xiàn)場(chǎng)供電能力最高可擴(kuò)展至8吉瓦以上 Nscale與Microsoft簽署意向書(shū),提供高達(dá)1....

關(guān)鍵字: NVIDIA MICROSOFT GPU TE

DXC宣布與Euronet達(dá)成戰(zhàn)略合作,擴(kuò)展全球發(fā)卡與支付能力 弗吉尼亞州阿什本2026年1月22日 /美通社/ -- 全球企業(yè)技術(shù)與創(chuàng)新合作伙伴DXC Technology(NYSE:DXC)今日宣布,其已與領(lǐng)先的全...

關(guān)鍵字: NET TECHNOLOGY SE IDE

上海2026年1月20日 /美通社/ -- 近日,Lucanet藍(lán)科大股東、全球知名軟件投資機(jī)構(gòu)Hg宣布以約64億美元收購(gòu)并私有化財(cái)務(wù)績(jī)效管理巨頭OneStream(納斯達(dá)克代碼:OS)。 *OneStrea...

關(guān)鍵字: CAN NET STREAM 軟件

香港2025年12月19日 /美通社/ -- 全球領(lǐng)先的互聯(lián)網(wǎng)社區(qū)創(chuàng)建者 - 網(wǎng)龍網(wǎng)絡(luò)控股有限公司 ("網(wǎng)龍"或"本公司",香港交易所股票代碼:777)欣然宣布,其子公司My...

關(guān)鍵字: AMS MICROSOFT TE AI

雙方將通過(guò)協(xié)同創(chuàng)新,推出AI驅(qū)動(dòng)的解決方案,融合Microsoft可信的云服務(wù)與Cognizant的行業(yè)平臺(tái),助力企業(yè)重塑工作方式并實(shí)現(xiàn)創(chuàng)新規(guī)?;?。 新澤西州蒂內(nèi)克2025年12月19日 /美通社/ -- Cogniz...

關(guān)鍵字: MICROSOFT NI AN AI

上海2025年12月2日 /美通社/ -- 11月26日,Lucanet藍(lán)科中國(guó)受邀參加備受業(yè)界矚目的"財(cái)界奧斯卡"盛會(huì) —— CGMA2025全球管理會(huì)計(jì)年度中國(guó)大獎(jiǎng)暨CFO高峰論壇。此次盛會(huì)匯聚了...

關(guān)鍵字: CAN NET 可持續(xù)發(fā)展 智能化

上海2025年11月28日 /美通社/ -- 11月27日,國(guó)際獨(dú)立第三方檢測(cè)、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國(guó)萊茵TÜV大中華區(qū)(簡(jiǎn)稱(chēng)"TÜV萊茵"...

關(guān)鍵字: 可持續(xù)發(fā)展 NET ST 信息安全

Cognizant收購(gòu)3Cloud,塑造Microsoft Azure服務(wù)與企業(yè)AI轉(zhuǎn)型行業(yè)領(lǐng)軍力量 推動(dòng)Cognizant的AI構(gòu)建者戰(zhàn)略,賦能客戶(hù)在面向AI驅(qū)動(dòng)運(yùn)營(yíng)的現(xiàn)代化基礎(chǔ)設(shè)施上快速構(gòu)建、部署并擴(kuò)展企業(yè)級(jí)...

關(guān)鍵字: NI AN AZURE MICROSOFT

深圳2025年11月12日 /美通社/ -- 在第七屆中國(guó)超級(jí)算力大會(huì)(ChinaSC 2025)上,四通集團(tuán)憑借其在智能算力基礎(chǔ)設(shè)施領(lǐng)域的系統(tǒng)性布局與實(shí)踐探索,榮膺"2025中國(guó)算力卓越企業(yè)"獎(jiǎng)項(xiàng),...

關(guān)鍵字: AI 智能化 NET SPI
關(guān)閉