Microsoft опубликовал открытую платформу .NET 7

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3214
Зарегистрирован: 20.08.2022

#

Microsoft опубликовал открытую платформу .NET 7
Дата публикации:Thu, 10 Nov 2022 12:02:00 +0300


Компания Microsoft представила значительный выпуск открытой платформы .NET 7, созданной благодаря унификации продуктов .NET Framework, .NET Core и Mono. На основе .NET 7 можно создавать многоплатформенные приложения для браузера, облачных систем, рабочего стола, IoT-устройств и мобильных платформ, используя единые библиотеки и общий процесс сборки, не зависящий от типа приложения. Сборки .NET SDK 7, .NET Runtime 7 и ASP.NET Core Runtime 7 сформированы для Linux, macOS и Windows. .NET Desktop Runtime 6 поставляется только для Windows. Связанные с проектом наработки распространяются под лицензией MIT. Сопровождение ветки .NET 7 будут осуществляться в течение 18 месяцев до 14 мая 2024 года.

В состав .NET 7 входит runtime CoreCLR с JIT-компилятором RyuJIT, стандартные библиотеки, библиотеки CoreFX, WPF, Windows Forms, WinUI, Entity Framework, интерфейс командной строки
dotnet, а также инструменты для разработки микросервисов, библиотек, серверных, графических и консольных приложений. Отдельно опубликованы стек для разработки web-приложений ASP.NET Core 7.0, ORM-прослойка Entity Framework Core 7.0 (драйверы имеются, в том числе, для SQLite и PostgreSQL), библиотека WPF 7 (Windows Presentation Foundation), фреймворк Windows Forms 7 для разработки GUI, платформа Orleans 7 для создания приложений Cloud Native, фреймворк MAUI 7 для разработки многоплатформенных интерфейсов пользователя, а также выпуски языков C# 11 и F# 7. Поддержка .NET 7.0 и C# 11 включена в свободный редактор кода Visual Studio Code.

Особенности нового выпуска:
  • Проведена унификация базовой библиотеки классов (BCL, Base Class Library) для использования в различных типах приложений, включая программы для настольных систем, web-приложений, облачных платформ, мобильных приложений, игр, встраиваемых программ и систем машинного обучения. Для разработки различных типов приложений можно использовать один общий SDK, Runtime и набор библиотек.

    Предоставлена возможность привязки приложения к API, соответствующему выпуску .NET 7, через определение целевой платформы "net7.0", например,
    "<TargetFramework>net7.0</TargetFramework>". Для привязки к специфичным для каких-то платформ API при определении цели можно детализировать тип платформы, например, указав "net7.0-android".

    Значительно улучшена поддержка архитектуры ARM64 и продолжена работа по достижению паритета в производительности приложений .NET при выполнении на архитектурах x86 и ARM64. В runtime повышена эффективность использования кэша третьего уровня на системах ARM64. Задействованы инструкции LSE для разграничения доступа к памяти из параллельных потоков, что привело к снижению задержек на 45%. В библиотеке добавлены обработчики, использующие векторные типы Vector64, Vector128 и Vector256, а также на базе векторных инструкций переписаны функции EncodeToUtf8 и DecodeFromUtf8, что обеспечило увеличение их производительности до 60% (для функций NarrowUtf16ToAscii и GetIndexOfFirstNonAsciiChar прирост производительности достигает 35%). В целом скорость прохождение тестов на платформе ARM64 выросла на 10-60%.
    Изображение
    Улучшена поддержка платформы Linux, в том числе в штатные репозитории Ubuntu 22.04 добавлены пакеты с .NET 6 и предоставлен оптимизированный, компактный и готовый к использованию docker-образ для быстрого развёртывания контейнеров с приложениями на базе .NET.


    Добавлена поддержка 64-разрядной архитектуры IBM Power (ppc64le).

    Предложен инструментарий .NET Upgrade Assistant для упрощения перевода старых приложений на ветки .NET 6 или .NET 7. В новой версии расширена поддержка миграции приложений с ASP.NET на ASP.NET Core, добавлены анализаторы и корректировщики кода для WinForms, WPF и библиотеки классов, реализована поддержка анализа исполняемых файлов, добавлена поддержка платформы UWP (Universal Windows Platform).

    Расширены возможности по созданию приложений для облачных систем (cloud-native) и платформ PaaS (платформа как услуга). Предоставлена возможность создания приложений, упакованных в изолированные контейнеры, при помощи команды "dotnet publish".

    Расширены средства для отслеживания состояния приложений и сбора метрик об их работе. Добавлены новые события и методы для анализа активности и производительности приложения.
    В языке C# 11 добавлена поддержка необработанных строковых литералов, которые могут включать спецсимволы без необходимости их экранирования (подобные литералы выделяются тремя кавычками). Предложены обобщённые интерфейсы (generic) для математических функций и предоставлена возможность определения статических элементов в виртуальных интерфейсах, что позволило применить методы обобщённого программирования для выполнения математических операций без точной информации о типе значений.
    Расширены возможности стандартной библиотеки. Добавлен API System.Formats.Tar для работы с архивами в формате Tar. В функции работы со временем (TimeStamp, DateTime и т.п.) добавлена поддержка микросекунд и наносекунд. В System.Text.Json реализована возможность управления сериализацией и десериализацией типов .NET.
    В интерфейсе командной строки "dotnet new" добавлена поддержка автодополнения шаблонов типовых проектов через нажатие клавиши Tab.

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

    В NuGet добавлен режим централизованного управления пакетами, позволяющий управлять зависимостями сразу для нескольких проектов.

    Повышена производительность JIT-компилятора. Добавлена поддержка механизма OSR (On Stack Replacement) для изменения кода уже выполняемых методов, что позволяет вносить оптимизации в методы, выполнение которых занимает много времени, не дожидаясь завершения текущего вызова (в тесте TechEmpower отмечается повышение производительности обработки первых запросов на 10-30%).
    Повышена эффективность оптимизации на основе результатов профилирования кода (PGO - Profile-guided optimization), позволяющей учитывать особенности, определяемые во время выполнения программы.

    Добавлена поддержка компиляции в самодостаточные исполняемый файлы (Native AOT), в которых весь проект изначально скомпилирован в машинный код целевой платформы без использования промежуточного кода и без применения JIT.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=58084

Жизнь за Нер'зула!

Ответить