Какова рекомендуемая структура решения для довольно большого сайта в asp.net? - PullRequest
6 голосов
/ 29 июля 2011

В настоящее время я пытаюсь реорганизовать проект (asp.net mvc), в котором вообще нет разделения. просто папки: s

  • В проекте есть несколько классов EF Code First (People.cs, Exam.cs, Message.cs и т. Д.)
  • Проект имеет несколько репозиториев (все они используют EF Data Контекст)
  • И, конечно, много контроллеров и моделей представления

У нас есть тестовый проект, но мы не очень хороши в TDD, поэтому сейчас мы над этим не работаем.

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

Пожалуйста, помогите. заранее спасибо

Ответы [ 2 ]

12 голосов
/ 29 июля 2011

Я бы предложил следовать дизайну, управляемому доменом (DDD), и одним из предложенных способов этого было бы создание следующих проектов:

Company.Project.Web <- Ваше приложение MVC, хотя вы все еще можете использоватьWebForms <code>Company.Project.Domain <- объекты передачи данных (DTO), ViewModels, бизнес-логика, события <code>Company.Project.Data <- интерфейсы репозитория </p>

Company.Project.Data.EF <- реализация репозиториев, специфичная для EntityFramework <code>Company.Project.Model <-- Ваши EF CodeFirst Classes </p>

Company.Common <- Общий проект утилит и / или расширений </p>

Я бы посоветовал вам взглянуть на Project Silk http://silk.codeplex.com/ сШаблоны и практики команды.Отличная справочная реализация DDD, Repository и MVC, а также смешение в HTML 5 и jQuery (vNext).

11 голосов
/ 29 июля 2011

Мы используем дизайн, аналогичный упомянутому jdmonty, но немного проще.Мы делаем следующее:

  • ApplicationName.Web - Приложение MVC
  • ApplicationName.Services - Бизнес-логика
  • ApplicationName.Domain - Классы EF CodeFirst и репозитории, которые на них действуют
  • ApplicationName.Common - Классы и утилиты, используемые несколькими проектами
  • ApplicationName.Tests - Тест для различных проектов

Веб-проект зависит от проекта Services.Проект Services зависит от проекта Domain.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...