Как правильно вносить изменения в проект ASP.NET?

Есть тестовый и развернутый проект на ASP.net. Как корректно вносить изменения в развернутый на IIS проект. Подскажите может есть доки по развертыванию по внесению изменений в проекты ASP.net MVC. В VS есть возможность развернуть проект если, к нему есть доступ локально. Но как быть если прямого доступа нет. только FTP
  • Вопрос задан
  • 923 просмотра
Решения вопроса 1
vladimirbondarev
@vladimirbondarev
Разработчик ПО
Функция "Publish" в VS это всего лишь деталь поставки. Формируй пакет поставки и разворачивай его на FTP.
Подмена файлов, будь то бинарных или текстовых плохая практика, можно что-нибудь отломать и потом долго мучиться восстанавливая предыдущие состояние. Каждая поставка содержит в себе изменения, значит должна быть присвоена версия, которая содержит определенный ченджлог, иначе через цать таких поставок начнется каша.

Опишу общий процесс поставки:
  • вносятся финальные изменения в разработческой ветки, тестируются
  • сливаются изменения разработческой версии с master, исправляются конфликты, тестируются
  • собирается пакет поставки, содержащий все необходимые конфигурационные, бинарные и прочие файлы и т.д.. Пакет не должен содержать мусорных файлов. Присваивается пакету версия
  • поставляется пакет на демонстрационный сервер. Если есть БД, то восстанавливается бэкап с продуктовой, либо максимально приближенный к последнему состоянию оригинальной. Применяются миграции.
  • регистрируется приложение в IIS, тестируется
  • поставляете пакет на продуктовое окружение
  • если есть БД, то создается бэкап, применяются миграции
  • разворачиваете пакет поставки
  • переключаете IIS на использование поставленной версии

Это процесс, к которому мы пришли не сразу. Были и подмена файлов на продакшене и живая правка кода. Иногда это приводило к плачевным последствиям. Потом итеративно выработалась ручная процедура поставки, после для экономии времени эта процедура автоматизировалась. Сейчас самый продолжительным участком поставки является ручное приемочное тестирование на демонстрационном окружении. Автоматизированные приемочные тесты тоже есть - они прогоняются после сборки билда, но как и весь код они могут содержать ошибки, поэтому ручной прогон приемочных тестов исключать не решаемся.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
В Visual Studio есть кнопка "Publish..." и можно как задеплоить напрямую по IP адресу на сервер, так и создать zip пакет, который затем из IIS Manager можно развернуть.
Ответ написан
yarosroman
@yarosroman Куратор тега C#
C# the best
Ваш проект компилируется в DLL, если вы, что то в контроллерах меняли, достаточно заменить DLL, если в Razor Views, то достаточно заменить их. Желательно конечно же остановить сайт/сервер, и сделать полное обновление, ибо может вы обновили некоторые используемые пакеты в проекте, и они не совместимы со старыми версиями.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы