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