В мире .NET-разработок за прошлый 2021 год произошло немало изменений. Разработчики назвали самые важные нововведения.
Память
Представления объектов в памяти коснулись следующие изменения:
- Pipelines сокращает копирование информации на отдельных этапах обработок запросов HTTP;
- Span уменьшает количество аллокаций и предотвращает в некоторых случаях создание копий памяти;
- в отдельных местах выделение определённых объектов заменено на их пул: подготовленные или ранее обозначенные элементы могут применяться многократно.
Компилятор JIT
В сфере JIT проведена огромная работа, которая повысила производительность. Многочисленные усовершенствования затронули AVX, Intrinsics и SIMD. Компилятор может заменять общие архитектурные процессорные инструкции персональными, учитывающими особенности устройств.
Такие обновлённые инструкции основываются на принципе Single Instruction. Ранее они использовались лишь в трёхмерных графических объектах, звуковой обработке, изменениях изображений – там, где в ходе одной операции идентично обрабатывались числа в табличном формате. Но таким же способом можно обрабатывать и текстовый контент.
Profile-guided optimization
Оптимизации компилятором JIT выполняются по фазам. И он может принять решение о перекомпиляции кода буквально на ходу, учтя профиль нагрузки. Отдельный метод может вызываться с определённой периодичностью по тем или иным данным, и его логично компилировать с учётом нюансов использования. Но возможным это станет спустя некоторый период функционирования программы. Полезную информацию можно сохранить, систематизировать и использовать для улучшенного результата при последующих запусках. Также данные возможно применять в кластере на других устройствах.
Inline
Такой формат предполагает замену невиртуального вызова метода процессорными инструкциями, входящими в метод. Размещение инструкций рядом и избавление от лишних переходов позволяет улучшать cache locality и использовать собственные процессорные оптимизации. Такие инструменты помогают процессору работать максимально продуктивно и бесперебойно.
Devirtualization
Применимы алгоритмы, позволяющие составлять статистические данные для выполнения и формировать выводы о том, что часто используемым методам нужно давать больше свободы и позволять при вызовах не прибегать к таблицам виртуального функционала. С такой возможностью можно минимизировать количество обращений к кодам функций.
Visual Studio 2022
Наконец, этот процесс стал 64-битным, что открыло множество возможностей для разработчиков. Теперь можно максимально продуктивно работать с системными ресурсами и сложными решениями, в том числе включающими сотни разных проектов. Это удобно.
Minimal API и C# 10
Hello, World! упростился до единственной строчки. А на ASP.NET Core минимальные объёмы кода приложения уменьшились до одного файла с 4 строками. Платформа .NET новичками теперь воспринимается более дружелюбной.
.NET 6 и M1
У платформы появилась поддержка Arm64, в том числе касаемо процессоров на базе macOS. И интерес к данной архитектуре ежегодно растёт, поэтому её усовершенствование однозначно полезно.
Ahead of Time – новая компиляция
В течение длительного периода язык JavaScript был единственным, на котором можно было создавать бэкенды и фронтенды для приложений с определённым количеством общей базы кодов между ними. Теперь делать это реально и на платформе .NET.
Релиз последней вариации .NET 6 открыл возможность поддержки компиляции AoT для всего кода программы, включая написанный непосредственно разработчиком. Такая технология стала довольно интересной.
Hot Reload
Функция предоставляет возможность «горячих перезагрузок». То есть вносить корректировки в программу можно непосредственно во время написания её кода, не перезагружая и просматривая результаты сразу. Причём данная опция компанией Майкрософт была исключена из открытого доступа, а потом возвращена после бунта интернет-сообщества.
NativeMemory
Это нововведение в .NET, предполагающее нативное выделение памяти, может делать платформу более гибкой и универсальной. Но если память управляется в автоматическом режиме, то целый ряд кейсов закрывается. Так что перед использованием этой возможности нужно всё проанализировать.
MAUI
Это фреймворк кроссплатформенного типа для разработки приложений. Что это даёт? Создав программу на C#, можно легко перевести её на любую другую операционную систему, например, на Линукс, Windows, Андроид или macOS.
Хотите использовать все возможности .NET или нуждаетесь в рабочем мобильном приложении? Обратитесь за помощью или за разработкой программы под ключ в команду NIXSolutions. Эти специалисты успешно консультируют, создают приложения и ПО, а также предлагают удалённое администрирование, консалтинг и IT-аутсорсинг. На NIXSolutions reviews вы найдёте все подробности плодотворного сотрудничества.