Как создать архитектуру бизнес-уровня или сервисов wcf ria

Мы строим новую систему с нуля и остановились на SL4, WCF RIA Services и EF4.

Итак, я рассматриваю службы WCF RIA как бизнес-логику клиента SL, но можно ли его использовать как общий уровень бизнес-логики, который может использоваться другими частями приложения. Например, в службе WCF RIA будет реализована безопасность (например, кто и что может делать с какими объектами). Но эта реализация безопасности также должна осуществляться другими частями системы, а не только клиентом SL.

Чтобы избежать дублирования этой логики, моя идея состоит в том, чтобы использовать службу WCF RIA в качестве общего бизнес-уровня, что означает, что если другим частям системы потребуется доступ к уровню данных, им нужно будет пройти через этот уровень.

Но нормально ли это использование WCF RIA?

Спасибо


person kimtiede    schedule 01.03.2011    source источник
comment
Мы решили использовать уровень служб RIA только в качестве уровня обслуживания для клиента Silverlight. Другие части системы должны получать доступ к уровню данных через другой бизнес-уровень. Это позволит нам иметь некоторые индивидуальные бизнес-правила для клиента SL.   -  person kimtiede    schedule 05.03.2011


Ответы (2)


Вы описываете стандартный шаблон WCF RIA и то, как команда WCF RIA разработала систему для работы.

WCF RIA позволит вам получить сквозной доступ к вашим объектам EF4 и скрыть вашу бизнес-логику за интерфейсом службы RIA. Вы можете применить атрибуты аутентификации и авторизации к своим сущностям в определении службы (класс службы домена) либо на уровне класса (все методы в контракте службы), либо на уровне метода для более детального контроля.

Единственный серьезный недостаток, который я вижу в вашем плане, заключается в том, что «другим частям системы нужен доступ к уровню данных, который им потребуется для прохождения через этот уровень». WCF RIA на данном этапе хорошо работает только с Silverlight (и, возможно, с ASP.NET MVC? Я не уверен). В конечном итоге Microsoft намеревается расширить службы RIA для использования любым типом .NET-приложений, но на данном этапе это действительно только для Silverlight. Это означает, что вы упустите множество преимуществ WCF RIA с другими приложениями, отличными от Silverlight. Однако я считаю, что вы все еще можете предоставить службу WCF RIA как обычную службу WCF, включая уровень аутентификации / авторизации. Вы просто упустите автоматические прокси, генерацию кода и т. Д.

Однако есть еще несколько способов использования этого уровня обслуживания вне Silverlight. Вы можете предоставить свои объекты EF4 с помощью конечной точки OData или службы SOAP / REST. Дополнительные сведения об этом см. В эту статью.

person Martin Doms    schedule 01.03.2011

В большом проекте RIA у нас обычно очень много модулей (бизнес-модули, лицензирование, авторизация, модули аудита и т. Д.), И, очевидно, есть некоторые модули, к которым необходимо получить доступ через другие модули, а также некоторые через SL-клиент. Поэтому я считаю, что вас беспокоит типичная архитектурная сторона вопроса о том, как правильно распределить это в большом приложении. Как и в любом другом проекте .NET, вы можете разделить его на модули для различных библиотечных проектов. Это означает, что вы можете соответствующим образом сделать некоторые из них как RIA Service Class Проект библиотеки или типовые многоразовые библиотеки .net (например, библиотека журналов)

person Jobi Joy    schedule 01.03.2011