Мы рады объявить об очередной вехе в истории .NET. Отмечая 20-летие технологии, .NET 7 Preview 1 знаменует собой первый шаг вперед к следующим 20 годам .NET.

ASP.NET Core Preview 1 и EF7 Preview 1 также были выпущены.

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

.NET 7 Preview 1 включает аннотации к API для поддержки возможности обнуления, текущую оптимизацию JIT-компилятора, новые API и поддержку дополнительных сценариев горячей перезагрузки.

Выпуски .NET включают продукты, библиотеки, среду выполнения и инструменты и представляют собой совместную работу нескольких групп внутри и вне Microsoft. Более широкие темы, затронутые в этом сообщении блога, не охватывают все ключевые сценарии и инвестиции в .NET 7. Они представляют собой большие области, но являются лишь частью всей важной работы, связанной с .NET 7. Мы планируем сделать значительные инвестиции в ASP.NET Core, Blazor, EF Core, WinForms, WPF и другие платформы. Вы можете узнать больше об этих областях, прочитав планы развития продуктов:

Вы можете скачать .NET 7 Preview 1 для Windows, macOS и Linux:

.NET 7 был протестирован с Visual Studio 17.2 Preview 1. Мы рекомендуем вам использовать предварительные сборки, если вы хотите попробовать .NET 7 с продуктами семейства Visual Studio. Поддержка Visual Studio для Mac для предварительных версий .NET 7 пока недоступна, но скоро появится.

Современный клиент: .NET Multi-platform App UI (.NET MAUI)

.NET MAUI — это будущее кроссплатформенного нативного пользовательского интерфейса с .NET, и он станет частью .NET 7. Во вторник мы выпустили .NET MAUI Preview 13. В настоящее время мы сосредоточены на поддержке .NET MAUI для .NET. 6, и мы ожидаем скоро выпустить релиз-кандидат (RC). После того, как у нас будет доступный RC, мы сосредоточимся на поставке дополнительных RC, пока не достигнем качества, необходимого для общедоступности (GA). После того, как .NET MAUI GA будет выпущен для .NET 6, мы включим его в .NET 7 и рассмотрим улучшение внутреннего цикла разработки, поддержку новейших инструментов .NET SDK, более высокую производительность приложений, совместное использование большего количества кода и расширенный история взаимодействия. Ознакомьтесь со статусом .NET MAUI и дорожной картой проекта для получения дополнительной информации.

Современное облако: Cloud Native и контейнеры

Облачные нативные приложения создаются с нуля, чтобы использовать преимущества современных веб-ресурсов, таких как службы баз данных и размещенные контейнеры. Облачная архитектура может улучшить масштабирование крупных приложений за счет создания автономных подсистем (обычно называемых микросервисами), которые развертываются и масштабируются независимо от других областей приложения, снижая затраты в долгосрочной перспективе. Архитектура микросервисов является популярным подходом, поскольку она гибкая и предназначена для развития и масштабирования до пределов, которых трудно достичь в монолитной архитектуре.

NET 7 упростит создание облачных приложений за счет улучшений для разработчиков, таких как:

  • Упрощение установки и настройки, необходимых для реализации безопасной аутентификации и авторизации.

  • Улучшение производительности запуска и выполнения приложений.

Мы продолжим инвестировать в Orleans, кросс-платформенную платформу .NET для создания распределенных приложений, которую называют «распределенной .NET». Мы продолжим улучшать исчерпывающую документацию по Orleans и упрощать ее использование и внедрение, улучшая интеграцию Orleans с существующими облачными службами, такими как Azure App Services и Azure Container Apps.

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

Чтобы помочь клиентам справиться с этими проблемами, мы планируем внести значительные улучшения в разработку .NET с помощью контейнеров в .NET 7. Например, мы рассмотрим создание контейнеров непосредственно через MSBuild в качестве новой возможности SDK. Мы планируем улучшить телеметрию, чтобы улучшить наблюдаемость контейнеров. Мы также сосредоточимся на том, чтобы сделать наши образы контейнеров меньше, быстрее и безопаснее, одновременно изучая востребованные модели, такие как без корневого доступа и без дистрибутива.

