GreenBee
@GreenBee
ASP.NET программист

Как правильно разбить ASP.NET MVC приложение на несколько проектов(модулей)?

Есть веб-портал, который состоит из множества почти независимых разделов (единственное, что их связывает - БД пользователей): блоги, вопросы, форумы, новости и т.п.
Естественно, все это в едином проекте достаточно неудобно сопровождать.

Хочется разбить проект по разделам. Как лучше всего это организовать? Все, что нашел в сети - костыли на костылях.
На данный момент (MVC 5), контроллеры похватываются из .dll, а также из папки App_Code.
Но возникает проблема коллизий роутинга, совпадение имен вьюх....

Думал делать так:
1. Определить правила именования для модулей и папку хранения *~/Modules/")
2. Свои вьюхи каждый модуль хранит именно в это папке и из кода явным образом к ним обращается (return View("~/Modules/ModuleName/..."))
3. Контроллерам давать длинные названия, содержащие имя модуля, а на самом сайте просто наследовать от них, тем самым получая роут, а также возможность иметь несколько экземпляров модуля.

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

UPD (20.10.2015):
в п.3 Контроллеры можно просто абстрактными сделать.
вьюхи и все отальные файлы можно добавить в ресурсы (причем в идеале их нужно распаковать, а также дать возможность что-то переопределять в использующем приложении).
  • Вопрос задан
  • 1191 просмотр
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
А вы не думали использовать регионы(Areas)? Это даст еще один уровень роутинга, что может решить проблему коллизий, а создавая роут - указать сборки, которые хранят контроллеры
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы