Приложение asp.net mvc - загрузка / переопределение представлений, контроллеров, файлов JS из сборок плагинов - PullRequest
0 голосов
/ 25 июня 2009

Я хотел бы реализовать приложение ASP.Net MVC, которое могло бы динамически собирать контроллеры, представления и файлы содержимого (например, JS, изображения и т. Д.). У меня был бы базовый веб-проект, который содержал бы некоторые базовые контроллеры, представления и другие файлы содержимого, но должна быть возможность расширить / заменить все эти элементы.

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

Моя основная идея заключается в том, что будет какой-то базовый проект с общими контроллерами, представлениями, файлами JS и т. Д. Могут быть и другие проекты, которые могут заменить / добавить некоторые части приложения - контроллеры, представления, файлы JS, изображения. Я могу легко определить контроллеры, используя IoC в качестве поставщика контроллеров, но можно ли как-то легко «переопределить» представления и статические файлы? Является ли VirtualPathProvider магическим + помещает представления + статические файлы в ресурсы, все, что мне нужно сделать, чтобы решить эту проблему?

Буду признателен за любые ссылки на посты в блогах, посвященные этому и другим источникам информации.

1 Ответ

0 голосов
/ 12 ноября 2009

Не могу порекомендовать вам взглянуть на улучшения, внесенные в функцию Области в ASP.NET MVC 2 и MvcContrib Portable Areas .

Идея заключается в том, чтобы встроить все виды со всеми контроллерами и моделями, связанными с этими видами, в одну сборку, чтобы вы могли иметь область приложения "переносимая".

Я думаю, что не составит труда "переопределить" представление по умолчанию, поместив замену в папку реального веб-приложения, где она должна быть найдена.

...