Как структурировать, разбивать и создавать большое приложение MVC для развертывания небольшими инкрементными частями?

Мы будем разрабатывать очень большое вертикальное веб-приложение для рынка и склоняемся к подходу MVC.

Он будет иметь 1 мастер-страницу, общую для всех представлений в приложении. Мастер предоставит навигационную / поисковую среду для всего приложения, которая позволит пользователям искать и выбирать объекты, а затем переходить к выполняемой функции.

Модель базы данных будет иметь от 700 до 1000 таблиц. Приложение будет иметь сотни контроллеров.

Контроллеры и их представления могут быть сгруппированы в одну из множества (20-50) подсистем в приложении. (Мы смотрим на подходы к помощи в организации).

Мы хотим иметь возможность предоставлять улучшения / обновления небольшими функциональными частями. Это могут быть новая функция, исправление ошибки, зависимая от клиента функциональность или дополнительные модули, отдельно приобретаемые конечным пользователем.

Мы потратили слишком много лет на разработку / поддержку и поставку одной большой Windows vb app exe. Мы хотели бы принять другой подход.

Руководство не хочет доставлять одно большое приложение. Они хотят иметь возможность доставлять небольшие приращения при необходимости.

Мы можем захотеть создать результат, который содержит один контроллер, только пару представлений и часть модели.

Чтобы доставить его, мы хотим скопировать dll в папку bin, создать папку View и скопировать в новые представления. Как можно проще!

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

Как мы структурируем приложение для достижения этой цели?

Как мы можем разбить приложение на отдельные проекты / сборки, чтобы сделать это?

Можете ли вы создать базовый проект, который содержит мастер-страницу, аутентификацию и глобальную маршрутизацию, а затем сослаться на это в каждом из потенциально сотен других проектов для каждого из модулей?

При разработке каждый подпроект должен содержать весь базовый проект или только папку общих представлений, глобальную маршрутизацию и web.config и ссылку на базовый проект dll?

Какие-нибудь подробные документы, объясняющие этот подход?

Есть вопросы по разработке / тестированию?

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

Обновить:

Последовал примеру здесьтекст ссылки

Это отличная отправная точка!

Ответы на вопрос(3)

Ваш ответ на вопрос