Приложение asp.net mvc — загрузка/переопределение представлений, контроллеров, файлов JS из сборок плагинов

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

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

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

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


person Buthrakaur    schedule 25.06.2009    source источник


Ответы (1)


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

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

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

person Marc Climent    schedule 12.11.2009