2011-01-31 54 views
0

我們有一個Flex應用程序,它非常依賴通過asp.net提供的數據驅動內容。目前,大部分數據都是通過asp.net對象提供的,然後通過一個簡單的ASHX處理程序進行XML序列化併發送。然後通過e4x在單例類中對其進行解析,以填充其自身或子類的數組,然後可用於應用程序的其餘部分而無需進行額外的數據調用。Flex&WebServices

這有效,但它是最好的方法?我讀過不少文章討論這個問題,但無法找到任何共識。

我應該考慮將這些轉換爲Web服務嗎?如果是這樣,我應該如何管理綁定,通過Flex自動導入它們或構建自己的綁定?優缺點都有什麼。這個決定中的一個重要因素是速度,最低延遲和最高吞吐量是至關重要的

作爲一個單獨的問題,我們的應用程序不坐在域的根,並在本地開發數據調用我們的開發服務器。因此,我們在應用程序中添加閃存變量以指定appRoot,然後根據需要將它附加到服務url。

MyService.url = GeneralData.ApplicationRootUrl + "Services/foobar.ashx"; 

這是最好的方法嗎?我已經發現了rootURL屬性,我應該使用它,在這種情況下它是如何工作的?如果我將服務轉換爲Web服務,我將如何去實現相同的功能以允許本地開發?

非常感謝

回答

1

這工作,但它是最好的方式?

根據您的情況,最好是非常主觀的。如果可能的話,我會建議你使用AMF網關。這樣,您的對象可以立即從服務器端對象(.NET類)轉換爲客戶端對象(AS3類)。節省大量時間,因爲您不必在後端手動創建XML,也無需在前端手動處理它。此外,AMF的二進制格式將提供比XML或SOAP WebService更小的數據包。

對於.NET AMF的選擇,我會考慮WebORBFlourineFX

+0

研究,但基於我們目前的環境目前不太實際。還是)感謝你的建議 – Hawxby 2011-02-23 23:42:40

0

Flex應用程序總是加載在瀏覽器中,你可以使用相對URL,這樣你的應用程序將從它是連接到同一臺服務器加載。

MyService.url = "/Services/foobar.ashx"; 

「/」肯定會附加它來自的主機。連接到從其加載閃存的相同主機始終是一種很好的做法。其次,SOAP Web服務使用xml序列化,因此如果使用您的處理程序執行e4x序列化,或者使用Flash Builder的SOAP Web服務生成器,則速度將幾乎相同。 SOAP Web服務肯定會慢一些,但差別在微秒到毫秒之間。

但是,使用Web服務,您的開發速度將會加快,因爲您不必創建代理類。