2010-04-01 1 views
6

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

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

Мысли?

Спасибо

ответ

1

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

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

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

+0

Я не согласен. Я думаю, что domainService должен представлять задачу или бизнес-процесс не весь домен. Хорошим примером приложения является приложение Book Club, которое вы можете найти здесь http://www.nikhilk.net/RIA-Services-MIX10-Slides-Code.aspx. – PilotBob

0

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

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