.NET 8.0: Interview mit fünf Experten zum nächsten LTS-Release

Seite 2: Tipps und Tricks für ein gelungenes Upgrade

Inhaltsverzeichnis

heise Developer: Welche Tipps kannst du unseren Leserinnen und Lesern mitgeben, damit das .NET-Upgrade möglichst reibungslos gelingt?

Thomas: Ich persönlich gehe wie folgt vor: Ich stelle die eigenen Projekte in der .csproj-Datei von .NET 6.0/7.0 auf .NET 8.0 um und probiere zunächst, ob alles kompiliert. Üblicherweise erfolgt dies recht reibungslos, da mit neuen .NET-Versionen sehr wenige Änderungen eingeführt werden, die den alten Code ungültig machen würden. Nach dem Kompilieren werfe ich einen Blick auf die eventuell neu auftretenden Warnungen und versuche, diese zu lösen. Schließlich lese ich die Breaking Changes, die auch eventuellen Einfluss auf das Laufzeitverhalten der Anwendung haben. Ist dies geschafft, dann ist das Projekt migriert, und man kann ab sofort von den neuen Features in .NET 8.0 profitieren.

André: Die Migration von .NET 6.0 auf .NET 8.0 bringt einige Breaking Changes mit sich, aber die Probleme sollten sich in Grenzen halten. Für den reibungslosen Ablauf von Version 6.0 auf 8.0 oder 7.0 auf 8.0 habe ich folgende Tipps:

Auch wenn die meisten Entwicklerinnen und Entwickler diesen Hinweis gerne ignorieren: Ich empfehle, vor der Migration die Hinweise zu Breaking Changes in der offiziellen Dokumentation zu lesen und zu prüfen, ob man betroffen ist. Nach der Migration sollte man umfassende Tests durchführen, um sicherzustellen, dass die eigene Anwendung wie erwartet funktioniert. Außerdem sollte man seinen Code auf die Verwendung von Klassen oder Methoden prüfen, die unter .NET 8.0 nun als obsolet gekennzeichnet sind.

Neben den einfachen Updates von .NET 6.0 und 7.0 auf 8.0 dürften mit dem geplanten Support-Ende von Xamarin.Forms im Mai 2024 auch einige komplexere Ugprade-Vorhaben von Xamarin.Forms zu .NET MAUI 8.0 anstehen. Hier ist der erste Schritt, die Kompatibilität der eingesetzten NuGet-Pakete zu prüfen. Einige unter Xamarin.Forms beliebte Pakete wurden nicht nach .NET MAUI portiert. In solchen Fällen muss man entweder Alternativen finden, das Paket selbst portieren oder auf den Einsatz verzichten. Je nachdem, wie die eigene Lösung ausfällt, kann hier ein erheblicher Aufwand entstehen. Darüber hinaus empfehle ich vor der Migration zu prüfen, ob sämtlicher plattformspezifischer Code in Form von Custom Renderern und Effects auch unter .NET MAUI noch benötigt wird. Für einiges gibt es mittlerweile darin integrierte Funktionen.

Zu guter Letzt kann ich den Einsatz der aktuellen Version des .NET Upgrade Assistant ans Herz legen. Die Ergebnisse der aktuellen Version sind beeindruckend und um ein Vielfaches besser als die Ergebnisse früherer Versionen. Mittlerweile sind bei einfachen Apps kaum noch Anpassungen nach dem Einsatz des Upgrade Assistant notwendig. Was ich übrigens immer wieder beobachte, ist, dass Entwicklungsteams versuchen, die Migration von Xamarin.Forms zu .NET MAUI mit einem kompletten Redesign der Softwarearchitektur zu verbinden. Leider verheben sich einige Teams in dieser Situation, was zum Scheitern der Migration führt. Daher empfehle ich im ersten Schritt, so wenige Architekturänderungen wie möglich während der Migration durchzuführen und diese für einen weiteren Schritt aufzusparen.

André Krämer

(Bild: André Krämer)

André Krämer ist Geschäftsführer der Quality Bytes GmbH und Partner im www.IT-Visions.de-Expertennetzwerk. Seine Schwerpunkte liegen in den Bereichen App-Entwicklung mit .NET MAUI, Dokumentenautomatisierung mit TX Text Control sowie der Analyse von Memory Leaks und Performanceproblemen.

Holger: Ein Upgrade vom klassischen .NET Framework auf .NET 8.0 muss wohl überlegt sein, denn – je nach Anwendungsarten und verwendeten Bibliotheken – kann solch eine Umstellung sehr viel Arbeit machen.

Aber auch eine Umstellung von modernen .NET-Versionen wie .NET 6.0 oder 7.0 ist nicht damit getan, dass man <TargetFramework>net8.0</TargetFramework> in der Projektdatei setzt. Es gibt zahlreiche Breaking Changes und Verhaltensänderungen, die man beachten muss.

Am besten eignen sich automatisierte Tests (Unit Tests und die oft vernachlässigten Integrationstests), die eine Anwendung nach der Migration komplett testen.

Rainer: Wenn irgendwie möglich, sollte man den Code aktuell halten. Ich weiß aus eigener Erfahrung, dass es nicht leicht ist, alle Projekte immer auf die neuesten .NET-Versionen zu bringen. Oft fehlen die Personalressourcen oder das Budget. Wir sollten uns als Softwareingenieurinnen und -ingenieure aber bemühen, mit unseren Projekten halbwegs auf dem Stand der Technik zu bleiben. Wer schon auf .NET 6.0 oder 7.0 ist, wird mit dem Umstieg auf .NET 8.0 keine großen Probleme haben. Wer allerdings immer noch mit .NET Framework arbeitet, für den ist der Schritt auf neuestes .NET wieder etwas weiter und damit herausfordernder geworden.

Christian Wenz

(Bild: Christian Wenz)

Christian Wenz ist Berater, Trainer und Autor für Webtechnologien. Als Teilhaber der Arrabiata Solutions GmbH sorgt er für schnellere und sicherere Webanwendungen. Er ist ASP.NET MVP und ASPInsider, Hauptautor der Zend PHP Certification, Contributor mehrerer Open-Source-Projekte und spricht regelmäßig auf Entwicklerkonferenzen rund um den Globus.

Christian: Mit Grausen erinnere ich mich noch an frühere Migrationen, insbesondere von .NET Framework auf frühe Versionen von .NET Core. Inzwischen ist das deutlich einfacher geworden, auch weil das Framework mittlerweile stabil ist und sich nicht mehr so viel Entscheidendes ändert. Erste Migrationen von Codebasen mit .NET 6.0 oder .NET 7.0 auf eine Preview-Version von .NET 8.0 liefen problemlos. Gibt es noch Code, der ältere (und damit nicht mehr unterstützte) Versionen von .NET (Core) voraussetzt, ist natürlich höchste Eile geboten. In der Regel ist es am besten, sukzessive von Version zu Version zu aktualisieren. Beim Sprung von ASP.NET Core 5.0 auf ASP.NET Core 6.0 ist es eine gute Idee, die neue Standardstruktur (Verzicht auf Startup.cs und andere Änderungen) gleich mitzuübernehmen. Mit dem .NET Upgrade Assistant habe ich in der Praxis eher gemischte Erfahrungen gemacht, aber einen Versuch ist es freilich wert.