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