Недавно я экспериментировал с Silverlight, RIA Services и Entity Framework, используя .NET 4.0. Я пытаюсь выяснить, имеет ли этот стек смысл для использования в любом из моих будущих проектов. Конечно, кажется, что эти технологии могут быть очень продуктивными для разработки приложений, но я изо всех сил пытаюсь решить, как приложение на вершине этого стека должно быть спроектировано.
Основная проблема, с которой я столкнулся, заключается в том, что в большинстве демонстраций, которые я видел, большая часть бизнес-логики заканчивается аннотациями данных и пользовательскими проверками в классе обслуживания домена RIA Services. Это кажется мне неуместным. Я рассматриваю доменную службу как прославленную веб-службу, которая облегчает передачу информации клиенту. Но большая часть того, что я видел, похоже, ориентирует доменную службу как основной источник бизнес-логики в приложении.
Итак, мои вопросы:
- Какое наилучшее место для бизнес-логики (правила, проверки, поведения, авторизации) в приложении, использующем этот стек?
- Есть ли какие-либо рекомендации, опубликованные на архитектурном уровне для использования этого стека?
Мои вопросы касаются больших, сложных и долгоживущих приложений. Очевидно, что для приложения, состоящего только из нескольких экранов, это менее важно.
Edit:
Еще одна вещь, которую я хотел упомянуть, это то, что вы, очевидно, можете сделать класс обслуживания домена глупым, но тогда вы потеряете много информации об автоматических сущностях (например, проверки), передаваемой клиенту. И потом, если вы потеряете, есть ли смысл пользоваться услугами RIA?