10 ноября 2026 года Microsoft в один день прекращает выпуск обновлений безопасности для двух версий .NET: .NET 8 и .NET 9. После этой даты ни одна уязвимость, обнаруженная в платформе, не будет исправлена ни в одной из этих версий. Если ваша бухгалтерская система, кассовая система или ERP построена на одной из них — а на саудовском рынке таких много, — у вас меньше двух месяцев, чтобы решить, куда двигаться. Для большинства компаний правильная цель — .NET 10 с поддержкой до 14 ноября 2028 года, а не .NET 11, первый релиз-кандидат которого вышел всего два дня назад.

Что произошло 8 сентября

8 сентября 2026 года Microsoft объявила, что .NET 11 достиг стадии Release Candidate 1 с лицензией поддержки go-live — то есть Microsoft официально поддерживает его использование в реальной эксплуатации до выхода финального выпуска. В тот же день вышли плановые обслуживающие обновления для .NET 10, .NET 9 и .NET 8.

Это техническая новость. Новость, которая важна владельцу бизнеса, находится на совсем другой странице: на официальной странице политики поддержки, обновленной в тот же день, где прямо сказано, что .NET 8 и .NET 9 выходят из поддержки 10 ноября 2026 года. Яркий анонс выпуска собирает внимание, а строка, которая стоит вам реальных денег, записана в скучной таблице.

Почему выпуск с "долгосрочной поддержкой" лишается поддержки

Microsoft выпускает крупный релиз .NET каждый ноябрь. Четные выпуски имеют долгосрочную поддержку и получают три года бесплатных исправлений; нечетные имеют стандартную поддержку и получают два.

.NET 8 вышел 14 ноября 2023 года, поэтому его три года истекают в ноябре 2026 года. .NET 9 вышел 12 ноября 2024 года, поэтому его два года истекают примерно в тот же момент. Вот почему оба выпуска приходятся на 10 ноября. Именно здесь команды и застают врасплох: "долгосрочная поддержка" не означает поддержку навсегда. Она означает три года, отсчитываемые со дня выпуска, и значительная часть этого срока уже прошла, пока никто за ним не следил.

Правильная цель — .NET 10, а не .NET 11

Рефлекторная реакция на такую новость — "тогда обновимся до самой новой". Для большинства бизнес-систем это неверное решение, и причина — в той же таблице поддержки.

.NET 10 вышел 11 ноября 2025 года, это выпуск с долгосрочной поддержкой, и он поддерживается до 14 ноября 2028 года. Одно обновление дает вам чуть больше двух лет стабильности без повторного возвращения к вопросу. .NET 11 — нечетный выпуск, поэтому у него только два года стандартной поддержки, и он выйдет из поддержки раньше .NET 10, несмотря на то что новее. Переход на более новую версию, срок которой истекает раньше, — это не обновление, а отсрочка с приложенным дополнительным счетом.

Есть и второе соображение. Сам релиз-кандидат .NET 11 поддерживается только до 13 октября 2026 года, потому что это переходная сборка, с которой от вас ожидают уйти — на следующий кандидат, а затем на ноябрьский выпуск. Тот, кто читает "go-live" как приглашение установить релиз-кандидат в бухгалтерскую систему и оставить его там, подписался на ежемесячный цикл обновлений, вместо того чтобы избежать его.

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

Что на самом деле приносит .NET 11

Чтобы решение опиралось на знание, а не на уклонение, вот что содержит релиз-кандидат. В C# версия 15 стабилизировала типы-объединения — более понятный способ выразить значение, которое может принимать больше одной формы, например операцию, которая либо завершается успешно, либо завершается ошибкой по конкретной причине. В инструментах команда тестирования улучшила работу с мобильными приложениями и получила средства управления на уровне запуска.

При публикации контейнеров создание образов теперь воспроизводимо и не загружает повторно уже существующие слои, что сокращает время развертывания и упрощает аудит того, что вы выпустили. В управлении пакетами обновление пакетов с известными уязвимостями теперь работает, даже когда предупреждения рассматриваются как ошибки, — старая загвоздка, из-за которой командам приходилось отключать проверку безопасности только ради того, чтобы сборка прошла. В ASP.NET Core доработаны API обновления аутентификации SignalR, а цепи Blazor Server теперь обновляют свое состояние после обновления, вместо того чтобы держаться за устаревшую идентичность. В системах Unix появились отчеты о сбоях внутри процесса, а значит, более качественная диагностика, когда сервер падает в три часа ночи.

Это настоящие улучшения. Ни одно из них не перевешивает риск запуска финансовой системы на версии, которая истекает раньше альтернативы.

Почему это вопрос соответствия требованиям, а не технический

Использование платформы, которая больше не получает исправлений безопасности, — это не вопрос инженерных предпочтений. Закон о защите персональных данных (PDPL) обязывает любую организацию, обрабатывающую данные клиентов, применять надлежащие меры защиты, и любая серьезная проверка безопасности спросит, какую версию платформы вы используете и когда заканчивается ее поддержка. "Мы на версии, которая вышла из поддержки восемь месяцев назад" — это не тот ответ, который можно отстоять перед аудитором, перед корпоративным клиентом, присылающим вам анкету по безопасности перед подписанием договора, или перед киберстраховщиком.

То же касается систем электронного выставления счетов, подключенных к платформе Fatoora. Система, которая подписывает счета цифровой подписью и передает их государственному органу, должна работать на платформе, которая все еще получает криптографические исправления. Это не внутренняя деталь — это часть цепочки доверия, на которой держится ваш счет.

План действий отсюда до ноября

  • На этой неделе — выясните, где вы находитесь. Попросите поставщика или техническую команду составить перечень версий .NET, на которых работает каждая ваша система, включая небольшие внутренние инструменты и фоновые службы, о которых никто не думает. На сервере это показывает dotnet --list-runtimes; в самом проекте это запись о целевой платформе в файле проекта.
  • На следующей неделе — сортировка. Отметьте все, что работает на .NET 8 или старше, и все, что работает на .NET 9. Все, что уже на .NET 10, в безопасности до 2028 года. Все, что на .NET 6 или 7, уже годами вне поддержки и требует срочных мер, а не графика.
  • В течение двух недель — прочитайте список критических изменений. Microsoft публикует список критических изменений для каждого выпуска. Переход с 8 на 10 обычно проходит гладко, но чтение перед началом экономит дни.
  • В течение месяца — сначала обновите тестовую среду. Смените целевую платформу, соберите проект, запустите тесты, а затем прежде всего прогоните систему на копии реальных данных.
  • До ноября — разверните. Оставьте запас безопасности не менее двух недель до 10 ноября и не развертывайте во время закрытия месяца или в пиковый сезон продаж.
  • Один раз и навсегда. Внесите 14 ноября 2028 года в календарь компании уже сегодня и установите правило: каждое обновление идет на следующий четный выпуск. Так это перестанет быть ежегодным сюрпризом и станет известной статьей бюджета.

Если систему поставил поставщик

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

Источники

  • Microsoft — Announcing .NET 11 Release Candidate 1, 8 сентября 2026 года: devblogs.microsoft.com
  • Microsoft — официальная политика поддержки .NET и даты окончания поддержки: dotnet.microsoft.com
  • Microsoft — Критические изменения в .NET 11: learn.microsoft.com
  • Саудовское управление по данным и искусственному интеллекту (SDAIA) — Закон о защите персональных данных (PDPL): sdaia.gov.sa