Архитектура DDD для проекта ASP.NET MVC2C#

Место общения программистов C#
Ответить
Anonymous
 Архитектура DDD для проекта ASP.NET MVC2

Сообщение Anonymous »

Я пытаюсь использовать разработку на основе домена (DDD) для своего нового проекта ASP.NET MVC2 с Entity Framework 4. После некоторых исследований я пришел к следующим соглашениям о слоях для каждого уровня в отдельном проекте класса:

MyCompany.Domain

Код: Выделить всё

     public class User
{
//Contains all the properties for the user entity
}

public interface IRepository where T : class
{
IQueryable GetQuery();
IQueryable GetAll();
IQueryable Find(Func condition);
T Single(Func condition);
T First(Func condition);
T GetByID(int id);
void Delete(T entity);
void Add(T entity);
void Attach(T entity);
void SaveChanges();
}

public interface IUserRepository: IRepository {}

public class UserService
{
private IUserRepository _userRepository;
public UserService(IUserRepository userRepository)
{
_userRepository = userRepository;
}
// This class will hold all the methods related to the User entity
}
MyCompany.Repositories

Код: Выделить всё

public class UserRepository : IRepository
{
// Repository interface implementations
}
MyCompany.Web --> Это проект MVC2

В настоящее время уровень моих репозиториев содержит ссылку на уровень домена. Насколько я понимаю, внедрение UserRepository в класс UserService очень хорошо работает при модульном тестировании, поскольку мы можем передавать поддельные пользовательские репозитории. Итак, с этой архитектурой похоже, что мой веб-проект должен иметь ссылки как на слои домена, так и на слои репозиториев. Но действительно ли это? Потому что исторически уровень представления имел ссылку только на уровень бизнес-логики.

Подробнее здесь: https://stackoverflow.com/questions/400 ... c2-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»