Как развертывание приложений .NET отличается от развертывания веб-приложений Java? - PullRequest
9 голосов
/ 15 декабря 2011

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

Это проблема для меня, потому что я Java-разработчик и не говорю на .NET. Поэтому я не понимаю, какими должны быть лучшие практики.

Итак, чтобы представить это с точки зрения, к которой я могу обратиться, я хотел бы знать, что такое же и что отличается в развертывании веб-приложений Java и Java EE от развертывания приложений .NET?

Когда я развертываю довольно простое Java-приложение в Интернете, у меня обычно есть автоматизированный процесс, который получает код из системы контроля версий, запускает сценарий ANT или Maven для создания файла .war, помещает этот файл в каталог webapps и затем Tomcat - или другой сервер приложений - раздувает .war-файл и запускает его.

Каким будет эквивалентный процесс в .NET? Какие инструменты обычно используются? Какой создается артефакт, который по назначению будет похож на файл .war? Какие плохие практики распространены, но их следует избегать?

Ответы [ 2 ]

10 голосов
/ 15 декабря 2011

Сборки в .Net являются "пакетом" самого высокого уровня, о котором он знает. Они примерно эквивалентны .jar файлам в Java. Есть системы над сборками (например, пакеты Web Deploy ), но они используются инструментами и надстройками более высокого уровня - они не являются основными понятиями .Net.

Вместо Муравей мы имеем MsBuild .

Решения Visual Studio представляют собой комбинации проектов Visual Studio, а проекты Visual Studio представляют собой сценарии MsBuild. Вы можете создать любой из них с помощью Visual Studio или MsBuild.

Сборки составляются для вас компилятором . Сценарий MsBuild используется для указания того, какие файлы компилируются в сборку, и для указания ссылок на другие сборки.

.Net сборки могут видеть сборки в GAC ( Global Assembly Cache - это для всей системы) и сборки в одном каталоге. Не существует каталогов волшебных библиотек, которые загружаются так, как в Java WAR .

На стороне .Net IIS является как веб-сервером, так и сервером приложений.

Имеется вещь под названием пулы приложений , которые запускаются под определенным пользователем и загружают определенную версию .Net Framework . Вы можете применять их на уровне «сайта» или «приложения».

В IIS у вас есть «сайты» (иногда просто «Веб-сайт по умолчанию»), и вы создаете «виртуальный каталог» под этим сайтом. Тогда вы можете «пометить его как приложение». Вы привязываете виртуальные каталоги к реальным каталогам файловой системы и можете просто удалить файлы, которые вы развертываете, в этот каталог.

См .: Общие сведения о сайтах, приложениях и виртуальных каталогах в IIS

В IIS нет каталога развертывания, как есть серверы приложений Java. Вы сбрасываете свои страницы и сборки прямо в каталог, из которого они обслуживаются.

Но есть структура каталогов для веб-сайтов. Проекты, созданные в Visual Studio, уже настроены на соответствие этой иерархии, поэтому вы можете просто взять всю папку проекта и выбросить ее в IIS.

Если вы хотите сделать что-то более автоматизированное, загляните в Web Deploy .

0 голосов
/ 15 декабря 2011

Одно слово IIS.Что касается приложений, которые я разработал, будь то служба или веб-сайт, я развертываю их через IIS.

По той же аналогии вы сказали.Visual Studio выводит сборку либо вашего веб-приложения / веб-сайта, которую вы можете развернуть на веб-сервере через IIS, и она полностью настраивается.

Все шаги и прекурсоры можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...