2009-06-12 152 views
14

我只是介紹自己Silverlight 3和它的前身之間的基本區別。查看RIA服務中的域服務類,執行似乎相當簡單。有人可以解釋這個和Windows Communication Foundation之間的基本區別嗎?WCF和RIA服務域服務類有什麼區別?

域服務類是否在後臺使用WCF或其他服務框架,還是從頭開始是新的?

回答

17

我建議你閱讀this blog article其中提到:

我們對RIA服務的思想工作真的長大了LINQ項目的幾年前。 LINQ將查詢語義集成到語言(C#,VB等)中,提供了處理數據的通用抽象;無論這些數據是在內存CLR對象,XML,關係數據還是其他任何內容中。藉助RIA服務,我們通過提供一個通過LINQ公開您的域邏輯的規範模型來擴展這種模式。我們認爲域邏輯是您的應用程序中與您的域非常相關的部分 - 這是您正在解決的特定業務問題。

所以它是'域邏輯'什麼LINQ是數據,而WCF本質上只是一個服務提供者。

在傳統的N層開發,這意味着:

...你應該把RIA Services看作是ADO.NET Data Services和WCF之上更智能的一層......我們也期待最終提供對底層WCF服務(如高度優化的二進制序列化)的所有功能和靈活性的完全訪問。

或者你也可以選擇使用新的「RIA服務模式」的選項:

...構建ASP.NET應用程序中輕鬆而採取的所有內置的RIA服務的功能優勢如數據驗證,授權等。在3月份的預覽中,我們提供了一個asp:DomainDataSource控件,可以非常輕鬆地通過ASP.NET WebForms訪問您的域邏輯。在此基礎上構建ASP.NET動態數據的未來版本,可以非常容易地根據您的域邏輯生成通用的標準用戶界面。

這一基本意味着,RIA服務可以:

它也是值得檢查Mix09: Building Amazing Business Applications with Silverlight 3又例如用RIA服務更換WCF層。

我在寫這個我剛剛發現Microsoft's .NET RIA Services Overview看起來像它解釋了很多RIA服務背後的理性的(也可能略高於上述一些:)

+0

很好的回答!目前我非常確定RIA服務始終位於WCF之上(構建一個數據驅動的費用應用程序w SL3文章未另行說明)。你能否用一個顯示RIA服務不使用WCF的特定示例更新你的文章? – 2009-06-12 12:08:14

2

我們使用的組合更清晰都是。WCF用於大型數據,對於CRUD實體的二進制序列化和RIA效果更好,因爲代碼編寫和維護速度快得多。如果RIA支持二進制文件,我們將使用它來代替WCF,但我非常確定它不在當前發行版本中。

1

WCF有更多選項可以在RIA中進行調試。域數據源更容易設置,但更難以找出錯誤。 在很多情況下,WCF將用於製作一個互操作性通信系統,該系統使用WSSE頭部安全性對舊的WSDL進行分解。