.NET 7: различия между версиями

Материал из DZWIKI
Перейти к навигации Перейти к поиску
Строка 50: Строка 50:


=== Централизованное управление пакетами (CPM) ===
=== Централизованное управление пакетами (CPM) ===
Управление зависимостями для многопроектных решений может оказаться сложной задачкой. Теперь же в ситуациях, когда требуется управление общими зависимостями для нескольких проектов, вы можете использовать централизованное управление NuGet пакетами<ref>{{cite web
Управление зависимостями для многопроектных решений может оказаться сложной задачкой. Теперь же в ситуациях, когда требуется управление общими зависимостями для нескольких проектов, вы можете использовать централизованное управление [[NuGet]] пакетами<ref>{{cite web
|url          = https://learn.microsoft.com/en-us/nuget/consume-packages/Central-Package-Management
|url          = https://learn.microsoft.com/en-us/nuget/consume-packages/Central-Package-Management
|title        = Central Package Management (CPM)
|title        = Central Package Management (CPM)

Версия от 23:24, 16 ноября 2022

.NET 7

Нововведения .NET 7

Обзор нововведений .NET 7[1].

Native AOT

AOT (ahead-of-time) – компиляция приложения не в промежуточный, а сразу в машинный код. Native AOT использует ahead of time компилятор для компиляции IL в машинный код во время публикации self-contained[2] приложения. Native AOT был переведён из статуса экспериментального. Основными преимуществами native AOT приложений являются:

  • время запуска;
  • использование памяти;
  • работа на платформах с ограничениями (JIT недоступен).

Native AOT приложения имеют ряд ограничений:

  • нет динамической загрузки (например, Assembly.LoadFile);
  • нет генерации кода во время выполнения (например, System.Reflection.Emit);
  • нет C++/CLI;
  • и т. д.

On Stack Replacement (OSR)

OSR[3] позволяет заменять машинный код, который выполняется в данный момент, на новый — более оптимизированный. Ранее такая возможность была только между вызовами метода. Подобный подход позволяет применять многоуровневую компиляцию ко всем методам. Благодаря этому можно добиться более быстрой компиляции и при этом стабильной производительности. Судя по тестам Microsoft, внедрение данной технологии помогло на 25 % ускорить запуск нагруженных приложений. OSR в .NET 7 включена по умолчанию для x64 и Arm64.

Централизованное управление пакетами (CPM)

Управление зависимостями для многопроектных решений может оказаться сложной задачкой. Теперь же в ситуациях, когда требуется управление общими зависимостями для нескольких проектов, вы можете использовать централизованное управление NuGet пакетами[4]. Для централизованного управления зависимостями потребуется добавить файл Directory.Packages.props в корень решения. Благодаря CPM версия пакета указывается только в Directory.Packages.props, а в проектах требуется лишь сослаться на пакет.

Примечания

  1. Что нового в .NET 7? Хабрахабр (16 ноября 2022). Дата обращения: 16 ноября 2022. Архивировано 16 ноября 2022 года.
  2. .NET application publishing overview (англ.). Microsoft Learn (8 апреля 2022). Дата обращения: 16 ноября 2022. Архивировано 27 октября 2022 года.
  3. Performance Improvements in .NET 7 - On-Stack Replacement (англ.). Microsoft .NET Blog (31 августа 2022). Дата обращения: 10 ноября 2022. Архивировано 10 ноября 2022 года.
  4. Central Package Management (CPM) (англ.). Microsoft Learn (11 августа 2022). Дата обращения: 17 ноября 2022. Архивировано 8 ноября 2022 года.

Ссылки

Шаблон:.NET Core