Я работаю с ASP.NET MVC уже пару месяцев и все еще не доволен макетом решения моего проекта. Я пытаюсь создать CMS для веб-сайта среднего размера, которая была бы максимально портативной и многоразовой, и в ее дизайне есть некоторые очевидные проблемы. Мне нужен совет относительно того, как мне структурировать свое решение с учетом разделения проблем. Я нашел здесь аналогичный вопрос, но на самом деле он не нацелен на некоторые из проблемы, с которыми я сталкиваюсь.
Прямо сейчас мое решение изложено следующим образом:
+Project.Controllers - All Controller classes P+roject.Controllers.Tests +Project.Core - Utility classes including repetitive tasks and some configuration handlers (this project needs to be better fleshed out) +Project.Core.Tests +Project.Models - Model classes, Entity Framework context, and Repository classes +Project.Models.Tests +Project.Web - All Views and Content
Одна важная вещь, которой мне сейчас не хватает, - это место, где можно закрепить свою бизнес-логику, и я чувствую, что ошибочно размещал бизнес-логику в своих классах репозитория, а также смешивал ее с действиями контроллера. Очевидно, я хорошо осведомлен об этой проблеме, я просто не уверен, где мне разместить свою бизнес-логику в этом макете решения. Нужно ли изменить структуру моего решения, или я могу безопасно сохранить эту бизнес-логику в моем проекте моделей? Кроме того, мне действительно не нравится, что мой контекст EF находится в классе Models, но я не знаю способа изолировать код уровня данных от классов сущностей, необходимых в моей модели.
Как все остальные выкладывают свои производственные решения ASP.NET MVC?