company_banner

Представляем .NET 5 Preview 1

    В конце прошлого года мы выпустили .NET Core 3.0 и 3.1. В этих версиях добавлены модели настольных приложений Windows Forms (WinForms) и WPF, ASP.NET Blazor для создания одностраничных приложений и gRPC для кроссплатформенного обмена сообщениями на основе контрактов. Мы также добавили шаблоны для создания сервисов, крутое генерирование клиентского кода для общения с gRPC, сервисы REST API и многое другое. Мы рады, что .NET Core 3 стала самой быстро-принятой версией .NET, и за последний год у нас появился еще миллион пользователей.

    Мы также работали над этими выпусками, чтобы завершить перенос моделей приложений из .NET Framework. В .NET Core 3 мы перенесли все наиболее используемые модели приложений, а также представили новые кроссплатформенные инфраструктуры вместо тех, которые не были портированы.

    В ожидании следующего основного выпуска .NET 5 мы продолжим объединять .NET в единую платформу, включив нашу модель приложения для мобильных устройств .NET (Xamarin) в .NET 5. .NET 5 будет включать ASP.NET Core, Entity Framework Core, WinForms, WPF, Xamarin и ML.NET. Впервые вся платформа будет использовать унифицированный BCL (библиотеки базовых классов) для всех моделей приложений. Наличие версии 5, которая выше, чем у .NET Core и .NET Framework, также дает понять, что .NET 5 — это будущее .NET, единой унифицированной платформы для создания приложений любого типа.

    Мы говорили это много раз, но мы еще раз повторим; .NET Core, а затем .NET 5 — это .NET, с помощью которого вам стоит создавать все свои новые приложения. .NET Framework будет поддерживаться до тех пор, пока поддерживается сама Windows. Мы будем продолжать обеспечивать безопасность и исправлять ошибки, а также обновлять сетевые и крипто API. Он будет оставаться безопасным и поддерживаться для работы ваших старых приложений на .NET Framework.



    Установка .NET 5.0 Preview 1


    Сегодня мы выпускаем первую Preview .NET 5, полноценный выход которой запланирован на конец этого года в ноябре.


    Читайте обновления ASP.NET Core в .NET 5 Preview 1, чтобы узнать о сегодняшнем выпуске ASP.NET Core.

    В Preview 1 впервые включена поддержка Windows ARM64. Сегодняшняя версия также включает в себя runtime .NET Core. Мы ожидаем, что в Preview 2 будет добавлен SDK (ядро ASP.NET, но не WPF или Windows Forms). Более поздний предварительный просмотр будет включать в себя WPF и Windows Forms. Поддержка Windows ARM64 также будет перенесена в .NET Core 3.1. Мы поделимся более подробной информацией об этом в посте о Preview 2.

    Обновление существующих проектов


    Вы можете обновить существующие проекты, обновив целевую платформу следующим образом:

    <TargetFramework>netcoreapp5.0</TargetFramework>

    Топ-цели .NET 5


    • Унифицированный опыт .NET SDK:
      • Один BCL (библиотека базовых классов) для всех приложений .NET 5. Сегодня приложения Xamarin используют Mono BCL, но перейдут на использование .NET Core BCL, улучшая совместимость между нашими моделями приложений.
      • Мобильная разработка (Xamarin) интегрирована в .NET 5. Это означает, что .NET SDK будет поддерживать mobile. Например, вы можете использовать «dotnet new XamarinForms» для создания мобильного приложения.
    • Нативные приложения, поддерживающие несколько платформ: проект «Одно устройство», который поддерживает приложение, которое может работать на нескольких устройствах, например Window Desktop, Microsoft Duo (Android) и iOS, с использованием собственных элементов управления, поддерживаемых на этих платформах.
    • Веб-приложения, поддерживающие несколько платформ: один проект Blazor, который поддерживает приложение, которое может работать в браузерах, на мобильных устройствах и как собственное настольное приложение (например, Windows 10x).
    • Собственные облачные приложения: высокопроизводительные микросервисы с одним файлом (.exe) <50 МБ и поддержка создания нескольких проектов (API, веб-интерфейсов, контейнеров) как локально, так и в облаке.
    • Непрерывные улучшения, такие как: ускорение алгоритмов в BCL, улучшения поддержки контейнеров во время выполнения, поддержка HTTP3.

    Preview 1 еще не содержит результатов всех этих целей, но мы будем продолжать анонсировать больше возможностей в будущих превью.

    Улучшения в Preview 1


    Следующие улучшения в Preview 1:

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


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

    Улучшение качества кода в RyuJIT


    Каждый релиз включает набор улучшений производительности для кода, который генерирует JIT. Мы называем этот тип улучшений «CQ» или качество кода. В большинстве случаев эти улучшения также применяются к коду, созданному для готовых к запуску образов.


    Диагностика нагрузки сборки добавлена в event pipe


    Мы добавили информацию о загрузке сборки в event pipe. Это улучшение — начало доступности аналогичных диагностических функций, которые являются частью .NET Framework с Fusion Log Viewer. Теперь вы можете использовать dotnet-trace для сбора этой информации, используя следующую команду:

    dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]

    Рабочий процесс описан в разделе Trace Assembly Loading with Event Pipe. Вы можете увидеть информацию о загрузке сборки для простого тестового приложения.



    API для профилирования событий (Event Pipe)


    Event Pipe — это новая подсистема и API, которые мы добавили в .NET Core 2.2, чтобы сделать возможным выполнение диагностик производительности и других в любой операционной системе. В .NET 5.0 Event Pipe был расширен, чтобы профилировщики могли записывать события Event Pipe. Этот сценарий важен для инструментов профилировщиков, которые ранее использовали ETW для мониторинга поведения и производительности приложений.

    Консолидация репозиториев GitHub


    Как часть выпуска .NET 5, мы сократили количество репозиториев на GitHub, которые использовались для создания и упаковки .NET. Границы репозитория оказывают значительное влияние на многие аспекты проекта, включая сборку и управление проблемами. С .NET Core 1.0 у нас было более 100 репозиториев в ASP.NET, EF и .NET Core. Теперь все изменилось. Мы также перенесли почти все репозитории в dotnet org.

    Ознакомьтесь с новыми, консолидированными репозиториями:

    • dotnet/runtime (были dotnet/corefx, dotnet/coreclr, и dotnet/core-setup)
    • dotnet/aspnetcore (было множество репозиториев в aspnet org)
    • dotnet/sdk (были dotnet/sdk, dotnet/cli)
    Microsoft
    Microsoft — мировой лидер в области ПО и ИТ-услуг

    Комментарии 18

      –2
      .NET Framework будет поддерживаться до тех пор, пока поддерживается сама Windows.

      Ну вот зачем Вы так, у меня паника начинается.

      Свистопляска с платформозависимыми библиотеками продолжается?
      image
        +6

        Почему то, что изображено на картинке, называется "свистопляской"? Вы знаете какой-то другой способ добавить платформозависимую библиотеку в кросс-платформенную программу?

          0
          Это из серии — ожидание vs реальность. Когда читаешь, что модульность — это реально круто, а потом надо за собой эту папочку везде таскать. Извиняюсь за нытьё, просто первый раз переводил проект на .Net Core и опыт оказался непривычно болезненным.
            +1

            Почему таскать одну папку вам кажется более трудно чем сотню файлов приложения рядом?

              0
              Таскать в каком смысле? Просто экзешники уже сейчас можно «нативно» в один файл паковать, а для библиотек есть вещи вроде ILMerge. Причём и то и другое можно добавить в пайплайн/билд процесс.
            0

            ну а шош поделать то

            +2
            так что же использовать для создания оконных кросс-платформенных приложений?
              0

              Qt/Electron

                +1
                все же в рамках семейства .net
                  0

                  Blazor + Electron.NET, как вариант. Если всех возможностей Electron не нужно и не хочется таскать с собой целый браузер, можно заменить его на WebWindow (требует Edge Chromium под Windows).

                    +1
                    вот это и печалит, что походу дальнейшее развитие оконных приложений будет происходить на браузерных движках, если используем платформу .net(авалонию не расматриваем, пока сами мелкомягкие её не заметили).
                +2
                AvaloniaUI, не?
                  +1
                  пробовал, к примеру:
                  запустил тот же родной WPF в два момента сделал обработчик клика на кнопке, с Авалония там так просто не вышло, да и конструктора форм еще нет, хотя для половина элементов можно использовать штатный под wpf и сгенерированный код копировать в проект с авалония, но все это шаманство отталкивает.
                0
                Улучшения для фолдинга null checks – Удалите необходимость генерировать null checks в большем количестве случаев, наблюдая больше шаблонов, где null checks, вероятно, не нужны.

                Перевод конечно топорный очень местами. Я должен удалять проверки на null? Зачем?


                Второй вопрос — если на всех транспарантах написано "Забудьте про нет фреймворк, неткор, есть только единый net" то почему таргет называется внезапно netcoreapp5.0?

                  0

                  Так очевидно же: потому что исторически сложилось.


                  Кстати, тагрет хотят всё-таки переименовать в net5.0

                    0

                    Тяжело понять эту аргументацию для проекта который только-только в превью1 дополз.


                    Надеюсь, поправят, а то опять будет кто в лес, кто по дрова.

                0

                спасибо ребята! обожаю .net! ждём обновления и blazor web assembly!

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое