Сложные бизнес-объекты, бизнес-логика и клиентский код 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
Надеюсь это поможет...
Крис Андерсон