28.10.2021
Patrick Smacchia, NDepend
5 Lehren aus der Migration auf .NET 5/6
Autor: Bernhard Lauer
blog.ndepend.com
An der Migration großer Legacy-Anwendungen nach .NET 6 führt auf Dauer kein Weg vorbei. NDepand-Entwickler Patrick Smacchia hat seinen Code bereits umgestellt und gibt seine Erfahrungen weiter.
Im Januar 2020 schrieb Patrick Smacchia einen Beitrag mit dem Inhalt: Jetzt nicht die Migration von .NET-4.8-Anwendungen auf .NET 5/6 zu planen, ist sicherlich ein Fehler. Inzwischen ist er seinem eigenen Rat gefolgt und hat den größten Teil seines Nicht-UI-Codes migriert. Auf dieser Migrationsreise haben er und sein Team einige Dinge gelernt, die er jetzt in einem Blogbeitrag mit allen anderen .NET-Entwicklern teilt. Die Essenz seiner umfangreichen Ausführungen hat er in diesen fünf Punkten zusammengefasst:
- .NET Standard ist nicht tot. Anstatt mehrere Redistributables zu haben – eine für jedes Betriebssystem – haben wir eine einzige beibehalten. Ein einziges Redistributables zu haben, macht die Dinge für die Benutzer einfacher und für uns einfacher zu warten. Wir haben nicht direkt auf .NET 5 migriert. Stattdessen werden 99 Prozent des migrierten Codes jetzt gegen .NET Standard 2.0 kompiliert. Nur die Assembly .\net5.0\NDepend.Console.MultiOS.dll wird gegen .NET 5.0 kompiliert. Diese leichtgewichtige ausführbare Assembly enthält lediglich eine Klasse zum Aufrufen der gesamten Analyse-/Berichtsverarbeitung, die in .NET Standard 2.0-Assemblys implementiert ist. Ihre Aufgabe besteht lediglich darin, dotnet.exe das Booten der .NET 5.0-Laufzeit zu ermöglichen.
- Erwarten Sie Schmerzpunkte. Microsoft hat mit .NET Standard und .NET Core hervorragende Arbeit geleistet, indem es die meisten APIs, die häufig in .NET Fx verwendet werden, vorgestellt und unterstützt hat. Erwarten Sie jedoch einige nicht unterstützte APIs, die Workarounds und Refactoring-Kopfschmerzen verursachen werden.
- Werkzeuge wie NDepend können helfen, die meisten Migrationsprobleme zu vermeiden.
- Die Pflege der Code-Wartbarkeit kann zu einer Frage des Überlebens werden. Die beiden wichtigsten Prinzipien sind Mehrschichtige Architektur und ein joher Testabdeckungsgrad.
- Bibliotheken von Drittanbietern, auf die verwiesen wird, müssen modular, leichtgewichtig und quelloffen sein. Erfahrene Entwickler wissen, dass jede referenzierte Bibliothek eine potenzielle Belastung für die Zukunft darstellt. Jeder Verweis ist ein Kompromiss zwischen dem Aufwand für die eigene Arbeit + Wartung und dem Aufwand für die Integration der Bibliothek + Aufwand für die Aktualisierung und das Testen neuer Versionen + Menge der Probleme, die sie in der Zukunft verursachen kann.
Den kompletten englischsprachigen Beitrag von Patrick Smacchia lesen Sie hier.
Künstliche Intelligenz
Memary - Langzeitgedächtnis für autonome Agenten
Das Hauptziel ist es, autonomen Agenten die Möglichkeit zu geben, ihr Wissen über einen längeren Zeitraum hinweg zu speichern und abzurufen.
>>
Cloud Infrastructure
Oracle mit neuen KI-Funktionen für Sales, Marketing und Kundenservice
Neue KI-Funktionen in Oracle Cloud CX sollen Marketingspezialisten, Verkäufern und Servicemitarbeitern helfen, die Kundenzufriedenheit zu verbessern, die Produktivität zu steigern und die Geschäftszyklen zu beschleunigen.
>>
Reactive mit Signals
Neuer Vorschlag für Signals in JavaScript
Das für die Standardisierung von JavaScript verantwortliche Komitee macht einen Vorschlag für die Einführung von Signalen in die Programmiersprache. Signals sollen reaktives Programmieren in JavaScript einfacher machen.
>>
Konferenz
Wird generative KI Software-Ingenieure ersetzen? DWX-Keynote
Auf der Developer Week '24 wird Professor Alexander Pretschner von der TU München eine der Keynotes halten. Er klärt auf, ob Ihr Job in Gefahr ist.
>>