Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Aktualisieren einer App von ASP.NET Framework auf ASP.NET Core ist für den Großteil der Produktions-Apps nicht trivial. Diese Apps enthalten häufig neue Technologien, sobald sie verfügbar sind und häufig aus vielen Legacyentscheidungen bestehen. Dieses Handbuch bietet praktische Ansätze und Tools zum Aktualisieren von ASP.NET Framework-Apps auf ASP.NET Core mit so wenig Änderung wie möglich.
Warum die Migration eine Herausforderung darstellt
Die Migration von ASP.NET Framework zu ASP.NET Core umfasst mehrere komplexe Herausforderungen, die ein vollständiges Umschreiben schwierig und riskant für die meisten Produktionsanwendungen machen:
Technische Schuldenakkumulation
Produktionsanwendungen sammeln im Laufe der Jahre der Entwicklung häufig technische Schulden:
- System.Web-Abhängigkeiten – Die weitreichende Verwendung von HttpContext und zugehörigen Typen in einer Codebasis.
- Veraltete Paketabhängigkeiten , die möglicherweise keine modernen kompatiblen Entsprechungen haben.
- Ältere Buildtools und Projektkonfigurationen, die nicht mit modernen .NET kompatibel sind.
- Veraltete API-Verwendung , die durch moderne Alternativen ersetzt werden muss.
- Compilerwarnungen und Codequalitätsprobleme , die die Migration erschweren.
Übergreifende Belange
Viele Anwendungen haben querschnittsübergreifende Bedenken, die sich über mehrere Ebenen erstrecken und während der Migration sorgfältig koordiniert werden müssen:
- Sitzungsstatusverwaltung – ASP.NET Framework und ASP.NET Core weisen grundsätzlich unterschiedliche Sitzungs-APIs und -Verhaltensweisen auf.
- Authentifizierung und Autorisierung – Verschiedene Authentifizierungsmodelle und APIs zwischen Frameworks.
- Protokollierung und Überwachung – Muss die konsistente Protokollierung in beiden Anwendungen während der Migration beibehalten.
- Cachingstrategien – In-Memory-, verteiltes oder Ausgabecaching müssen konsistent verwaltet werden.
- Fehlerbehandlung – Erstellen konsistenter Fehlerbehandlungsmuster in beiden Anwendungen.
- Konfigurationsverwaltung – Verwalten von Einstellungen, die zwischen Anwendungen freigegeben oder synchronisiert werden müssen.
- Abhängigkeitseinfügung – Migrieren von verschiedenen DI-Containern zum integrierten Container ASP.NET Core.
Das generische Hostmuster kann dabei helfen, mehrere dieser Probleme zu beheben, indem moderne .NET-Infrastruktur zu ASP.NET Framework-Anwendungen hinzugefügt wird. Ausführliche Informationen finden Sie unter .NET Generic Host in ASP.NET Framework.
Abhängigkeitsketten der Bibliothek
Die unterstützenden Bibliotheken weisen häufig komplexe Abhängigkeitsbeziehungen auf, die eine sorgfältige Reihenfolge der Aktualisierungen erfordern.
- Komplexität der Abhängigkeitsstruktur - Sie müssen die Bibliotheken in der Reihenfolge der Tiefensuche (Postorder) aktualisieren.
- Multi-Targeting-Anforderungen – Bibliotheken müssen alle Ziel-Frameworkversionen unterstützen, die von der App angezielt werden.
- API-Kompatibilität – Sicherstellen, dass Bibliotheken während des Migrationszeitraums mit beiden Frameworkversionen funktionieren.
- Testkomplexität – Jedes Bibliotheksupgrade erfordert gründliche Tests, um die Kompatibilität zu gewährleisten.
Unterschiede bei der Anwendungsarchitektur
Die grundlegenden Unterschiede zwischen ASP.NET Framework und ASP.NET Core zusätzliche Herausforderungen schaffen:
- Hostingmodelle – Unterschiedliche Ansätze für die Anwendungshosting- und Lebenszyklusverwaltung
- Middleware-Pipeline – Wechsel von HTTP-Modulen und -Handlern zu Middleware
- Anforderungsverarbeitung – Verschiedene Anforderungsverarbeitungsmodelle und Kontexte
- Leistungsmerkmale – Unterschiedliche Speicherauslastungsmuster und Leistungsprofile
Diese Herausforderungen machen die inkrementelle Migration zum bevorzugten Ansatz für die meisten Produktionsanwendungen. Mit diesem Ansatz können Teams diese Probleme schrittweise behandeln und gleichzeitig eine funktionierende Anwendung in der Produktion beibehalten.
Dokumentationen zu wichtigen Bereichen, die sich geändert haben, finden Sie in den zugehörigen Themen, die in komplexen Migrationsszenarien verfügbar sind – Deep Dive-Bereiche.
Beginnen Sie hier: Wählen Sie Ihren Migrationspfad aus.
Sie können Ihre ASP.NET Framework-Anwendung erfolgreich in ASP.NET Core verschieben. Der Schlüssel ist die Wahl des richtigen Ansatzes für Ihre spezifische Situation.
Tip
Unabhängig vom gewählten Pfad kann der GitHub-App Copilot Modernisierungs-Agent Ihre Lösung bewerten, einen Upgradeplan generieren und viele der Migrationsschritte automatisieren. Weitere Informationen finden Sie unter "Informationen zum Upgrade von ASP.NET MVC,Web-API und Webformularen auf ASP.NET Core".
Schnellentscheidungsleitfaden
Beantworten Sie diese Fragen, um Ihren Ansatz auszuwählen:
Wie sieht Ihr Zeitrahmen und Ihre Risikotoleranz aus?
- Muss während der Migration in der Produktion bleiben → inkrementelle Migration
- Kann sich eine komplette Neufassung leisten → Migration an Ort und Stelle
Wie groß ist Ihre Anwendung?
- Kleine bis mittlere Apps → Direkte Migration
- Große Produktions-Apps → Inkrementelle Migration ist sicherer
Haben Sie komplexe Abhängigkeiten?
- Unbekannte oder veraltete Abhängigkeiten → inkrementelle Migration
- Hohe Verwendung von System.Web → inkrementelle Migration
- Minimale Abhängigkeiten → Vor-Ort-Migration
Inkrementelle Migration
Die inkrementelle Migration ist eine Implementierung des Strangler Fig-Musters. Dies eignet sich am besten für größere Projekte oder Projekte, die während einer Migration weiterhin in der Produktion bleiben müssen. Informationen zum inkrementellen Migrieren einer Anwendung finden Sie unter "Erste Schritte mit inkrementellen ASP.NET zur ASP.NET Core Migration".
Vor-Ort-Migration
Die Vor-Ort-Migration kann für ausreichend kleine Anwendungen funktionieren. Wenn möglich, ermöglicht dieser Ansatz eine schnelle Ersetzung der Anwendung. Kleine Probleme können sich jedoch summieren, wenn Sie sich für eine In-Place-Migration entscheiden. Informationen zu Migrationstools finden Sie unter "Informationen zum Upgrade von ASP.NET MVC,Web-API und Webformularen auf ASP.NET Core".