Сложные бизнес-объекты, бизнес-логика и клиентский код Silverlight

Предположим, у вас есть 2 класса: Студент и Курс, и Курс может быть добавлен к студенту с помощью метода на Студента.

class Course{ public string Name;}
class Student {
 public string Name;
 private List<Course> courses = new List<Course>();
 public ReadOnlyCollection<Course> Courses {get {return courses.AsReadOnly();}}
 public Add(Course course) { if (courses.Count <= 3) courses.Add(course);}
}

Выше были бы бизнес-объекты на сервере, а метод Add мог бы иметь еще больше бизнес-логики.

Теперь, когда бизнес-объект должен отображаться в клиенте Silverlight, мне нужно было бы создать веб-сервис, который предоставил бы метод, который мог бы отправлять объект Student клиенту.

У меня вопрос: нужно ли копировать бизнес-логику на объектах, которые в конечном итоге будет использовать клиент Silverlight? Или есть более простой способ сделать это с помощью какой-нибудь другой технологии /sdk/toolkit? Или возможно ли повторно использовать вышеуказанный бизнес-объект в клиенте Silverlight? в каком случае есть простой способ скопировать данные из прокси-объекта веб-службы в бизнес-объект?

1 ответ

Решение

Проверьте RIA Services. Это позволяет вам иметь общую логику между сервером и бизнес-объектами клиента (вы пишете код для сервера, и он автоматически генерирует логику в объектах на стороне клиента). В качестве альтернативы, если вы не хотите использовать Службы RIA, попробуйте этот метод, о котором я писал в дни, предшествующие Службе RIA: http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-3.aspx

Надеюсь это поможет...

Крис Андерсон

Другие вопросы по тегам