2010-09-11 193 views
3

我對silverlight非常陌生,而且我正在走向哪條路。我正在計劃我的新項目的計劃階段,這個階段應該建立在Silverlight之上。問題是我想在服務器端擁有自己的DAL - > BLL,而與Silverlight交談的WCF服務也應該可以被其他應用程序使用,包括其他技術,如Java。 我知道在4版本中,MS提供了RIA服務來處理業務邏輯任務和EF進行數據處理,但我根本不想使用EF。 所以你有什麼建議選擇哪種方式的缺點和優點?使用Silverlight應用程序時,RIA服務與標準WCF服務相比有什麼缺點?可移植性如何?從Java中消耗它例如?Silverlight 4 WCF或RIA服務

謝謝

回答

1

RIA服務是一個位於WCF之上的圖層。它旨在通過EF或LINQ to SQL實現高級用法。您也可以混合使用您自己的自定義WCF服務,並且可以使用RIA和您自己的自定義邏輯,數據/實體機制以及您的自定義DTO(但您將失去RIA提供的大部分優點)。

RIA服務的關鍵在於它允許自動執行LINQ查詢並在客戶端自動生成一些非常高級的代理類。這允許客戶端使用RIA服務,就好像查詢執行在客戶端上是本地的,但是這些查詢實際上在服務器上執行。 RIA Services的缺點是它主要是MS only技術(至少在這個版本中)。從理論上講,你可以從Java客戶端與RIA交談,但是這樣你幾乎沒有什麼優勢;如果您要支持其他客戶端,最好建議使用WCF手動構建您的服務器服務。

一個例外是RIA可以生成oData端點。這在非MS客戶端場景中可能非常有用,但前提是oData適合您的情況。 RIA服務雖然非常新,所以在嘗試將它用於非Silverlight客戶端之前,我會等待下一個版本。

0

RIA服務不綁定到實體框架。你可以使用任何你想要的數據訪問技術,並將其公開爲RIA服務。 RIA服務優於普通WCF的優勢在於它簡化了大部分必要的管道工作。

+0

這就是我想知道的。 RIA服務是如何簡化的?我真的不知道,從來沒有與RIA和Silverlight合作過,在網絡中,我只能找到關於RIA + EF模型的信息,這就是爲什麼我在這裏問。 – Davita 2010-09-11 11:13:24

+0

一個示例是使用模型類上的DataAnnotations進行的服務器端驗證將自動轉換到客戶端,而無需任何代碼。它還提供了諸如身份驗證和角色等常見任務。 – 2010-09-11 11:23:10