2010-03-26 100 views
20

有大量的信息介紹如何使用.NET RIA服務的Silverlight應用程序,但目前尚不清楚是什麼RIA獨特的東西是不存在的WCF?RIA服務與WCF服務:什麼是差異

下面是圍繞這個話題談論幾個主題:[1][2]

但他們並沒有給出答案的問題。

對不起,這個愚蠢的問題,但如果你已經有Silverlight <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database 012xx圖層會帶來什麼?驗證?驗證?它對你來說是相當寶貴的嗎?

目前我唯一看到的情況是:使用RIA服務時,您不需要手動託管WCF服務,也不需要在客戶端配置任何引用(客戶端== Silverlight應用程序)。

大概我不知道RIA服務的一些非常有用的功能?那麼,請你指出我的好文件嗎?

非常感謝。

P.S.我已經閱讀了許多關於差異的不同文章,但無法澄清它......所有文章都是「四處講述」,並不具體。如果你打算給我一個額外的文章的鏈接,你可以請你如此善良,並提供你看到的好處列表。

回答

12

實際上,您可以在不使用RIA服務的情況下使用相同的驗證和身份驗證。 RIA Services爲您提供的是代碼生成。它爲你創造你的課程。你只需要把商業邏輯。我認爲RIA Services對於快速開發中小型應用程序非常有用。

另一個區別是它隱藏了對Web服務的異步調用。許多人不喜歡異步模型(這是Silverlight中唯一可以使用的模型),而RIA服務可以爲你處理。

我建議你閱讀這篇文章,肖恩Wildermuth他指出,從兩種方法的利弊,還包括ADO.NET數據服務(現在被稱爲WCF數據服務,我認爲):

http://wildermuth.com/2009/09/29/Choosing_a_Data_Access_Layer_for_Silverlight_3

+0

Arturo,謝謝你的鏈接,它給了一些思考...但無論如何,它不是我清楚什麼是RIA的好處。我從鏈接文章中得到的唯一新東西是:RIA服務與WebServices(或使用WsHttpBasic傳輸協議的WCF)非常相似,並提供了將LinQ查詢應用於被調用方法的附加功能。他們會在服務器端執行嗎?這是全部嗎? – Budda 2010-03-26 20:18:27

+0

是的,他們將在服務器端執行。 RIA服務包括過濾器描述符,允許您將標準一直傳遞到數據庫,這是它們應該發生的地方。除此之外和上述原因,是的,這一切都是:-)對我來說,你得到的代碼是它的不同之處。 – 2010-03-31 04:45:46

+0

Arturo,您如何在不重複代碼的情況下將驗證邏輯複製到客戶端? – bob 2010-03-31 10:10:28

4

嗯,我不同意以前發佈的答案。 WCF Ria Sercices是一個偉大的建築,時代已經證明。我寧願看看http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx

其實我使用WCF RIA服務在大型LOB應用程序針對1500+當代的用戶。我已經大量使用客戶端代碼生成定製(詳情請參閱Varun's blog),但是我可以通過silverlight使用LINQ,並且我可以在上下文中的實體之間自動選擇懶惰或渴望加載。請不要忘記,WCF Ria Services的其他範例也允許使用OutputCache。

不是提到,由於定製metadataprovider可以極大地方便了客戶端的生成和數據的序列化到客戶端。我相信如果你的Silverlight應用程序是基於上下文的,你肯定可以使用WCF Ria Services。 希望這可以幫助, Marco