#iis #asp.net-mvc-3 #architecture
#iis #asp.net-mvc-3 #архитектура
Вопрос:
Я создаю несколько веб-приложений. Что я хочу здесь сделать, так это:
-
Приложения должны быть автономными в IIS, используя другой пул приложений.
-
Существует одно основное приложение, используемое соло в качестве главной страницы, позволяющее входить / выходить из системы и направлять пользователей к другим приложениям.
-
Я хочу, чтобы другие приложения использовали макет основного приложения.
Структура, о которой я думал, заключалась в развертывании основного приложения в корневой папке веб-сайта и размещении других приложений под ним в отдельной папке (отдельное приложение и пул). Что-то вроде:
IIS
|
|__Main app (web site)
|
|__App1
|
|__App2
Однако, я просто запутался здесь:
-
Как я могу повторно использовать приложения / пулы layout / dll acorss, не копируя их в каждое приложение (возможно, это глупый вопрос)
-
Как я могу использовать контроллер / функцию действия MVC3 вместо прямого использования жестко запрограммированного
<a/>
для навигации пользователей к каждому приложению. Я действительно пробовал это. Похоже, что основное приложение (MVC3) может распознавать контроллер и просматривать только в своем собственном проекте.
вкратце, что я пытаюсь сделать, это: развернуть мои приложения в структуре дерева выше и позволить основному приложению выводить представления из вспомогательных приложений и отображать их во фрейме основного приложения.
Возможно, это не очень хорошая практика, но любое предложение приветствуется!!!
Большое спасибо
Комментарии:
1. Я нутром чувствую, что вы действительно хотите сделать здесь что-то другое. Но, не слишком увлекаясь своим дизайном, вы могли бы рассмотреть возможность использования соединений: msdn.microsoft.com/en-us/library/aa365006 (v = против 85).aspx Они похожи на символические ссылки в Linux … если вы знакомы с ними.
2. Итак, чего вы хотите достичь? Зачем это делать?
3. Я просто хочу сделать свое приложение более переносимым. Поскольку функции приложений сильно отличаются друг от друга, я не хочу создавать их в одном проекте MVC3, что затруднит их разделение. Итак, я хочу, чтобы они были в другом проекте. Однако я хочу, чтобы основное приложение размещало их в своем фрейме. Основное приложение работает как демонстрационное приложение, оно аутентифицирует пользователей и показывает приложения на основе их профиля. Хорошим примером может быть facebook.com . Пользователи входят / выходят из facebook и могут установить приложение в свою учетную запись. Спасибо
Ответ №1:
Это действительно звучит так, как будто вы хотели бы использовать Areas
в MVC. Это не позволило бы вам запускать вложенные «приложения» в их собственном пуле приложений, но это позволило бы выполнить все остальное, что вы хотите сделать (общие макеты, библиотеки DLL, Html.ActionLink
доступ на основе ролей к каждому из них Area
и т.д.). Вы можете легко совместно использовать навигацию верхнего уровня во всех областях и иметь различную вспомогательную навигацию для каждой. У меня есть сообщение в блоге из двух частей об использовании единого макета, который является общим для всех областей, что может дать вам некоторую помощь (или идеи).
Единый макет для областей с представлениями ASPX и Razor (часть 1) — Использование механизма просмотра ASPX
Единый макет для областей с ASPX и Razor views (часть 2) — Использование механизма просмотра Razor
Если вы считаете, что размещение вспомогательных приложений в областях в одном проекте слишком жестко, вы также можете рассмотреть возможность использования MvcContrib для создания вспомогательных приложений в переносимых областях, а затем использовать их в своем приложении верхнего уровня.