Что такое услуги WCF RIA? - PullRequest
       9

Что такое услуги WCF RIA?

98 голосов
/ 10 сентября 2010

Я ненавижу сайт MSDN для услуг WCF RIA. Он не говорит, что это такое, он только говорит, что он делает. Он говорит, чего он может достичь, но не говорит, зачем мне это нужно.

Например:

"Распространенная проблема при разработке Решение n-уровня RIA координирует логика приложения между серединой уровень и уровень представления ".

Ну, для меня это ничего не значит.

"RIA Services решает эту проблему путем обеспечение рамочных компонентов, инструментов, и услуги, которые делают заявку логика на сервере доступна для RIA клиент, не требуя от вас вручную скопировать это программирование логика. Вы можете создать клиент RIA который знает о бизнес-правилах и знать, что клиент автоматически обновлен новейшей логикой среднего уровня каждый раз, когда решение перекомпилировано. "

Так он загружает DLL с сервера? Это метаданные, описывающие правила для данных?

Так что это? Это просто надстройка VS 2010 для RAD? Или это технология поверх WCF или под ней или как? Где оно живет? С данными, с сервером, что?

Я ценю, если вы можете обобщить это для меня, пожалуйста.

Ответы [ 2 ]

103 голосов
/ 10 сентября 2010

Службы 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. Опять же, когда вы строите свой проект, код проверки теперь автоматически генерируется для соответствующих клиентских объектов.

Надеюсь, это объяснение поможет вам немного дальше.

8 голосов
/ 22 ноября 2014

Последние новости: WCF RIA Services не работает:

http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/

Если вы хотите использовать RIA Services, они были открыты:

http://www.openriaservices.net/blog/posts/

...