Я работаю над решением asp.net mvc3, которое имеет 3 проекта: Data, Service и Web.Я использовал интерфейсы для максимально возможного абстрагирования сервисного уровня, чтобы сеть знала только о сервисном уровне, а не о Данных, где хранятся истинные доменные модели.Веб-проект использует модели представлений и просто передает вещи в сервисную модель как выделенные параметры против объекта домена.Например, при создании пользователя я бы использовал такой интерфейс.
public interface IUserService
{
void CreateUser(string userName, string firstName, string lastName....);
}
Но, подумав некоторое время о чем-то наподобие GetUsers, мне нужно вернуть объект домена какого-то типа, и этопотребует, чтобы я добавил ссылку на данные в веб-проекте.
public interface IUserService
{
void CreateUser(string userName, string firstName, string lastName....);
**IEnumerable<User>** GetUsers();
}
Так что я думаю, что у меня есть два варианта: либо разбить мои доменные объекты на их собственный проект, на который затем ссылаются все проекты, либо, возможно, добавить ссылку на данные в веб-проект.Я думаю, что первый вариант самый лучший, но мне любопытно, есть ли другие варианты.Спасибо