Что такое службы WCF RIA?
Я ненавижу сайт MSDN для служб WCF RIA. Он не говорит, что это такое, он только говорит, что он делает. Он говорит, что он может достичь, но не говорит, Почему мне это нужно.
например:
" общая проблема при разработке N-уровневое решение РИА координирует логика применения между серединой уровень и уровень представления".
Ну, для меня это ничего не значит.
" RIA Services решает эту проблему от предоставления компонентов, инструментов, и услуги, которые делают приложение логика на сервере доступна для Клиент RIA, не требуя от вас вручную дублируйте это программирование логика. Вы можете создать клиент RIA то есть в курсе бизнес-правил и знайте, что клиент работает автоматически обновлено с последней логикой среднего уровня каждый раз, когда решение повторно скомпилирован."
Так он загружает DLL с сервера? Это метаданные, описывающие правила для данных?
Так что это? Это просто дополнение VS 2010 для RAD? Или это технология поверх WCF или под ним или что? Где он живет? С данными с сервером, что ли?
Я ценю, если вы можете подвести меня, пожалуйста.
2 ответа:
службы RIA-это серверная технология, которая автоматически генерирует объекты на стороне клиента (Silverlight), которые обеспечивают связь с сервером для вас и обеспечивают проверку на стороне клиента.
главный объект в РИА-сервис-это
DomainService
, обычно aLinqToEntitiesDomainService
это связано с моделью 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, они были с открытым исходным кодом: