ASP.NET MVC: What goes where?

Я собираюсь начать разработку приложения ASP.Net MVC среднего размера. Я пытаюсь сделать правильный дизайн. Я собираюсь использовать следующие уровни:

  • Уровень пользовательского интерфейса (MVC)
  • Уровень обслуживания
  • Уровень репозитория
  • Уровень доступа к данным

Я буду использовать Unity в качестве контейнера IOC и EF4.1 Code First для доступа к данным.

Приложение будет разделено на несколько сборок. У меня проблема с определением, какие сборки мне понадобятся и где разместить следующее:

  • Объекты Entities / Domain, например, Customer, Invoice
  • DTO, например, CustomerDTO, InvoiceDTO
  • Сервисные интерфейсы, например ICustomerService
  • Интерфейсы репозитория, например ICustomerRepository
  • Services (классы реализации интерфейса сервиса) например, CustomerService
  • Репозитории (классы реализации службы репозитория), например, CustomerRepository
  • ViewModels, например, CustomerViewModel
  • Перечисления

Мой вопрос: Как вы обычно разделяете свои и почему?

Изменить: на основании ответа @ TheHurt.

Как будут ссылки между сборками, то есть какая сборка будет ссылаться на которую?

8
задан Ben 9 May 2011 в 15:10
поделиться