Сколько объектов должна включать служба домена RIA?

Мне было интересно, как именно реализовать доменную службу в RIA. Является ли общепринятым включение всех сущностей во всей модели предметной области в одну доменную службу, что делает службу ответственной за всю базу данных? Это так обычно делается? У меня действительно нет причин разделять доступ к данным по разным службам, но мне было интересно, считается ли это хорошей практикой, и каковы будут плюсы и минусы такого подхода.

Кроме того, считается ли хорошей или плохой практикой регистрировать контекст домена как одноэлементный с IOC, чтобы все приложение работало с одним и тем же набором данных, что позволяет избежать проблем параллелизма и подобных проблем?

Мысли?

Спасибо


person Community    schedule 01.04.2010    source источник


Ответы (2)


В нашем приложении есть две отдельные службы: одна для модели данных и одна, используемая исключительно для аутентификации. Мы взяли этот дизайн из образца бизнес-приложения MS.

Мы думали о том, чтобы разбить нашу службу предметной области на более мелкие компоненты, но отказались от этого, потому что это, казалось, не добавляло никаких преимуществ (кроме уменьшения размера класса обслуживания). Если у вас есть отдельные модели данных, которые полностью независимы друг от друга, тогда маршрут может иметь смысл. Интуитивно доменная служба должна представлять весь домен. Если ваши домены независимы (с иногда требуется пересечение), то имеет смысл разделить их таким образом.

Что касается использования контекста в качестве синглтона: я попробовал это и вместо этого создал экземпляры класса. Мы не сталкивались с какими-либо проблемами при этом, поскольку все они используют одно и то же базовое подключение к данным. Я не знаю, что такое «официальная» лучшая практика, но я видел, как это делается во многих приложениях RIA.

person Nick Gotch    schedule 09.04.2010
comment
Я не согласен. Я думаю, что domainService должен представлять задачу или бизнес-процесс, а не весь домен. Хорошим примером приложения является приложение Book Club, которое вы можете найти здесь nikhilk. net/RIA-Services-MIX10-Slides-Code.aspx . - person PilotBob; 25.06.2010

Спасибо, Ник. На самом деле я сделал то же самое, что и вы, я создал две службы, одну для аутентификации и одну для доступа к данным. Мне это кажется наиболее логичным.

Что касается создания datacontext синглтона, я тоже пробовал это, и это прекрасно работает. Не нужно постоянно перезагружать и обновлять данные и беспокоиться о проблемах параллелизма в других классах :)

person Community    schedule 10.04.2010