Net core 5 что нового
Перейти к содержимому

Net core 5 что нового

  • автор:

Net core 5 что нового

10 ноября вышел в долгожданный релиз фреймворк .NET 5 , который является развитием .NET Core в долгой эволюции фреймворка .NET. .NET 5.0 — это первый релиз на пути к унификации платформы .NET, который позволяет более плавно мигрировать с .NET Framework.

Некоторые ключевые моменты в .NET 5:

  • Однофайловые приложения (single file application). Все зависимости приложения теперь можно поместить в один файл с исполняемым файлом. Кроме того, на целевом компьютере теперь необязательно предварительно предустанавливать фреймворк .NET.
  • Улучшение поддержки и разработки десктоп-приложений (Windows Forms, WPF)
  • Новые возможности C# 9.0 и F# 5.0, например, records, программы верхнего уровня, улучшенные выражения switch и т.д.
  • Поддержка Windows ARM64
  • Улучшение производительности по сравнению с предыдущими версиями

Боле подробную информацию про релиз .NET 5 можно найти на официальном сайте Microsoft на странице https://devblogs.microsoft.com/dotnet/announcing-net-5-0/

Вместе с .NET 5 вышли в релиз ASP.NET Core 5.0 и Entity Framework Core 5.0.

Основные новвоведения и улучшения в ASP.NET Core 5.0:

  • Улучшения в привязке модели в MVC, добавлена поддержка для типов records в C# 9
  • Улучшение поддержки Blazor Server и Blazor WebAssembly
  • Встроенная поддержка для OpenAPI и Swagger UI для Web API
  • Фильтры хабов SignalR и параллельное обращение к хабам
  • Авто обновление браузера с помощью команды dotnet watch
  • Улучшения производительности HTTP/2 и gRPC (если верить Microsoft gRPC на ASP.NET производительнее, чем в проектах на Go, С++ или Java)

И некоторые ключевые обновления в EF Core 5.0:

  • Добавлена поддержка автоматической связи Many-to-many
  • Добавлена возможность наследования table-per-type
  • Упрощенное логгирование

Для использования .NET 5.0, а также ASP.NET Core 5 и EF Core 5.0 необходимо установить Visual Studio 16.8 или выше на Windows или последнюю версию Visual Studio for Mac для macOS. Также можно использовать Visual Studio Code, в которой расширение для языка C# уже поддерживает .NET 5.0 and C# 9.

Выпуски и поддержка .NET

Корпорация Майкрософт поставляет основные выпуски, незначительные выпуски и обновления обслуживания (исправления) для .NET. В этой статье описываются типы выпусков, сервисные обновления, диапазоны функций пакета SDK, периоды поддержки и варианты поддержки.

Сведения о настройке версий и поддержке платформа .NET Framework см. в разделе платформа .NET Framework Жизненный цикл.

Типы выпусков

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

  • .NET 6 и .NET 7 являются основными выпусками.
  • .NET Core 3.1 — это первый дополнительный выпуск после основного выпуска .NET Core 3.0.
  • .NET Core 5.0.15 является пятнадцатым исправлением для .NET 5.

Список выпущенных версий .NET и сведения о частоте отправки .NET см. в политике поддержки.

Основные выпуски

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

Дополнительные выпуски

Дополнительные выпуски также включают новые функции, контактные зоны общедоступных API и исправления ошибок, а также могут включать критически важные изменения. Примером является .NET Core 3.1. Разница между этими и основными выпусками заключается в том, что важность изменений ниже. Важность обновления приложения с .NET Core 3.0 до 3.1 ниже важности перехода на следующую версию. Дополнительные выпуски устанавливаются параллельно с предыдущими дополнительными выпусками.

Сервисные обновления

Сервисные обновления (исправления) выпускаются почти каждый месяц, и эти обновления включают исправления ошибок в системе безопасности, а также исправления, не связанные с безопасностью. Например, .NET 5.0.8 был восьмым обновлением для .NET 5. Когда эти обновления включают исправления для системы безопасности, они выпускаются в «день установки исправлений», который всегда приходится на второй вторник месяца. Сервисные обновления должны обеспечивать совместимость. Начиная с .NET Core 3.1 сервисные обновления — это обновления, которые удаляют предыдущее обновление. Например, последнее сервисное обновление для 3.1 после успешной установки удаляет предыдущее обновление 3.1.

