Я разрабатываю мультитенантное приложение на основе ASP.Net MVC. В зависимости от настроек пользователя, сайт должен перенаправить на отдельный модуль/область для этого пользователя. Каждая область использует некоторые общие службы, однако внешний вид сайта и навигация совершенно разные для каждой области/модуля. Модели также переопределяются из базовой библиотеки, и нам нужны отдельные команды для разработки модулей (включая контроллеры, представления и модели).
Мы рассматриваем такие инструменты внедрения зависимостей, как Unity или Ninject. Вопрос в том, как мы вставляем полный модуль/область внутри основного веб-сайта. Часть «Контроллеры и модели» хорошо изучена. Что не ясно, так это то, как разрабатывать представления, чтобы поиск и использование правильных представлений.
ОБНОВЛЕНИЕ
Нам нужно разработать это приложение с разными командами. Каждая команда разработает модуль для каждого подсайта/области. Существует бизнес-уровень, который предоставляет общие услуги, структуру и рабочие процессы. MVC — это прежде всего уровень представления. Каждая команда разрабатывает дочерний сайт для каждого клиента, используя определенный брендинг для этого клиента. По мере того, как мы добавляем больше клиентов, нам нужно добавлять больше сайтов. Мы могли бы использовать темы и т. д. Однако у клиентов разные экраны и разный набор полей на каждом экране. Все эти поля собирают схожие данные, однако конечные пользователи играют разные роли для сбора данных. Например. Сотрудник фронт-офиса фиксирует разные номера. полей на одного клиента, а остальные заполняются техническим специалистом. Точно так же может быть более одного пользователя, обращенного к клиентам клиента (посетителям). Существует общий компонент, который используется для управления потоком посетителей, интерфейсными столами в каждом сеансе офиса и т. д. Вопрос в том, как мы можем независимо разработать подсайты MVC и перенести их на общий сайт, используя внедрение зависимостей. Особенно взгляды. Является ли сценарий развертывания единственным вариантом?