Лучшая практика для нескольких веб-приложений asp.net - PullRequest
3 голосов
/ 18 августа 2011

В поисках лучшей практики при наличии нескольких веб-приложений на одном «сайте» или «решении» ASP.NET. У меня есть несколько вариантов, с которыми я играю:

  1. старый приверженец объединения всех приложений и мастера сайта в одно решение / одно веб-приложение

  2. Мой начальник обеспокоен наличием 30 «приложений», которые находятся в рамках одного проекта в VS, и каждый раз, когда мы вносим изменения в одно, приходится развертывать его для всех. Так что это заставляет нас хотеть разбить каждый на отдельный проект в рамках одного решения. Это заставляет нас искать решения на главной странице

    • Главная страница должна поддерживать динамическую структуру меню. Это то, что я могу сделать с одним SiteMaster? Предоставляет ли VirtualProvider правильное решение для этого? У кого-нибудь есть хорошие уроки?
  3. Создание UserControl для каждого приложения и ссылка на него в основном приложении

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

Я задал два похожих вопроса здесь:

Мастер-страница кросс-проекта

Лучшая ставка - это отдельные проекты в рамках одного решения и использование пакета Nuget для синхронизации общих артефактов, включая главные страницы. Прямо сейчас это работает нормально на 22 проектных решениях, над которыми я работаю. Вы также можете сохранить сам пакет Nuget в системе контроля версий.

Обновление:

Вы можете использовать файл XML для своего меню и поделиться им с Nuget. Возможно добавление jQuery для эффекта скольжения и т. Д.

1 голос
/ 22 июня 2016

1) Так что это заставляет нас хотеть разбить каждый на отдельный проект в рамках одного решения.

(хорошая идея)

Главная страница должна поддерживать динамическую структуру меню.

В качестве примечания, Вы когда-нибудь слышали о MEF?
Это очень подходит для вашего случая.
Используя его, вы можете получить полностью расширяемое решение для главной страницы с возможностью добавления дополнительных меню (и функциональности для каждого) наfly !!!.
По технологии MEF у вас может быть отдельный проект в рамках одного решения.Каждый (новый / обновленный) проект может быть

  • Опубликован / Переиздан.
  • имеет свои файлы содержимого, объединенные с основным уже опубликованным сайтом (главный проект)
  • Скопируйте созданный dll дочернего проекта в bin папку
  • Перезапустите сайт.

Вот несколько статей об этом: Справочник Microsoft , Основы CodeProject для Asp.Net
Существует также концепция под названием Portable Area .Но я не знаю, как это работает или какой сценарий он охватывает, или даже если он применим для Asp.Net или только для Asp.Mvc.просто попробуйте, если интересно.

...