Пакеты функций (только для пакетов SDK)

Управление версиями для пакетов SDK для .NET работает немного иначе, чем для среды выполнения .NET. Для обеспечения соответствия новым выпускам Visual Studio обновления пакета SDK для .NET иногда содержат новые функции или новые версии таких компонентов, как MSBuild и NuGet. Эти новые функции или компоненты могут быть несовместимы с версиями, поставляемыми в предыдущих обновлениях пакета SDK для той же основной или дополнительной версии.

Для различения таких обновлений пакет SDK для .NET использует концепцию пакетов функций. Например, первый пакет SDK для .NET 5 был 5.0.100. Этот выпуск соответствует диапазону компонентов 5.0.1xx. Пакеты функций определяют сотни в обозначении исправления в номере версии (три последних цифры). Например, 5.0.101 и 5.0.201 являются версиями в двух разных группах функций, а 5.0.101 и 5.0.199 находятся в одной группе функций. При установке пакета SDK для .NET 5.0.101 пакет SDK для .NET 5.1.100 удаляется с компьютера, если он существует. Если пакет SDK для .NET 5.0.200 установлен на том же компьютере, пакет SDK для .NET 5.0.101 не удаляется.

Дополнительные сведения о связи между версиями пакета SDK для .NET и Visual Studio см. в статье .NET SDK, MSBuild и Visual Studio.

Перекат среды выполнения и совместимость

Основные и дополнительные обновления устанавливаются параллельно с предыдущими версиями. Приложение, созданное для конкретной основной.дополнительной версии, по-прежнему будет использовать эту целевую среду выполнения, даже если установлена более новая версия. Приложение не выполняет автоматический накат для использования более новой основной.дополнительной версии среды выполнения, если только вы не выберете это поведение. Приложение, разработанное для .NET Core 3.0, не запускается автоматически с .NET Core 3.1. Перед развертыванием в рабочей среде рекомендуется перестроить приложение и выполнить тестирование на соответствие более новой основной или дополнительной версии среды выполнения. Дополнительные сведения см. в статьях Накат платформозависимых приложений и Обновление версии среды выполнения автономного развертывания.

Сервисные обновления обрабатываются иначе, чем основные и дополнительные выпуски. Приложение, созданное для целевой платформы .NET 7, выполняется в среде выполнения 7.0.0 по умолчанию. Она автоматически выполняет перекат, чтобы использовать более новую среду выполнения 7.0.1 при установке этого обновления обслуживания. Это поведение используется по умолчанию, поскольку требуется, чтобы исправления для системы безопасности использовались сразу после установки без каких-либо других действий. Можно отказаться от такого поведения наката по умолчанию.

Жизненные циклы версий .NET

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

Программы выпуска

