Наш продукт представляет собой веб-приложение ASP.Net. В настоящее время мы используем проекты веб-сайтов в Visual Studio, но уже довольно давно изучаем проекты веб-приложений. В настоящее время я изучаю их, чтобы мы могли, надеюсь, улучшить процесс развертывания.
У нас есть базовый веб-сайт, общий и общий для разных клиентов, а затем мы расширяем его с помощью клиентских функций в проектах веб-сайта клиента. Клиентские проекты расширяют базу и поэтому полагаются на ее содержимое. Чтобы создать полный продукт, мы сначала развертываем базовый веб-сайт, а затем накладываем его на содержимое из проекта клиента.
В процессе преобразования в проекты веб-приложений в Visual Studio мы надеялись создать базовый проект, затем создать клиентские проекты и установить ссылки на базу. Кажется, что эта структура работает нормально, но когда мы пытаемся развернуть приложение из клиентского проекта с использованием MSDeploy, публикуется только DLL с базового веб-сайта. Это хорошо для некоторых вещей, ссылка на скомпилированный код полезна, но есть другие элементы, такие как изображения, js-страницы, htm и т.д., Которые все еще являются источником, который требуется для функционирования клиентского приложения. Нам нужно больше, чем скомпилированный код с нашего базового веб-сайта.
Чтобы все сказанное, я могу придумать несколько вариантов:
- Продолжайте развертывание в 2 этапа. Сначала базовый веб-сайт, а затем веб-сайт клиента для создания полного продукта.
- Измените процесс развертывания, чтобы скопировать необходимые исходные файлы из базового проекта.
- Повторите архитектуру нашей модели, чтобы поддерживать отношения с базой-клиентом по-другому. Не совсем уверен, как это будет работать, и будет наименее жизнеспособным вариантом.
- ??
Есть ли другой вариант, который мне не хватает? Я что-то делаю неправильно с тем, как я настраиваю свои проекты? Есть ли еще один способ сделать ссылку на веб-приложение другим веб-приложением, помимо совместного использования скомпилированного кода? Если это так, почему бы вам просто не использовать общую библиотеку классов? Или, может быть, я учу что-то с процессом MS Deploy?
Я открыт для предложений здесь, поскольку я чувствую, что что-то не хватает. Я не думаю, что наша модель для наших веб-приложений слишком уникальна.
Обновление: процесс двойного развертывания действительно работает, но он чувствует себя немного клодгеем. Любой другой вход?