Вышел 5й Превью .NET 11
На прошлой неделе Microsoft выпустили 5ю превью версию .NET 11, которая включает обновления среды выполнения, SDK, библиотек, ASP.NET Core, .NET MAUI, C# и Entity Framework Core.
.NET SDK
1. Ряд улучшений для однофайловых приложений. Разработчики теперь могут разделять код между файлами, используя новую директиву #:ref, которая ссылается на другое однофайловое приложение как на библиотеку, без создания проекта:
// app.cs
#:ref lib.cs
Console.WriteLine(MyLib.Greeter.Greet("World"));
// lib.cs
namespace MyLib;
public static class Greeter
{
public static string Greet(string name)
=> $"Hello, {name}!";
}
Больше инструментов командной строки, включая команды package и NuGet, теперь понимают пути к однофайловым приложениям.
2. Добавлен шаблон сервера Model Context Protocol, поэтому
dotnet new mcpserver работает без отдельного пакета. 3. Проекты могут включить проверку, предупреждающую о наличии известных уязвимостей в установленном SDK или о завершении его поддержки:
<PropertyGroup>
<CheckSdkVulnerabilities>true</CheckSdkVulnerabilities>
</PropertyGroup>
4. Консольные и сервисные приложения, ориентированные на net11.0, теперь автоматически включают System.Net.Http.Json при включении неявных операторов using.
C#
1. Закрытый класс, который может быть производным только от класса в рамках одной сборки, что позволяет компилятору проверять, обрабатывает ли switch все случаи:
public closed record class GateState;
public record class Closed : GateState;
public record class Open(float Percent) : GateState;
static string Describe(GateState state)
=> state switch
{
Closed => "closed",
Open(var percent) => $"{percent}% open"
};
2. Новое объявление объединения создаёт тип значения, который содержит один из фиксированного набора типов вариантов, с поддержкой сопоставления с образцом:
public record class Dog(string Name);
public record class Cat(int Lives);
public union Pet(Dog, Cat);
static string Describe(Pet pet)
=> pet switch
{
Dog(var name) => $"dog: {name}",
Cat(var lives) => $"cat: {lives}"
};
Blazor
1. Теперь формы поддерживают мгновенную валидацию данных на стороне клиента без обращения к серверу, а также добавлена поддержка асинхронных правил проверки, таких как поиск в базе данных.
2. Сообщения валидации и имена свойств теперь могут быть локализованы.
3. Сортировка и пагинация QuickGrid теперь работают на статически отображаемых страницах.
4. Автономные приложения Blazor WebAssembly получили новый сервер разработки под названием Gateway, который добавляет встроенную маршрутизацию для SPA.
Entity Framework Core
1. Добавлена поддержка однофайловых приложений в инструменте dotnet ef и файл конфигурации для хранения параметров по умолчанию.
2. Новое предупреждение анализатора EF1004 указывает на асинхронные запросы, которые выполняются синхронно.
3. Совместимость с SQL Server 2022 теперь является стандартной, а сгенерированный код C# использует пространства имен с областью видимости файла.
Источник: https://www.infoq.com/news/2026/06/dotnet-11-preview-5/