Модернизация: обновление приложений .NET

С момента выпуска .NET 6 разработчики обновляют свои приложения, чтобы воспользоваться новыми преимуществами повышения производительности, такими функциями производительности, как минимальные API и горячая перезагрузка, новыми инновациями среды выполнения и языка C#, а также доступностью зрелой экосистемы библиотек и инструментов. В .NET 7 мы продолжим предоставлять вам возможность переносить ваши существующие приложения .NET на новейшие платформы и технологии .NET. Дополнительные анализаторы, средства исправления кода и поддержка дополнительных типов приложений в помощнике по обновлению .NET помогут вам уверенно обновлять еще больше вашего портфеля приложений и тратить меньше времени на повторяющиеся задачи, связанные с обновлением.

Мы также знаем, что у каждой из моделей приложений .NET (ASP.NET, WinForms, WPF и т. д.) есть свои уникальные проблемы с модернизацией и может отсутствовать функциональность, необходимая вам как разработчику, или поддержка самой платформы. Для некоторых из них, таких как WCF, у вас может не быть четкого направления. Мы сосредоточимся на предоставлении соответствующих руководств, документации и инструментов, чтобы упростить обновление этих моделей приложений .NET.

Поддержка

.NET 7 является текущим выпуском, то есть он будет получать бесплатную поддержку и исправления в течение 18 месяцев с даты выпуска. Важно отметить, что качество всех релизов одинаково. Единственная разница между LTS и Current выпусками — это продолжительность поддержки. Дополнительные сведения о политиках поддержки .NET см. в официальной политике поддержки .NET и .NET Core.

Preview 1

Эти фичи стали доступны в .NET 7 Preview 1.

Nullable annotations для Microsoft.Extensions

Мы добились прогресса в аннотировании библиотек Microsoft.Extensions.* в рамках nullability. В .NET 7 Preview 1 следующие библиотеки были аннотированы для поддержки значений NULL:

  • Microsoft.Extensions.DependencyInjection.Abstractions

  • Microsoft.Extensions.Logging.Abstractions

  • Microsoft.Extensions.Primitives

  • Microsoft.Extensions.FileSystemGlobbing

  • Microsoft.Extensions.DependencyModel

  • Microsoft.Extensions.Configuration.Abstractions

  • Microsoft.Extensions.FileProviders.Abstractions

  • Microsoft.Extensions.FileProviders.Physical

  • Microsoft.Extensions.Configuration

  • Microsoft.Extensions.Configuration.Binder

  • Microsoft.Extensions.Configuration.CommandLine

  • Microsoft.Extensions.Configuration.EnvironmentVariables

  • Microsoft.Extensions.Configuration.FileExtensions

  • Microsoft.Extensions.Configuration.Ini

  • Microsoft.Extensions.Configuration.Json

К моменту выпуска .NET 7 мы планируем аннотировать все библиотеки Microsoft.Extensions.*, чтобы они могли принимать значения NULL. Вы можете просмотреть оставшиеся библиотеки и следить за ходом их выполнения на dotnet/runtime#43605.

Наблюдаемость

Продолжаем улучшать API трассировки:

  • Добавление перегрузки к ActivityContext.TryParse позволяет анализировать и создавать объект ActivityContext, в том числе, если контекст действия был распространен из удаленного родителя (связанный запрос).

  • Добавление метода Activity.IsStopped(), чтобы указать, остановлен ли объект Activity (связанный запрос).

И это далеко не все. Больше новинок - тут.

Дальше - больше

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

Добро пожаловать в .NET 7.

