Сколько объектов должна включать служба домена RIA? - PullRequest
6 голосов
/ 01 апреля 2010

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

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

Мысли

Спасибо

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

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

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

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

0 голосов
/ 10 апреля 2010

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

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

...