Я ненавижу сайт MSDN за услуги WCF RIA. Он не говорит, что это такое, он только говорит, что делает. Он говорит о том, чего можно достичь, но не говорит, зачем мне это нужно.
Например:
«Распространенной проблемой при разработке n-уровневого решения RIA является координация логики приложения между средним уровнем и уровнем представления».
Что ж, для меня это ничего не значит.
«Службы RIA решают эту проблему, предоставляя компоненты, инструменты и службы инфраструктуры, которые делают логику приложения на сервере доступной для клиента RIA без необходимости вручную дублировать эту логику программирования. Вы можете создать клиент RIA, который знает о бизнес-правилах. и знайте, что клиент автоматически обновляется с использованием последней логики среднего уровня каждый раз при повторной компиляции решения ".
Так он загружает библиотеки DLL с сервера? Это метаданные, описывающие правила для данных?
Так что это? Это просто надстройка VS 2010 для RAD? Или это технология поверх WCF или ниже, что ли? Где оно живет? С данными, с сервером, что?
Буду признателен, если вы можете резюмировать это для меня, пожалуйста.
Ответы:
Службы RIA - это серверная технология, которая автоматически генерирует объекты на стороне клиента (Silverlight), которые обеспечивают связь с сервером за вас и обеспечивают проверку на стороне клиента.
Главный объект внутри службы RIA - это
DomainService
, как правило, объектLinqToEntitiesDomainService
, подключенный к модели LinqToEntities.Главное, что нужно помнить в службах RIA, - это в основном изощренный трюк при сборке. Когда вы создаете службу домена и компилируете решение, создается клиентское представление службы домена. Это клиентское представление имеет тот же интерфейс. Предположим, вы создаете службу домена на стороне сервера
CustomerService
с помощью методаIQueryable<Customer> GetCustomersByCountry
. Когда вы строите свое решение, внутри вашего проекта Silverlight создается класс,CustomerContext
который имеет методGetCustomersByCountryQuery
. Теперь вы можете использовать этот метод на клиенте, как если бы вы вызывали его на сервере.Обновления, вставки и удаления выполняются по другому шаблону. При создании службы домена вы можете указать, хотите ли вы разрешить редактирование. Соответствующие методы обновления / вставки / удаления затем создаются в серверной службе домена. Однако в клиентской части этих методов нет. У вас есть
CustomerContext
метод, называемыйSubmitChanges
. Так, как это работает:GetCustomersByCountryQuery
).CustomerContext.Customers.Add(new Customer(...) {...})
.CustomerContext.Customers.Remove(someCustomer)
.Когда вы закончите редактирование, вы звоните
CustomerContext.SubmitChanges()
.Что касается проверки, вы можете украсить свои серверные объекты атрибутами проверки из
System.ComponentModel.DataAnnotations
пространства имен. Опять же, когда вы создаете свой проект, теперь автоматически создается код проверки для соответствующих клиентских объектов.Надеюсь, это объяснение поможет вам в дальнейшем.
источник
Последние новости: WCF RIA Services мертв:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
Если вы хотите использовать Службы RIA, их исходный код открыт:
http://www.openriaservices.net/blog/posts/
источник