c# - 什麼是WCF RIA服務?




.net (2)

我討厭MSDN的WCF RIA服務網站。 它沒有說明它是什麼,它只是說它做了什麼。 它說明了它可以實現的目標,但並沒有說明為什麼我需要它。

例如:

“開發n層RIA解決方案時的一個常見問題是協調中間層和表示層之間的應用程序邏輯”。

那對我來說沒有多大意義。

“RIA Services通過提供框架組件,工具和服務來解決這個問題,這些組件,工具和服務使RIA客戶端可以使用應用程序邏輯,而無需您手動複製該編程邏輯。您可以創建一個RIA客戶端,以了解業務規則並且知道每次解決方案重新編譯時,客戶端都會自動使用最新的中間層邏輯進行更新。“

那麼它從服務器下載DLL? 它是描述數據規則的元數據嗎?

那它是什麼? 它僅僅是一個VS 2010的RAD附加組件嗎? 或者它是在WCF之上還是在它之下的技術? 它在哪裡生活? 隨著數據,與服務器,什麼?

我很感激,如果你能為我總結這個請。


RIA服務是一種服務器端技術,可自動生成客戶端(Silverlight)對象,以便為您處理與服務器的通信並提供客戶端驗證。

RIA服務中的主要對DomainService ,通常是連接到LinqToEntities模型的LinqToEntitiesDomainService。

RIA服務中要記住的關鍵是它主要是一個複雜的構建技巧。 創建域服務並編譯解決方案時,會生成域服務的客戶端表示。 該客戶端表示具有相同的接口。 假設您使用IQueryable<Customer> GetCustomersByCountry方法創建服務器端域服務CustomerService 。 當您構建解決方案時,將在您的Silverlight項目中生成名為CustomerContext的類,該類具有GetCustomersByCountryQuery方法。 您現在可以在客戶端上使用此方法,就好像您在服務器上調用它一樣。

更新,插入和刪除遵循不同的模式。 創建域服務時,可以指示是否要啟用編輯。 然後在服務器端域服務中生成更新/插入/刪除的相應方法。 但是,客戶端部分沒有這些方法。 你在你的CustomerContext有一個叫做SubmitChanges的方法。 那麼這是如何工作的:

  • 對於更新,您只需更新現有客戶的屬性(通過GetCustomersByCountryQuery檢索到)。
  • 對於插入,您使用CustomerContext.Customers.Add(new Customer(...) {...})
  • 對於刪除,您使用CustomerContext.Customers.Remove(someCustomer)

編輯完成後,您可以調用CustomerContext.SubmitChanges()

至於驗證,您可以使用System.ComponentModel.DataAnnotations命名空間中的驗證屬性修飾您的服務器端對象。 同樣,當您構建項目時,現在會自動為相應的客戶端對像生成驗證代碼。

我希望這個解釋能夠幫助你更進一步。






ria