Что такое службы WCF RIA?

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

например:

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

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

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

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

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

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

2 ответов


RIA services-это серверная технология, которая автоматически генерирует объекты на стороне клиента (Silverlight), которые заботятся о связи с сервером для вас и обеспечивают проверку на стороне клиента.

основным объектом внутри службы RIA является DomainService, обычно a 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 мертвы:

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

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

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