Существует две программы поддержки для выпусков:

  • Выпуски стандартной поддержки терминов (STS) Эти версии поддерживаются до 6 месяцев после следующего основного или дополнительного выпуска. Пример:
    • .NET 5 — это выпуск STS и выпущен в ноябре 2020 года. Она была поддерживается в течение 18 месяцев до мая 2022 года.
    • .NET 7 — это выпуск STS и выпущен в ноябре 2022 года. Она поддерживается в течение 18 месяцев до мая 2024 года.
    • .NET Core 3.1 — это выпуск LTS и выпущен в декабре 2019 года. Она была поддержана в течение 3 лет до декабря 2022 года.
    • .NET 6 — это выпуск LTS и выпущен в ноябре 2021 года. Она поддерживается в течение 3 лет до ноября 2024 года.

    Выпуски, альтернативные между LTS и STS, поэтому более ранний выпуск может поддерживаться дольше, чем более поздний выпуск. Например, .NET Core 3.1 был выпуском LTS с поддержкой до декабря 2022 года. Выпуск .NET 5 поставляется почти год спустя, но вышел из поддержки ранее, в мае 2022 года.

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

    Выбор выпуска

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

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

    Рекомендуется обновить до последней версии пакета SDK, даже если она является выпуском STS, так как она может использовать все доступные среды выполнения.

    Поддержка обновлений обслуживания

    Сервисные обновления .NET поддерживаются, пока не будет выпущено следующее сервисное обновление. Периодичность выпуска — ежемесячно.

    Необходимо регулярно устанавливать сервисные обновления, чтобы гарантировать, что ваши приложения защищены и находятся в поддерживаемом состоянии. Например, если последнее обновление обслуживания для .NET 7 равно 7.0.8, и мы отправим 7.0.9, то 7.0.8 больше не является последним. Затем поддерживаемый уровень обслуживания для .NET 7 — 7.0.9.

    Сведения об актуальных сервисных обновлениях для каждой основной и дополнительной версий см. на странице загрузки .NET.

    End of support

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

    Поддерживаемые операционные системы

    .NET можно запускать в различных операционных системах. Каждая из этих операционных систем имеет жизненный цикл, определенный ее спонсорской организацией (например, Майкрософт, Red Hat или Apple). Эти расписания жизненных циклов следует учитывать при добавлении и удалении поддержки версий операционной системы.

    Если версия операционной системы выходит за пределы поддержки, мы прекращаем тестирование этой версии и предоставляем поддержку этой версии. Для получения поддержки пользователям необходимо перейти на поддерживаемую версию операционной системы.

    Получение поддержки

    У вас есть возможность выбрать между технической поддержкой Майкрософт и поддержкой сообщества.

    Служба поддержки Майкрософт

    Чтобы получить поддержку, требуется поддерживаемый уровень обслуживания (последнее доступное сервисное обновление). Если система работает под управлением .NET 7 и выпущено обновление обслуживания 7.0.8, необходимо установить 7.0.8 в качестве первого шага.

    Поддержка сообщества

    Сведения о поддержке сообщества см. на странице сообщества.

    Совместная работа с нами на GitHub

    Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

    DevDotNet.ORG

    Embedded Systems, IoT, .NET, Docker, Hosting, Linux

    Что нового в .NET 5.0

    Создано автором Anton 16.02.2021 в .NET

    dotnet 5

    10 ноября 2020 вышел в долгожданный релиз фреймворка .NET 5, который является развитием .NET Core в долгой эволюции фреймворка .NET.

    .NET 5.0 — это первый релиз на пути к унификации платформы .NET, позволяющей более плавно мигрировать с .NET Framework.

    Что мы получили с выходом .NET 5? В первую очередь это объединение различных фреймворков построенных на .NET — теперь нет Core, Mono, Xamarin – а есть единый .net5 target. Фактически, .net5 target пришел на замену netcoreapp и netstandard. Дополнительно можно выбрать платформу операционной системы, например: net5.0-android, net5.0-ios, или net5.0-windows (ссылка). Фреймворк стал действительно кроссплатформенным. В нем есть базовый набор классов и зависимые от конкретной операционной системы дополнения. В частности, для Windows есть поддержка привычного WinForms, который был выпущен и проверен ранее в .NET Core 3.1.

    .net unified platform

    .NET унифицированная платформа для различных устройств

    В .NET 5 проведена большая работа по оптимизации как непосредственно производительности приложений, так и скорости компиляции исходного кода. Теперь тесты и ночные сборки в CI выполняются немного быстрее.

    Что касается производительности кода, то в тестах по количеству gRPC запросов в секунду приложение .NET 5 занял второе место после Rust и опередил программный код, скомпилированный Go (диаграмма из блога).

    dotnet gRPC

    Следующим по значимости новшеством .NET 5, безусловно, стало включение новой версии языка C# 9. Наиболее интересным нововведением является появление записей (records). Новый синтаксис сильно упрощает описание неизменяемых моделей данных по сравнению с традиционными классами. В результате получился простой синтаксис декларации и инициализации.

    public record Animal < public string? Name < get; init; >public string? Areal < get; init; >> var brownBear = new Animal < Name = "Bear", Areal = "Siberia" >; var whiteBear = animal with < Areal = "Arctic" >;

    В новшествах языка также можно отметить возможность написания кода программы без использования функции main().

    using System.Console; WriteLine("Hello World!");

    В состав .NET 5 был включен инсталлятор ClickOnce. Теперь есть возможность публикации приложения в виде установочного пакета, который впоследствии можно запустить на нужном компьютере и развернуть там приложение. В состав установочного пакета может быть включен весь фреймворк целиком. Это увеличит объем дистрибутива, но упростит установку на неподготовленный компьютер.

    Получил развитие вариант распространения приложения — Single File Application, который появился в .NET Core 3.1. Можно создать единый исполняемый файл, содержащий в себе все библиотеки с возможностью внедрения, в том числе всех используемых библиотек фреймворка. Теперь файлы стали меньше, и они быстрее запускаются.

    Новая экосистема .NET будет иметь статус LTS (Long Time Support) только для четных версий. Так, например, .NET 5 не будет иметь статуса долговременной поддержки, а .NET 6 будет. Иными словами, следующие выпуски будут: .NET 6 LTS, .NET 7, .NET 8 LTS и т.д.

    Некоторые ключевые моменты в .NET 5:

    • Улучшение поддержки и разработки настольных-приложений (Windows Forms, WPF)
    • Новые возможности C# 9.0 и F# 5.0, например, программы верхнего уровня, улучшенные выражения switch и т.д.
    • Поддержка архитектуры ARM64
    • Улучшение производительности по сравнению с предыдущими версиями

    Вместе с .NET 5 вышли в релиз ASP.NET Core 5.0 и Entity Framework Core 5.0.
    Основные новшества и улучшения в ASP.NET Core 5.0:

    • Улучшения в привязке модели в MVC, добавлена поддержка для типов records в C# 9
    • Улучшение поддержки Blazor Server и Blazor WebAssembly
    • Встроенная поддержка для OpenAPI и Swagger UI для Web API
    • Фильтры хабов SignalR и параллельное обращение к хабам
    • Авто обновление браузера с помощью команды dotnet watch
    • Улучшения производительности HTTP/2 и gRPC (если верить Microsoft gRPC на ASP.NET производительнее, чем в проектах на Go, С++ или Java)

    И некоторые ключевые обновления в EF Core 5.0:

    • Добавлена поддержка автоматической связи Many-to-many
    • Добавлена возможность наследования table-per-type
    • Упрощенное логгирование

    Для использования .NET 5.0, а также ASP.NET Core 5 и EF Core 5.0 необходимо установить Visual Studio 16.8 или выше на Windows или последнюю версию Visual Studio for Mac для macOS. Также можно использовать Visual Studio Code, в которой расширение для языка C# уже поддерживает .NET 5.0 and C# 9.

    Боле подробную информацию про релиз .NET 5 можно найти на официальном сайте Microsoft на страницеAnnouncing .NET 5.0

    Ресурсы
    • Загрузить .NET с сайта Microsoft можно по ссылке Download .NET 5.0.
    • Проект .NET Core на GitHub — dotnet/core.
    • Docker-образы для .NET
    • Docker-образы .NET SDK
    • Docker-образы .NET Runtime
    • Docker-образы .NET Runtime Dependencies
    • Docker-образы .NET Samples

    Ссылки

    • Вышли в релиз .NET 5, ASP.NET Core 5 и EF Core 5.0 — METANIT.COM
    • Что нового в .NET 5? — ВКонтакте
    • Вышел .NET 5. И что? — Хабр
    • Announcing .NET 5.0 — .NET Blog Microsoft
    • Performance Improvements in .NET 5 — .NET Blog Microsoft
    • gRPC performance improvements in .NET 5 — ASP.NET Blog Microsoft
    • .NET 5.0 Examples — richlander/examples.md GitHub

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

    6 мая было объявлено, что следующим после .NET Core 3.0 релизом будет .NET 5. Это будет следующий большой релиз в семействе .NET.

    В будущем останется только один .NET, и вы сможете использовать его для разработки под Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAssembly и другие платформы.

    Мы представим новые .NET API, возможности исполняющей среды и возможности языка как части .NET 5.

    С момента запуска проекта .NET Core мы добавили в платформу около 50 тысяч API .NET Framework. .NET Core 3.0 с помощью .NET Framework 4.8 дополняется большинством недостающих возможностей, благодаря ему стали доступны Windows Forms, WPF и Entity Framework 6. .NET 5 перенял эстафету, в его основу легли .NET Core и всё лучшее из проекта Mono, в результате чего получилась единая платформа, которую можно использовать для всего вашего современного .NET-кода.

    Мы намерены выпустить .NET 5 в ноябре 2020 года, а первая preview-версия станет доступной уже в первой половине 2020 года. Платформа станет доступна вместе с будущими обновлениями Visual Studio 2019, Visual Studio for Mac и Visual Studio Code.

    .NET 5 = .NET Core vNext

    .NET 5 — следующий шаг в .NET Core. Проект призван улучшить .NET в нескольких ключевых аспектах:

    • Создать единые исполняющую среду и фреймворк, которые можно использовать везде, с одинаковым поведением в runtime и опытом разработки.
    • Расширить возможности .NET за счёт лучших наработок из .NET Core, .NET Framework, Xamarin и Mono.
    • Собрать продукт из единой кодовой базы, над которой разработчики (из Microsoft и сообщества) могут вместе работать и расширять её, что позволит улучшить все возможные сценарии.

    Сохранилось всё, что вам нравится в .NET Core:

    • Open source и ориентированность на сообщество GitHub.
    • Кроссплатформенная реализация.
    • Поддержка использования специфических платформозависимых возможностей, таких как Windows Forms и WPF под Windows, а также нативных привязок (bindings) к каждой нативной платформе из Xamarin.
    • Высокая производительность.
    • Side-by-side инсталляция.
    • Маленький размер файлов проектов (SDK-стиль).
    • Интерфейс командной строки (CLI) с широкими возможностями.
    • Интеграция с Visual Studio, Visual Studio for Mac и Visual Studio Code.
    • У вас будет больше возможностей исполняющей среды (подробнее об этом ниже).
    • Возможность вызова кода Java из .NET 5 будет доступна на всех платформах.
    • Вызов кода Objective-C и Swift из .NET 5 будет поддерживаться в нескольких операционных системах.
    • CoreFX будет расширен, чтобы поддерживать статическую компиляцию .NET (ahead-of-time – AOT), для уменьшения потребления ресурсов (footprints) и поддержки большего количества операционных систем.

    Мы пропускаем четвёртую версию, потому что у пользователей может возникнуть путаница с .NET Framework, который уже давно выпускается в версии 4.x. Кроме того, мы хотели ясно дать понять, что .NET 5 — это будущее платформы .NET.

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

    Исполняющие среды

    Mono — первоначальная кроссплатформенная реализация .NET. Она начиналась как open-source альтернатива .NET Framework, и позднее, с ростом популярности iOS- и Android-устройств, мы переориентировали её на мобильный сегмент. Mono — это исполняющая среда, используемая как часть Xamarin.

    CoreCLR — это исполняющая среда, используемая как часть .NET Core. Изначально была ориентирована на поддержку облачных приложений, включая крупнейшие сервисы в Microsoft, а сегодня она также используется для настольных Windows-приложений, IoT и машинного обучения.

    У исполняющих сред .NET Core и Mono много общего (все же, обе они — исполняющие среды .NET), но у каждой есть и свои уникальные возможности. Поэтому имеет смысл дать вам возможность выбирать тот опыт использования, который вам нужен. Сейчас мы работаем над тем, чтобы сделать CoreCLR и Mono подключаемыми заменами друг для друга. Процесс будет таким же простым, как переключение сборки для выбора между разными опциями исполняющей среды.

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

    Высокая производительность и продуктивность

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

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

    Наши усилия по ускорению работы ASP.NET Core, проявившиеся в результатах бенчмарков TechEmpower, являются хорошим примером возможностей JIT и являются нашим вкладом в CoreCLR. Мы постарались подготовить .NET Core для использования контейнеров, это демонстрирует возможности исполняющей среды динамически адаптироваться к ограниченным средам.

    Инструменты разработчиков — ещё одна сфера, в которой JIT прекрасно себя зарекомендовала, например, dotnet watch или режим “edit and continue”. Для работы инструментов часто требуется многократно компилировать и загружать код в одном и том же процессе без перезапуска, и делать это нужно очень быстро.

    Разработчики, использующие .NET Core или .NET Framework, в первую очередь полагаются на JIT. Так что им это должно казаться привычным.

    Стандартным подходом для большинства рабочих нагрузок .NET 5 будет использование CoreCLR исполняющей среды с JIT. Два важных исключения — iOS и клиентская Blazor (WebAssembly), они требуют нативной предварительной (ahead-of-time) компиляции.

    Быстрый запуск, низкое потребление ресурсов процессора (footprint) и уменьшение потребления памяти

    В рамках проекта Mono большинство усилий было нацелено на мобильный сегмент и игровые приставки. Главная возможность и результат этого проекта — AOT-компилятор для .NET, разработанный на основе компилятора LLVM. AOT-компилятор Mono позволяет собирать .NET-код в единый нативный исполняемый код, который может работать на любой машине, как и код на C++. Заранее скомпилированные (AOT) приложения могут эффективно исполняться при ограниченных ресурсах (small places), и при необходимости жертвуют производительностью ради своего запуска.

    Проект Blazor уже использует Mono AOT и одним из первых перейдёт на .NET 5. Мы используем его как один из способов доказательства своих планов.

    Есть два типа AOT-решений:

    • Требующие полной AOT-компиляции.
    • Решения, большая часть кода которых AOT-скомпилирована, но всё же позволяющие использовать JIT или интерпретатор для таких паттернов кода, которые не дружат с AOT (например, дженерики).

    .NET Native — это AOT-компилятор, который мы используем для Windows UWP-приложений. Он относится к первому типу AOT-решений. В этой конкретной реализации мы ограничили .NET API и доступные вам возможности. Это помогло нам понять, что AOT-решения должны покрывать полный спектр .NET API и паттернов.

    AOT-компиляция останется необходимой для iOS, WebAssembly и некоторых игровых приставок. Мы сделаем её опциональной для приложений, которые встраиваются в технику (appliance-like), для которых требуется быстрый запуск и/или низкое потребление ресурсов процессора.

    Основы и схожие требования

    Для нас критически важно продолжать развиваться как платформа со средствами управления запуском, производительностью, потреблением памяти, надёжностью и диагностики. В то же время целесообразно сосредоточить наши усилия. Мы станем больше работать над повышением производительности и надежности в CoreCLR, а также над улучшением запуска и снижением размера файлов компиляторе Mono AOT. Нам это кажется хорошим сочетанием. Производительность и надежность идут рука об руку, как и скорость запуска со снижением размера файлов.

    В улучшение одних характеристик целесообразно вкладывать разные ресурсы, а в улучшение других — нет.

    Возможности диагностики должны быть одинаковыми в рамках всего .NET 5, это касается и функциональности, и производительности. Также важно поддерживать одни и те же процессоры и ОС (за исключением iOS и WebAssembly).

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

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

    Все .NET 5-приложения можно будет собирать с помощью .NET CLI, так что во всех проектах у вас будет единый инструментарий на основе командной строки.

    C# будет развиваться вместе с .NET 5. Разработчики, пишущие .NET 5-приложения, получат доступ к самой свежей версии C# и его свойствам.

    Рождение проекта

    Как техническая команда мы собрались в декабре 2018-го в Бостоне, чтобы начать данный проект. Ведущие архитекторы из команды .NET (Mono/Xamarin и.NET Core) и Unity рассказали о различных технических возможностях и направлении развития архитектуры.

    Теперь мы двигаем проект как единая команда. С декабря мы далеко продвинулись в нескольких проектах:

    • Определили минимальный уровень, который определяет взаимодействие среды исполнения и уровня управляемого кода (managed code layer), с целью сделать >99 % CoreFX общим кодом.
    • Теперь MonoVM может использовать CoreFX и его библиотеки классов.
    • Прогнали на MonoVM все тесты CoreFX, используя его реализацию.
    • Запустили приложения ASP.NET Core 3.0 на MonoVM.
    • Запустили MonoDevelop и Visual Studio for Mac на CoreCLR.

    Заключение

    Проект .NET 5 — важное и вдохновляющее новое направление для .NET. Вы увидите, что .NET станет проще, но при этом станет использоваться шире, обретёт более широкие возможности. Все новые возможности разработки станут частью .NET 5, в том числе новые версии C#.

    Впереди у нас светлое будущее, в котором вы сможете использовать те же .NET API и языки для широкого спектра приложений, операционных систем и архитектур процессоров. Вы сможете легко менять конфигурацию сборки, собирая приложения как вам удобно — в Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps или из командной строки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *