Я хотел бы реализовать приложение ASP.Net MVC, которое могло бы иметь контроллеры, представления и файлы содержимого (например, JS, изображения и т. д.), собранные динамически. У меня был бы базовый веб-проект, который содержал бы некоторые базовые контроллеры, представления и другие файлы содержимого, но должна быть возможность расширить/заменить все эти элементы.
Основная причина такой архитектуры в том, что у меня есть приложение, которое должно использоваться большим количеством клиентов. Есть много основных общих вещей, которые были бы одинаковыми для всех клиентов, но также есть много вещей, которые должны вести себя/выглядеть по-разному для каждого. У некоторых клиентов также будут определенные функции, которых нет у других и т. д. Я знаю, как решить эту проблему на уровне модели и службы (наследование + регистрация соответствующих служб в контейнере IoC), но я не знаю, с чего начать с ASP. Приложение .Net MVC.
Моя основная идея заключается в том, что должен быть какой-то базовый проект с общими контроллерами, представлениями, JS-файлами и т. д. Могут быть и другие проекты, которые могут заменить/добавить некоторые части приложения — контроллеры, представления, JS-файлы, изображения. Я могу легко решать проблемы с контроллерами, используя IoC в качестве поставщика контроллеров, но можно ли каким-то образом легко «переопределить» представления и статические файлы? Является ли волшебство VirtualPathProvider + поместить представления + статические файлы в повторное использование — все, что мне нужно сделать, чтобы решить эту проблему?
Я был бы признателен за любые ссылки на сообщения в блогах, посвященные этому и другим источникам информации.