Freigeben über


Gründe für die Auswahl von .NET Framework für Docker-Container

Tipp

Dieser Inhalt ist ein Auszug aus dem eBook .NET Microservices Architecture for Containerized .NET Applications, verfügbar auf .NET Docs oder als kostenlose herunterladbare PDF, die offline gelesen werden kann.

.NET Microservices-Architektur für containerisierte .NET-Anwendungen eBook-Cover-Thumbnail.

Während .NET 8 erhebliche Vorteile für neue Anwendungen und Anwendungsmuster bietet, ist .NET Framework für viele vorhandene Szenarien weiterhin eine gute Wahl.

Direktes Migrieren vorhandener Anwendungen zu einem Windows Server-Container

Möglicherweise möchten Sie Docker-Container nur verwenden, um die Bereitstellung zu vereinfachen, auch wenn Sie keine Microservices erstellen. Vielleicht möchten Sie Beispielsweise Ihren DevOps-Workflow mit Docker verbessern– Container können Ihnen bessere isolierte Testumgebungen bieten und auch Bereitstellungsprobleme beseitigen, die durch fehlende Abhängigkeiten verursacht werden, wenn Sie zu einer Produktionsumgebung wechseln. In solchen Fällen ist es auch dann sinnvoll, wenn Sie eine monolithische Anwendung bereitstellen, Docker- und Windows-Container für Ihre aktuellen .NET Framework-Anwendungen zu verwenden.

In den meisten Fällen für dieses Szenario müssen Sie Ihre vorhandenen Anwendungen nicht zu .NET 8 migrieren. Sie können Docker-Container verwenden, die das herkömmliche .NET Framework enthalten. Ein empfohlener Ansatz besteht jedoch darin, .NET 8 zu verwenden, wenn Sie eine vorhandene Anwendung erweitern, z. B. das Schreiben eines neuen Diensts in ASP.NET Core.

Verwenden von .NET-Bibliotheken von Drittanbietern oder NuGet-Paketen, die für .NET 8 nicht verfügbar sind

Drittanbieterbibliotheken nutzen schnell .NET Standard, wodurch die Codefreigabe über alle .NET-Varianten hinweg ermöglicht wird, einschließlich .NET 8. Mit .NET Standard 2.0 und höher ist die API-Oberflächenkompatibilität in verschiedenen Frameworks erheblich größer geworden. Noch mehr können .NET Core 2.x- und neuere Anwendungen auch direkt auf vorhandene .NET Framework-Bibliotheken verweisen (siehe .NET Framework 4.6.1, die .NET Standard 2.0 unterstützen).

Darüber hinaus erweitert das Windows Compatibility Pack die API-Oberfläche, die für .NET Standard 2.0 unter Windows verfügbar ist. Dieses Paket ermöglicht das erneute Kompilieren der meisten vorhandenen Code auf .NET Standard 2.x mit wenig oder ohne Änderung, um unter Windows auszuführen.

Selbst bei dieser außergewöhnlichen Entwicklung seit .NET Standard 2.0 und .NET Core 2.1 oder höher kann es vorkommen, dass bestimmte NuGet-Pakete Windows ausführen müssen und .NET Core oder höher möglicherweise nicht unterstützen. Wenn diese Pakete für Ihre Anwendung wichtig sind, müssen Sie .NET Framework unter Windows-Containern verwenden.

Verwenden von .NET-Technologien, die für .NET 8 nicht verfügbar sind

Einige .NET Framework-Technologien sind in .NET 8 nicht verfügbar. Einige davon werden möglicherweise in späteren Versionen verfügbar, andere passen jedoch nicht zu den neuen Anwendungsmustern, die von .NET Core bestimmt sind, und sind möglicherweise nie verfügbar.

In der folgenden Liste sind die meisten Technologien aufgeführt, die in .NET 8 nicht verfügbar sind:

  • ASP.NET Webformulare. Diese Technologie ist nur in .NET Framework verfügbar. Derzeit gibt es keine Pläne, ASP.NET Web Forms in .NET oder höher zu bringen.

  • Workflowbezogene Dienste. Windows Workflow Foundation (WF), Workflow Services (WCF + WF in einem einzigen Dienst) und WCF Data Services (früher als ADO.NET Data Services bezeichnet) sind nur in .NET Framework verfügbar. Es gibt derzeit keine Pläne, sie zu .NET 8 zu bringen.

Zusätzlich zu den Technologien, die in der offiziellen .NET-Roadmap aufgeführt sind, können andere Features zur neuen einheitlichen .NET-Plattform portiert werden. Möglicherweise sollten Sie an den Diskussionen auf GitHub teilnehmen, damit Ihre Stimme gehört werden kann. Und wenn Sie denken, dass etwas fehlt, geben Sie ein neues Problem im GitHub-Repository dotnet/runtime an.

Verwenden einer Plattform oder API, die .NET 8 nicht unterstützt

Einige Microsoft- und Drittanbieterplattformen unterstützen .NET 8 nicht. Beispielsweise stellen einige Azure-Dienste ein SDK bereit, das noch nicht für die Nutzung auf .NET 8 verfügbar ist. Die meisten Azure SDK sollten schließlich zu .NET 8/.NET Standard portiert werden, einige können jedoch aus mehreren Gründen nicht. Die verfügbaren Azure SDKs finden Sie auf der Seite " Neueste Versionen" des Azure SDK .

In der Zwischenzeit können Sie, wenn eine beliebige Plattform oder ein Dienst in Azure .NET 8 mit seiner Client-API immer noch nicht unterstützt, die entsprechende REST-API aus dem Azure-Dienst oder dem Client-SDK in .NET Framework verwenden.

Portieren vorhandener ASP.NET Anwendung zu .NET 8

.NET Core ist ein revolutionärer Schritt von .NET Framework. Es bietet eine Vielzahl von Vorteilen gegenüber .NET Framework von Produktivität bis Leistung und von plattformübergreifender Unterstützung bis hin zur Entwicklerzufriedenheit.

Weitere Ressourcen