Entwicklung & Code
.NET 10.0 Preview 5 bringt XAML-Vereinfachungen und Post-Quanten-Kryptographie
.NET 10.0 Preview 5 steht zum Herunterladen auf der .NET-Downloadseite bereit. Für Visual Studio 2022 gab es nur ein Bugfix-Update von Version 17.14.4 auf 17.14.5.
Weiterhin ist .NET 10.0 nicht direkt über das Visual-Studio-Setup-Programm installierbar (siehe Abbildung). Wenn das .NET 10.0 SDK getrennt installiert wurde, erscheint aber „.NET 10.0 Preview“ in den Auswahlmasken. Anwenderinnen und Anwender finden es auf der Downloadseite.
Visual Studio 2022 bietet .NET 10.0 noch nicht im Installer an.
(Bild: Screenshot (Holger Schwichtenberg))
Dr. Holger Schwichtenberg ist Chief Technology Expert bei der MAXIMAGO-Softwareentwicklung. Mit dem Expertenteam bei www.IT-Visions.de bietet er zudem Beratung und Schulungen im Umfeld von Microsoft-, Java- und Webtechniken an. Er hält Vorträge auf Fachkonferenzen und ist Autor zahlreicher Fachbücher.
Vereinfachungen für XAML-Namensräume in .NET MAUI
In Microsofts Cross-Platform-GUI-Framework .NET MAUI (Multi-Platform App UI) hat Microsoft zwei Vereinfachungen für die lästigen Namensraumdeklarationen zu Beginn einer XAML-Datei eingebaut. Entwicklerinnen und Entwickler können die notwendigen Namensraumdeklarationen übergreifend über alle XAML-Dateien zentral bereitstellen, in einer Datei mit Namen GlobalXmlns.cs.
[assembly: XmlnsDefinition(
"
"MyApp.Views")]
[assembly: XmlnsDefinition(
"
"MyApp.Controls")]
[assembly: XmlnsDefinition(
"
"MyApp.Converters")]
[assembly: XmlnsDefinition(
"
"
Listing: Beispiel für eine Datei GlobalXmlns.cs
In der XAML-Datei reicht es dann, nur noch die Namensräume und
einzubinden:
Aber auch das lässt sich noch weiter zusammendampfen, indem man in der Projektdatei (.csproj) die implizite Namensraumdeklaration aktiviert:
$(DefineConstants);MauiAllowImplicitXmlnsDeclaration
true
Danach können die einzelnen XAML-Dateien auf jegliche Namensraumverweise verzichten:
Nicht verzichten können Entwicklerinnen und Entwickler aber auf das Prefix x:
vor Class
und DataType
.
Die .NET-MAUI-Projektvorlage gibt es in .NET 10.0 Preview 5 zwar bereits als eine Datei GlobalXmlns.cs, diese wird aber noch nicht verwendet (siehe Abbildung). Entwicklerinnen und Entwickler können die implizite Namensraumdeklaration aber leicht in der Projektdatei (.csproj) nachtragen und dann die Namensräume aus App.xaml, AppShell.xaml, MainPage.xaml und anderen entfernen.
Die Projektvorlage für .NET MAUI 10.0 enthält in Preview 5 die Datei GlobalXmlns.cs, verwendet sie aber bisher nicht.
(Bild: Screenshot (Holger Schwichtenberg))
Um diese neuen Features zu probieren, ist erforderlich, nach der Installation des .NET 10.0 Preview 5 Software Development Kit (SDK) auch noch .NET MAUI auf den aktuellen Stand zu bringen, via SDK-Workload-Installation:
dotnet workload install maui
Zum Kompilieren braucht man auch noch die aktuelle Version 36 des Android SDK, was aber im Rahmen des ersten Kompiliervorgangs automatisch installiert wird.
Lesen Sie auch
XAML-Vereinfachungen auch für WPF
Auch dem etablierten GUI-Framework „Windows Presentation Foundation“ (WPF) spendiert Microsoft in .NET 10.0 Preview 5 eine Vereinfachung in der XAML-Syntax. Zur Deklaration von Zeilen und Spalten in einem -Steuerelement gibt es nun die neuen Eigenschaften RowDefinitions
und ColumnDefinitions
, zum Beispiel für drei Zeilen und zwei Spalten:
Bisher musste die Zeilen- und Spaltendefinition in WPF in ausschweifender Tag-Folge mit und geschehen:
Die neue Syntax übernimmt ein bestehendes XAML-Feature aus der Windows UI Library (WinUI), das es auch in den XAML-Frameworks der Anbieter Uno Platform und Avalonia schon lange gibt.
In Visual Studio 2022 Version 17.14.5 wird die neue Syntax für die Spalten- und Zeilendefinition im WPF-Designer zwar berücksichtigt, es fehlen aber die sichtbaren Zellgrenzen für alle Zellen inklusive der Möglichkeit der visuellen Änderung der Zellgrößen. Es wird nur noch die Zellgrenze für die aktuell angewählte Zelle gezeigt (siehe folgende Abbildungen) – die anderen Hilfslinien und die Größenänderungen fehlen.
Alte Syntax im Visual-Studio-Designer
(Bild: Screenshot (Holger Schwichtenberg))
Neue Syntax im Visual-Studio-Designer: Die Hilfslinien und Einstellpunkte für die Größe fehlen.
(Bild: Screenshot (Holger Schwichtenberg))
Darüber hinaus gibt es in WPF einige Fehlerbeseitigungen im Fluent Design, siehe Release Notes.
Berücksichtigung der XML-Kommentare in OpenAPI-Dokumenten
Die von dem NuGet-Paket Microsoft.AspNetCore.OpenApi generierten OpenAPI-Metadaten für eine ASP.NET-Core-basierte Web-API berücksichtigen schon seit .NET 10.0 Preview 2 Informationen aus den XML-Kommentaren, die zu Klassen oder Methoden hinterlegt sind. Allerdings wurde das Tag bisher ignoriert.
Das ist in Preview 5 behoben: Der Inhalt des Tags (siehe Listing) wandert in responses/description im JSON-Dokument (siehe Abbildung).
using Microsoft.AspNetCore.Mvc;
namespace NET10_WebAPIController.Controllers;
///
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries =
[
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
];
…
///
/// Die Wetterdaten sind zufällig im RAM erzeugt ;-)
/// Liste von WeatherForecast-Objekten
/// Stadt
/// Anzahl der Tage
/// Liste von WeatherForecast-Objekten
[HttpGet]
[Route("/weatherforecast/")]
[Route("/weatherforecast/{city}/{days}")]
[ProducesResponseType>(StatusCodes.Status200OK, Description = "Wettervorhersage für die nächsten x Tage")]
public IEnumerable GetWeatherForecast(string city = "", int days = 5)
{
return Enumerable.Range(1, days).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
Listing: WebAPI-Controller-Klasse mit XML-Kommentaren
Ausschnitt aus der OAS-JSON-Datei: Die WebAPI-Operation mit den Texten aus den XML-Kommentaren berücksichtigt nun auch den Inhalt des Tags
(Bild: Holger Schwichtenberg)
(Bild: coffeemill/123rf.com)
Das nächste LTS-Release steht an: Auf der Online-Konferenz betterCode() .NET 10.0 am 18. November 2025 – ausgerichtet von iX und dpunkt.verlag in Kooperation mit IT-visions.de – präsentieren der Autor dieses Artikels, Dr. Holger Schwichtenberg, und weitere Experten die wichtigsten Neuerungen. Dazu zählen die Updates im .NET 10.0 SDK sowie in C# 14.0, ASP.NET Core 10.0, Blazor 10.0, Windows Forms 10.0, WPF 10.0, WinUI 3, .NET MAUI 10.0 und die Integration von Künstlicher Intelligenz in .NET-Anwendungen.
Das Programm ist noch nicht veröffentlicht – bis dahin sind vergünstigte Blind-Bird-Tickets bereits im Online-Shop erhältlich. Das Vorjahresprogramm lässt sich im Archiv einsehen.