欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flex和.NET協(xié)同開(kāi)發(fā)利器FluorineFx Flex與.NET互操作

 更新時(shí)間:2009年06月15日 20:09:42   作者:  
在本系列前面幾篇文章中分別介紹了通過(guò)WebService、HTTPService、URLLoader以及FielReference等組件或類(lèi)來(lái)完成Flex與.NET服務(wù)端的通信的相關(guān)知識(shí)點(diǎn)。

通過(guò)這些方式來(lái)完成與服務(wù)端的通信是非常方便和簡(jiǎn)單的,但有他的缺點(diǎn)就是通信數(shù)據(jù)量較小,如要傳輸大量的數(shù)據(jù)或是實(shí)現(xiàn)不同對(duì)象的序列化傳輸,它們則滿足不了我們的需求,需要尋找另外一種通信協(xié)議,另一種高效的傳輸協(xié)議來(lái)代替SOAP協(xié)議傳輸?shù)姆桨福潜闶茿MF(ActionScript Message Format)協(xié)議。

     開(kāi)源項(xiàng)目FluorineFx就是專(zhuān)門(mén)針對(duì).NET平臺(tái)與Flex通信提供的AMF協(xié)議通信網(wǎng)關(guān),我們可以通過(guò)FluorineFx很方便的完成與.NET的通信。

     FluorineFx官方提供了安裝包的下載和在線文檔,可以幫助我們有效的利用FluorineFx來(lái)開(kāi)發(fā)。 

     FluroineFx官方網(wǎng)站:http://www.fluorinefx.com/    

     FluroineFx下載地址:http://www.fluorinefx.com/download.html

     FluroineFx在線文檔:http://www.fluorinefx.com/docs/fluorine/index.html

     

     OK,下面我們來(lái)看看使用FluroineFx通信的.NET和Flex配置。開(kāi)發(fā)環(huán)境選擇如下:

     .NET:Microsoft Visual Studio 2008 + .NET Framework 3.5

     Flex:Adobe Flex Builder CS3 + Flex SDK 3.2

     FluroineFx:FluorineFx v1.0.0.15 (點(diǎn)擊可下載)

 一、.NET服務(wù)端的開(kāi)發(fā)

     通過(guò)Microsoft Visual Studio 2008 創(chuàng)建創(chuàng)建解決方案,并添加FluroineFx服務(wù)器庫(kù),如下圖示:

     FluorineFx服務(wù)庫(kù)添加成功后會(huì)發(fā)現(xiàn),項(xiàng)目模板會(huì)自動(dòng)為我們創(chuàng)建一個(gè)Sample類(lèi)和一個(gè)Echo方法,如下:

 1 namespace FlexDotNet.ServiceLibrary
 2 {
 3     /// <summary>
 4     /// Fluorine sample service.
 5     /// </summary>
 6     [RemotingService("Fluorine sample service")]
 7     public class Sample
 8     {
 9         public Sample()
10         {
11         }
12 
13         public string Echo(string text)
14         {
15             return "Gateway echo: " + text;
16         }
17     }
18 }

     接著添加FluorineFx 網(wǎng)站到解決方案,添加成功后網(wǎng)站會(huì)自動(dòng)引用FluorineFx服務(wù)庫(kù)的dll。如下圖:

     到這里我們可以簡(jiǎn)單的測(cè)試FluorineFx的.NET服務(wù)端是否成功創(chuàng)建。通過(guò)在瀏覽器中查看FluroineFx網(wǎng)站中的Console.aspx或是將網(wǎng)站設(shè)置為啟動(dòng)項(xiàng)目并設(shè)置Console.aspx為啟始頁(yè)運(yùn)行網(wǎng)站都可以,程序便會(huì)運(yùn)行到FluorineFx的控制臺(tái),展開(kāi)左邊項(xiàng)目的Services節(jié)點(diǎn)便會(huì)看到上面模板為我們創(chuàng)建的類(lèi)和方法,點(diǎn)擊方法節(jié)點(diǎn)在右邊就可以進(jìn)行簡(jiǎn)單的測(cè)試了,如下圖示:

     

     OK,到這里.NET的服務(wù)器端就開(kāi)發(fā)完成了,這里我們需要記住幾點(diǎn),在接下來(lái)的Flex開(kāi)發(fā)中需要根據(jù)這些參數(shù)來(lái)進(jìn)行配置。

     FluorineFx的.NET網(wǎng)站目錄:F:\Demo\FlexDotNet\Web

     FluorineFx的.NET網(wǎng)站虛擬目錄:/Web

     FluorineFx的.NET網(wǎng)站URL:http://localhost:2836/Web

     接受Flex客戶(hù)端請(qǐng)求的URL:http://localhost:2836/Web/Gateway.aspx

     有了上面這些東西配置Flex就簡(jiǎn)單了,首先創(chuàng)建Flex項(xiàng)目,并將項(xiàng)目路徑指向前建立的FluorineFx網(wǎng)站的根路徑:

     如上圖,將Application type設(shè)置為:Web application,Application Server type設(shè)置為:ASP.NET,然后“Next”。進(jìn)入下一個(gè)創(chuàng)建項(xiàng)目向?qū)Ы缑?,將Server設(shè)置為:"Use Internet Information Services (IIS)",Web Application root同樣指向FluorineFx網(wǎng)站的根路徑,Web Appliation URL則設(shè)置為上面我們獲取到的路徑便OK,詳細(xì)見(jiàn)下圖:

     按照上面步驟配置好后通過(guò)點(diǎn)擊“Validate Configuration”進(jìn)行配置驗(yàn)證,如過(guò)驗(yàn)證結(jié)果是: The web application root and the URL are valid.則代表配置正確,可以直接點(diǎn)下一步只到完成項(xiàng)目的創(chuàng)建。

     Flex項(xiàng)目創(chuàng)建完畢,下面在通過(guò)一些相應(yīng)的配置就可以通過(guò)FluorineFx和.NET通信了。開(kāi)發(fā)項(xiàng)目屬性設(shè)置面板,設(shè)置其Flex Compiler為下圖所示(-services的配置也可以設(shè)置為相對(duì)路徑):

     設(shè)置Flex Server為如下配置,可以點(diǎn)“Validate Location”驗(yàn)證設(shè)置的正確性:

     最后設(shè)置輸出路徑就完成了Flex端的配置了:

     到這里Flex端的配置就全部完成,下面我們通過(guò)FluorineFx庫(kù)模板為我們生成的Sample為例來(lái)測(cè)試下該環(huán)境是否可以通過(guò),在Flex的mxml文件下通過(guò)<mx:RemoteObject>標(biāo)簽來(lái)訪問(wèn)遠(yuǎn)程對(duì)象,詳細(xì)如下:

1 <mx:RemoteObject id="service" destination="fluorine"
2     source="FlexDotNet.ServiceLibrary.Sample">
3         <mx:method name="Echo" result="onResult(event)">
4         </mx:method>
5 </mx:RemoteObject>

     這里需要注意的是destination需要設(shè)置為與remoting-config.xml中的destination的id一致,source則配置為遠(yuǎn)程對(duì)象的全路徑(名稱(chēng)空間+類(lèi)),通過(guò)<mx:method>標(biāo)簽配置遠(yuǎn)程對(duì)象下的方法并設(shè)置其成功調(diào)用后的結(jié)果處理函數(shù),下面便可通過(guò)id去調(diào)用遠(yuǎn)程方法了。

 1 <mx:Script>
 2     <![CDATA[
 3         import mx.rpc.events.ResultEvent;
 4         internal function onClick():void
 5         {
 6             service.Echo(txtInput.text);
 7         }
 8         
 9         internal function onResult(evt:ResultEvent):void
10         {
11             txtResult.text = evt.result.toString();
12         }
13     ]]>
14 </mx:Script>

下面是完整的Flex客戶(hù)端mxml的代碼定義:

完整的示例代碼

本文示例截圖:
     

相關(guān)文章

最新評(píng)論