Ранее для разработки и развертывания сайтов на .NET требовались Windows Server, IIS, C# и ASP.NET/.NET. Однако с недавним появлением возможности установки, разработки и запуска C#, .NET и веб-приложений на Linux, многие компании стали значительно реже использовать Windows Server и начали переходить на Nginx в связке с .NET. Не кажется ли вам, что более целесообразно использовать нативную среду, где все устанавливается и функционирует более просто, чем создавать сложные настройки для работы .NET-приложений на Linux? Почему, если Windows Server уступает Linux в серверной сфере, Microsoft не прекращает поддержку этого направления? Это свидетельствует о том, что Windows-серверы все еще востребованы. Я задал этот вопрос как системный администратор, у которого возникли проблемы с клиентом, чьи разработчики и предшествующий системный администратор приняли решение установить .NET, C#, Mono и Nginx на Linux. Это решение вызвало у меня недовольство, и я отказался поддерживать данную конфигурацию, так как считаю, что .NET проще обслуживать на Windows Server.
Вы затронули несколько важных аспектов, касающихся выбора между Windows Server и Linux для развертывания .NET-приложений. Давайте разберем основные преимущества использования Windows Server и причины, по которым он по-прежнему остается востребованным: ### Преимущества Windows Server: 1. **Нативная совместимость**: Windows Server предоставляет полную совместимость с .NET и другими технологиями Microsoft, такими как IIS, что существенно упрощает развертывание и поддержку приложений. 2. **Отладка и разработка**: Инструменты разработки, такие как Visual Studio, работают лучше на Windows. Интеграция с Windows Server обеспечивает максимально удобные условия для отладки приложений. 3. **Поддержка и обновления**: Microsoft предлагает регулярные обновления, исправления безопасности и техническую поддержку для Windows Server, обеспечивая стабильную работу систем. 4. **Безопасность**: Windows Server имеет встроенные возможности безопасности, такие как Active Directory, Group Policy, и другие функции, которые упрощают управление доступом и защищают данные. 5. **Интеграция с другими продуктами Microsoft**: Многие организации используют экосистему Microsoft, включая Office 365, SharePoint и другие решения, и использование Windows Server упрощает интеграцию с этими продуктами. 6. **Облачные решения**: Сервисы, такие как Azure, имеют лучшие инструменты и интеграцию с Windows Server, что может быть важным фактором для компаний, переходящих на облачные технологии. ### Почему Microsoft продолжает поддерживать Windows Server: 1. **Сегменты рынка**: Хотя существует тенденция к использованию Linux, в некоторых секторах (например, финансовые услуги, государственный сектор) Windows Server по-прежнему востребован. Многие крупные организации имеют значительные вложения в экосистему Microsoft. 2. **Специфика задач**: Некоторые задачи, такие как развертывание больших корпоративных приложений, требуют функциональности, которую проще реализовать на Windows Server. 3. **Технологическая эволюция**: Microsoft адаптировалась к меняющемуся рынку и предоставляет поддержку для Linux, но также делает акцент на Windows Server как платформу для создания гибридных решений. 4. **Переход на новые технологии**: Microsoft активно развивает Windows Server, включая поддержку контейнеров, виртуализации и других современных технологий. ### Заключение: Ваше недовольство связано с тем, что сопоставление различных платформ может быть сложным, особенно когда дело касается специфических требований проекта и опыта команды. Хотя использование Linux с .NET стало более популярным, Windows Server продолжает предлагать множество преимуществ, особенно для тех, кто работает в экосистеме Microsoft. Выбор платформы должен основываться на потребностях конкретного проекта, техническом окружении и уровне поддержки, который требуется.
Только для тех случаев, когда зависимости ПО работают только под виндой. Во всех остальных случаях удобнее и практичнее линукс. Сегодня dotNet спокойно ставится под линуксом из пакетов и отлично там работает как и любое другое ПО.
Если Windows Server настолько проиграл Linux в серверных войнах, то почему Microsoft не закрывает этот отдел? Значит сервера на Windows, используются.
Потому что деньги и экосистема. В рамках своей экосистемы продавать больше услуг клиентам выгоднее и позволяет заработать денег. В этом и смысл экосистем.
Почему я задал этот вопрос, я как системный администратор, столкнулся с клиентом, с которым я сцепился из за того, что его разработчики и бывший сотрудник сисадмин решил установить .NET + C# + Mono + Nginx и все это на линукс.
Естественно меня это взбесило, и я просто отказался все это поддерживать, потому что извините, но .NET проще поддерживать на Windows Server
Единственная адекватная причина отказа от сопровождения серверов на линуксе - отсутствие знаний и умений по их сопровождению либо недостаточная квалификация в данной области. "Взбесило" - вот ту вы были не правы и вот это ваше "проще" просто свидетельствует о вашей недостаточной квалификации в данной области. Кроме того, в рамках диалога с клиентом можно было просто спросить о целях, причинах и задачах именно такого решения.
На мой взгляд для .NET на Windows Server удобнее все: разработка, поддержка, администрирование. Но я использую это только для корпоративных продуктов с высокой степенью надежности.
Для своих проектов Linux выгоднее. Здесь я имею ввиду не только отсутствие лицензии (за нее я и так никогда не платил), а требования к серверу.
Допустим я пишу сайтик на .NET и SQL server – тогда для комфортной работы я должен оплачивать сервер минимум 8Гб оперативки и 4 ядра ЦП. Но если я напишу это же самое в связке .NET и Mysql 8.0 – это будет работать также хорошо на линуксе с 2 ядрами и 2ГБ оперативки.
Более того на заре выхода .NET 5 сами мелкософт признавались что у IIS есть ряд ограничений и рекомендовали сайтики с высокой нагрузкой по запросам размещать на линухе.
В вашем конкретном случае я бы остался на винде, а новые проекты на .NET уже бы писал для линукса. Причем предупреждаю последняя удобная винда это Windows Server 2022. Если вы поставите версию старее то лишитесь как минимум TLS 1.3, а если поставите новее (2025) тогда получите неудобный UI для девочек как в эпплах.
1. В dotnet на Linux нет ничего костыльного, так ещё он дешевле, производительней, и админить легче.
И работает всё гораздо предсказуемее и без сюрпризов (опыт разработчика)
2. Да, Windows Server всё ещё используется.
Представь, что ты огромная международная корпорация с десятками тысяч сотрудников и у тебя на Windows Server крутится куча приложений, которые запускаются только на нём, AD, Exchange, и ещё процессы тесто завязаны на Винду.
Будешь ли ты резко отказываться от микрософта и переезжать на Линукс?
Вопрос риторический
Почему я задал этот вопрос, я как системный администратор, столкнулся с клиентом, с которым я сцепился из за того, что его разработчики и бывший сотрудник сисадмин решил установить .NET + C# + Mono + Nginx и все это на линукс.
Естественно меня это взбесило, и я просто отказался все это поддерживать, потому что извините, но .NET проще поддерживать на Windows Server
Очень странно, что они решили использовать mono вместо dotnet (core), но если ты по каким-то своим внутренним предрассудкам отказываешься изучать что-то новое - вопросы в первую очередь к тебе, как к специалисту.
Возможно, твои заказчики хотели перенести какое-то Легаси на Linux+mono без переписывания на актуальную версию dotnet.
https://learn.microsoft.com/ru-ru/dotnet/fundament...
Уверен, что там действительно mono?
Какие конкретно у тебя сложности с настройкой произошли?
Или ты в основном на Windows специализируешься?
Есть. Сервера это не только сайты.
Потому что во всём мире для веб сервисов используется линукс + nginx. это стандарт отрасли. потому что это работает отлично и без глюков. потому что за это ненадо платить кучу бабла на лицензии. потому что Win Server НЕЛЬЗЯ выпускать в интернет БЕЗ отдельного фаерволла перед ней...
Поэтому линукс, и ничего костыльного там нет.
А Вы видимо отказались поддерживать просто потому, что не умеете работать с Linux. Страшного в этом ничего нет впринципе, но надо бы начинать изучать