AWS-Tool unterstützt Portierung von .NET-Anwendungen zu .NET Core unter Linux

Der Porting Assistant for .NET soll AWS-Kunden beim Migrieren von .NET-Apps zu .NET-Core-Anwendungen assistieren – dafür greift er auf Telemetriedaten zurück.

In Pocket speichern vorlesen Druckansicht
AWS-Tool unterstützt Portierung von .NET-Anwendungen zu .NET Core unter Linux

(Bild: Piyawat Nandeenopparit/Shutterstock.com)

Lesezeit: 4 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

AWS hat ein neues Tool vorgestellt, das AWS-Kunden bei der Portierung klassischer .NET-Anwendungen zu .NET Core unter Linux assistieren soll. Der Cloud-Anbieter legt Entwicklern den Wechsel zum Open-Source-Framework nahe, auch wenn die Portierung offenbar einigen Aufwand mit sich bringt. Neuerungen wie die Entwicklung für Linux und Open Source sowie erweiterte Skalierbarkeit von Anwendungen seien nicht mit dem klassischen, an Windows gebundenen .NET-Standard, sondern nur mit der .NET-Core-Plattform zu haben, erläutert das Unternehmen in der Ankündigung des Porting Assistant for .NET.

Seit Mai 2019 ist bekannt, dass Version 4.8 das letzte Release des klassischen .NET-Frameworks bleiben wird und nur noch kleinere Updates im Bereich Zuverlässigkeit und Sicherheit erhält. .NET 4.8 ist bereits im April 2019 erschienen, und .NET Core ist laut Microsoft der gegenwärtige Standard der .NET-Entwicklung. AWS möchte mit dem neuen Werkzeug von .NET Core offenbar weitere Windows-Anwendungen auf seine Plattform hieven.

Das Tool ist laut Ankündigung für AWS-Nutzer gedacht, die .NET-Core-Anwendungen unter Linux betreiben. Die vorherige Installation des .NET Core 3.1 SDK ist erforderlich, portierende Entwickler benötigen zudem ein Berechtigungsprofil (credential profile) für die Nutzung der Befehlszeile (CLI) von AWS. Damit kann das Portierungs-Tool auf öffentliche APIs und Pakete von NuGet und .NET Core zugreifen. Anschließend kann man den Assistenten herunterladen und installieren. Darin öffnet man den Quellcode der Anwendung und beginnt über das Startmenü mit der geführten Portierung.

Portieren Entwickler .NET-Framework-Anwendungen von Hand, müssen sie zunächst nach kompatiblen NuGet-Paketen suchen und die Paketreferenzen in den Projektdateien ihrer Anwendung aktualisieren, die sie auch in das passende Format für .NET-Core-Projektdateien umzuwandeln haben. Das ist eine kleinteilige Arbeit, und besonders bei großen App-Portfolios dürfte sie recht zeitaufwendig sein: Die bestehenden APIs sind großteils unbrauchbar, da .NET Core eine eigene Unterkategorie von APIs verwendet. Für die Migration müssen Entwickler passende Ersatz-APIs heraussuchen und einbinden. Während des Portierungsvorgangs kommt es offenbar auch zu zahlreichen Kompilierungsfehlern und Konflikten, die Entwickler dann einzeln zu lösen haben.

Hier setzt das vorgestellte Tool an, das die Anwendungen offenbar analysiert und portiert, indem es den Quellcode der Anwendung auswertet und sich Zugang zum gesamten Baum der API- und Paketabhängigkeiten verschafft. Für den Zugriff auf monolithisch gebaute Anwendungen soll das Tool eingangs überblicksartige Solution Files generieren. Der Assistent soll dann inkompatible APIs und Paketabhängigkeiten erkennen und den Entwicklern verfügbaren Ersatz vorschlagen, der mit .NET Core kompatibel ist.

Dabei ist die Engine des Tools angeblich lernfähig, indem sie mit der Zeit Nutzungsmuster erkennt und die Häufigkeit fehlender APIs und Pakete berücksichtigt: Unter der Haube des Portierungslotsen für .NET steckt eine Suggestion Engine, die von AWS-Kunden lernt, die optional ihre telemetrischen Daten teilen. Die Datenmodelle der Engine sind offenbar das Ergebnis der Auswertung sehr vieler individueller Paketversionen, die auf GitHub offen zugänglich sind. Nutzer, die ihre telemetrischen Daten teilen, tragen laut Anbieter dazu bei, die Treffsicherheit der Engine zu erhöhen.

In einem Nutzer-Leitfaden erklärt das Unternehmen im Detail, wie und wofür es die Daten verwendet. Der Portierungsassistent steht bei AWS kostenlos zum Download bereit. Weitere Details und eine ausführliche Beschreibung des Portierungsprozesses finden sich im Blogeintrag von AWS. Bevor man das Mammutprojekt einer Portierung angeht, gilt es, abzuwägen, ob der Umstieg für die eigenen Projekte sinnvoll ist. Holger Schwichtenberg hat einen Kommentar verfasst, der als Entscheidungshilfe dienen kann. (sih)