Комментарии (19)


  1. CatalogLoader
    23.02.2022 10:37
    +4

    Жду когда же MAUI в линукс подвезут. Всех с праздником! ????????‍????????


    1. MonkAlex
      23.02.2022 11:44
      +2

      А разве обещали? По моему шла речь о том, что опенсорц сам как-нибудь запилит поддержку Linux.


      1. rehci
        23.02.2022 12:15
        +2

        Multi-platform App UI уровня /microsoft/.


        1. light_and_ray
          23.02.2022 18:59
          +1

          Особенно смешит позиционировани UWP приложений, как кроссплатформенность ????


      1. QuAzI
        23.02.2022 18:39

        MAUI, он как бы продолжение Xamarin.Forms, только из него выпилили то, что уже работало. А далее у них всё это сводится к той же истории, как с WPF "вы там у себя делайте что хотите, но к себе мы это не примем". Что уж говорить, если реально под даже под заявленную мобилку новый чистый проект не собирается, а из релиза чуть не убрали хот релоад буквально накануне.

        С докерами то порядок всё никак, которые вроде как официально "тащат". И их вечно отваливающийся резолв.
        А хотите про тимс? Там вот прям много...


      1. tartony
        24.02.2022 11:05

        Кажется, добавить поддержку Linux = выстрелить в ногу Windows.


    1. Kolonist
      23.02.2022 12:42

      Да, вроде, и не собирались.


    1. vabka
      23.02.2022 13:55
      +2

      Так MS же сразу заявил, что не будет заниматься поддержкой MAUI на линухе.
      Если нужен кроссплатформенный десктопный UI на дотнете — посмотри в сторону авалонии


    1. KislyFan
      23.02.2022 17:23

      Не подвезут, но один из разработчиков MAUI запилил форк в котором "возможно" будет реализована поддержка GtkSharp


  1. ncr
    23.02.2022 13:23

    О, и сюда дошла мода раз в год мажор инкрементить.


  1. ColdPhoenix
    23.02.2022 13:47
    +1

    А .NET 6 то доделали?

    А то вроде как до сих пор мобильные платформы не могут потреблять .NET 6 библиотека(месяц назад в релизной студии уж точно), причем MAUI не сильно-то и интересен.


    1. vabka
      23.02.2022 13:56

      Ну так мобильные платформы же не .net6 таргетят. Мобильным платформам .netstandard нужен


      1. ColdPhoenix
        23.02.2022 14:06

        .netstandard остановился на 2.1 и там есть масса ограничений.

        Они планировали ввести .net 6 как новый стандарт в том числе, перевести мобильные приложения на новый тип проекта, но пока так и не вышло в релиз, в превью доступно(цель проекта net6.0-android например)


  1. Arbane
    23.02.2022 21:45

    Каждую секунду выходит новая версия .Net :) Не успевает даже документация.


  1. AuDim
    24.02.2022 11:13

    Так не собираются мягкие его подвозить в линукс.
    От слова совсем :(

    Или я чего не знаю?


    1. vabka
      24.02.2022 12:03

      MAUI не планируется завозить в Linux официально.


      1. kira-dev
        24.02.2022 17:13

        А в чем смысл тогда?


        1. vabka
          24.02.2022 17:46

          А смысл в том что доля линукса в среде десктопов ничтожно мала, но при этом очень разношёрстна => поддерживать его на достаточном уровне качества очень дорого и неоправданно с тем подходом, который использует Microsoft и MAUI.

          Если вам нужен какой-то фреймворк для разработки GUI-приложений на C# для Linux, то посмотрите в сторону Avalonia и Uno - они уже доказали свою готовность к использованию в реальной разработке, и у них есть достаточно большое сообщество. Нет смысла ждать подачек от MS.


          1. rehci
            25.02.2022 18:49

            Это все отговорки для отговорок. Gtk и Qt как-то поддерживают и ничего, нормально все. А по поводу разношерстна, достаточно официально поддерживать одну убунту, которой ровно две версии Текущая и LTS. Они не хотят играть на руку конкуренту Винды -- вот и вся причина.

            доля линукса в среде десктопов ничтожно мала

            Это не мешало делать поддержку графических приложений в WSL, да и сам WSL.