Артём Ровенский
Статей: 27

.NET Digest #6

Добро пожаловать на шестой выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! В этот раз набралось множество нового материала, так ещё и вышла предварительная версия .NET 10. Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов. Поехали.

Мы стараемся совершенствоваться, так что будем рады вашим комментариям и предложениям :)

Не стесняйтесь присылать нам интересные материалы с помощью формы обратной связи!

Сегодня в дайджесте: .NET 10 preview 1 и множество интересных статей.

Главные новости

.NET 10 Preview 1 is now available!

25 февраля вышел .NET 10 Preview 1. Вместе с изменениями в .NET Runtime, SDK и библиотеках новая версия демонстрирует нам и первую версию C# 14. Вот список некоторых новшеств и улучшений:

  • ключевое слово field для свойств;
  • неявные преобразования для Span<T> и ReadOnlySpan<T>;
  • модификаторы параметров (ref, in, out) для лямбд без указания типа параметра;

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

Статьи

.NET 9 Networking Improvements

Релиз .NET 9 привнёс множество улучшения для тех, кто работает с сетевыми технологиями. Эта статья расскажет про новые API, увеличение производительности, безопасность и многое другое.

C# Dev Kit Updates: .NET Aspire, Hot Reload, and More!

C# Dev Kit активно развивается, и в этом материале автор рассказывает про новые возможности, которые были добавлены в последних обновлениях. Например, теперь доступны:

  • работа без решения (.sln);
  • любое решение можно сделать решением .NET Aspire;
  • поддержка Hot Reload для Razor/Blazor;
  • общие улучшения отладки и тестирования.

New Features for Enhanced Razor Productivity!

Отличное обновление для разработчиков, которые создают веб-приложения с помощью Razor. Была добавлена новая функция "Extract to Component", которая доступна с Visual Studio 17.2. Но, самое главное, обновление получил C# токенизатор / лексер, что значительно улучшило обработку C# кода. Пользователи сообщали о том, что не могут использовать многие возможности языка в Razor файлах. Новый лексер, основанный на Roslyn, исправляет эти проблемы.

.NET MAUI Performance Features in .NET 9

И ещё одна статья про изменения после выхода .NET 9, только теперь в контексте .NET MAUI. В .NET 9 уделили внимание оптимизации и поддержке NativeAOT. Всё это поможет разработчикам уменьшить размер приложений, сократить время запуска и сделать их работу стабильной на всех платформах.

Object Pools in C#: Examples, Internals and Performance Benchmarks

Интересная статья, которая рассказывает про концепцию пулов в C#. Автор проходит по двум встроенным реализациям пулов ObjectPool и ArrayPool<T> и рассказывает про возможности использования. А ещё проводит сравнение производительности без пулов и с ними.

Func vs. Predicate vs. Expression in C# .Net

Теоретическая статья с базовой информацией про виды делегатов в C#. Отлично подойдёт новичкам. Автор рассказывает, что такое Func, Predicate, Expression и Action, и в каких случаях нужно использовать.

Creating an analyzer to detect infinite loops caused by ThreadAbortExceptions

Эндрю Лок описывает сценарий бесконечного цикла, который может произойти в .NET Framework при выбрасывании исключения ThreadAbortException. А также рассказывает о том, как создать свой собственный Roslyn анализатор для автоматического обнаружения этой проблемы.

Ошибки и подозрительные места в исходниках .NET 9

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

В Microsoft тоже ошибаются. Проверяем MSBuild

А ещё мы проверили MSBuild, который используют, по сути, все C# разработчики. Внутри вас ждут: ошибки сopy-paste, NullReferenceException, ошибки со строкой формата и многое другое.

Our Favorite NEW Visual Studio Features of 2024

Команда Visual Studio собрала все главные функции, которые появились в продукте в 2024 году. Все они повышают производительность, оптимизируют вашу работу и улучшают процесс написания кода. Среди главных изменений: новый менеджер расширений, Drag/Drop между несколькими экземплярами Visual Studio, Code Search, интеграция с .NET Aspire и многое другое.

New Debugging and Profiling Features in Visual Studio (v17.13)

В обновлении Visual Studio 17.13 появилось много новых функций для отладки кода и профилирования приложения. Во многом изменения опираются на AI. Появились новые функции отладки на базе GitHub Copilot. Теперь сводку по стекам параллельных потоков может дать Copilot. Для более выборочного анализа профилирование теперь можно осуществлять для отдельных функций и классов. Но и это не всё: об остальном можете прочитать в статье.

What's New in .NET 10: Everything You Need to Know

В этой статье рассматриваются новые функции и изменения, которые появились выходом .NET 10 Preview 1. Автор проходит не только по C# 14, .NET Runtime, JIT и .NET SDK, но и освещает изменения в библиотеках, ASP.NET Core, Blazor, .NET MAUI, EF Core и прочее.

Новости

When will .NET Framework retire?

Все мы когда-то задавались вопросом: "Сколько ещё будет поддерживаться .NET Framework?" Кажется, ответа нет даже в Microsoft, но у автора этой заметки есть небольшое предположение. Дело в том, что все версии выше .NET Framework 4.6.2 не имеют даты прекращения поддержки.

Но мы знаем, что .NET Framework поставляется вместе с Windows. К примеру, Windows Server 2025 содержит .NET Framework 4.8.1. Срок поддержки Windows Server 2025 заканчивается в 2034 году, так что .NET Framework с нами ещё надолго.

Новые версии

Visual Studio 2022 v17.13 is Now Available!

Microsoft представили новую версию Visual Studio 2022. В версии 17.13 была улучшена производительность, добавлены новые возможности GitHub Copilot (который теперь можно использовать бесплатно), а также новые функции для отладки и профилирования. Все остальные подробности можно узнать в статье.

PVS-Studio 7.35: поддержка MISRA C 2023, плагин для Qt Creator 15 и многое другое

Вышел новый релиз PVS-Studio — 7.35. В этом релизе мы оптимизировали работу анализатора на больших фрагментах кода. Ранее в таких случаях были возможны замедления. В этом релизе для C# анализатора мы сконцентрировались на диагностиках для Unity разработчиков. Конечно, только ими дело не обошлось. Вот полный список новых диагностик:

  • V3211. Unity Engine. The operators '?.', '??' and '??=' do not correctly handle destroyed objects derived from 'UnityEngine.Object'.
  • V3212. Unity Engine. Pattern matching does not correctly handle destroyed objects derived from 'UnityEngine.Object'.
  • V3213. Unity Engine. The 'GetComponent' method must be instantiated with a type that inherits from 'UnityEngine.Component'.
  • V3214. Unity Engine. Using Unity API in the background thread may result in an error.
  • V3215. Unity Engine. Passing a method name as a string literal into the 'StartCoroutine' is unreliable.
  • V3216. Unity Engine. Checking a field for null may not work correctly due to implicit field initialization by the engine.
  • V3217. Possible overflow as a result of an arithmetic operation.
  • V4008. Unity Engine. Avoid using memory allocation Physics APIs in performance-sensitive context.

Больше подробностей в пресс-релизе.

А запросить пробный ключ и попробовать последнюю версию анализатора можно с помощью этой страницы.

Спасибо за прочтение, и ждём вас снова! Не стесняйтесь присылать нам свои новости!