.NET im Vergleich zum .NET Framework für Server-Apps
Bei der Erstellung von serverseitigen Apps werden zwei .NET-Implementierungen unterstützt: .NET und .NET Framework. Die neueste .NET-Version (derzeit .NET 8) ist die bevorzugte Version von .NET für die Serverentwicklung. Die Gründe für die weitere Verwendung von .NET Framework sind spezifisch und begrenzt.
Implementierung | Enthaltene Versionen |
---|---|
.NET | .NET Core 1.0 – 3.1 NET 5 und neuere Versionen |
.NET Framework | .NET Framework 1.0 – 4.8 |
Auswählen von .NET
.NET bietet die folgenden Vorteile für Server-Apps:
Plattformübergreifende Funktion
.NET ermöglicht es Ihrer Web- oder Service-App, auf mehreren Plattformen zu laufen, z. B. Windows, Linux und macOS. Sie können auch jedes dieser Betriebssysteme als Entwicklungsarbeitsstation verwenden. Verwenden Sie die integrierte Entwicklungsumgebung (IDE) von Visual Studio unter Windows, oder verwenden Sie Visual Studio Code unter macOS, Linux oder Windows. Visual Studio Code unterstützt IntelliSense und Debugging. Die meisten Editoren von Drittanbietern funktionieren mit .NET, z. B. Sublime, Emacs und VI. Diese Editoren von Drittanbietern rufen IntelliSense mit OmniSharp ab. Sie können den Code-Editor auch überspringen und die .NET CLIdirekt verwenden.
Unterstützt die Verwendung von Microservices als Ziel
Durch eine Microservicearchitektur ist eine dienstübergreifende Kombination aus Technologien möglich. Diese Kombination aus Technologien ermöglicht eine sukzessive Integration von .NET für neue Microservices, die mit anderen Microservices oder Diensten funktionieren. Sie können z.B. Microservices oder Dienste kombinieren, die mit .NET Framework, Java, Ruby oder einer anderen monolithischen Technologie entwickelt wurden.
Es stehen viele verschiedene Infrastrukturplattformen zur Verfügung. Azure Service Fabric wurde für große und komplexe Microservicesysteme entwickelt. Azure App Service ist eine gute Wahl bei zustandslosen Microservices. Auf Docker basierende Alternativen zu Microservices sind, wie im nächsten Abschnitt „Unterstützt Docker-Container“ erläutert, mit allen Microserviceimplementierungen kompatibel. All diese Plattformen unterstützen .NET und eignen sich daher ideal zum Hosten Ihrer Microservices.
Weitere Informationen zur Microservicearchitektur finden Sie unter NET Microservices: Architektur für containerisierte .NET-Anwendungen.
Unterstützt Docker-Container
Container werden häufig in Verbindung mit einer Microservicearchitektur verwendet. Container können auch zur Containerisierung von Web-Apps und -Diensten verwendet werden, die einem Architekturmuster folgen. Das .NET Framework kann zwar auch für Windows-Container verwendet werden, doch ist .NET durch seine Modularität und den einfachen Aufbau besser für Container geeignet. Das Image eines mit .NET erstellten und bereitgestellten Containers ist wesentlich kleiner als bei .NET Framework. Aufgrund der plattformübergreifenden Struktur können Sie Server-Apps in Linux-Docker-Containern bereitstellen.
Sie können Docker-Container in Ihrer Linux- oder Windows-Infrastruktur oder in einem Clouddienst wie Azure Kubernetes Service hosten. Azure Kubernetes Service kann containerbasierte Anwendungen in der Cloud verwalten, orchestrieren und skalieren.
Bietet Höchstleistung und Skalierbarkeit
Wenn Ihr System die bestmögliche Leistung und Skalierbarkeit erfordert, eignen sich .NET und ASP.NET Core am besten. Die leistungsstarke Serverlaufzeit für Windows Server und Linux macht ASP.NET Core zu einem äußerst leistungsfähigen Webframework für TechEmpower-Benchmarks.
Leistung und Skalierbarkeit sind insbesondere für Microservicearchitekturen relevant, in denen Hunderte von Microservices ausgeführt werden können. Mit ASP.NET Core werden Systeme mit einer viel niedrigeren Anzahl von Servern oder virtuellen Computern (VMs) ausgeführt, wodurch Kosten für Infrastruktur und Hosting gespart werden.
Unterstützt verschiedene parallele .NET-Versionen pro Anwendung
Diese -NET-Implementierung unterstützt parallele Installationen verschiedener Versionen der .NET-Runtime auf demselben Computer. Diese Funktion ermöglicht mehrere Dienste auf demselben Server, jeweils mit einer eigenen Version von .NET. Zudem senkt sie Risiken und spart Kosten für Anwendungsupdates und IT-Vorgänge.
Eine parallele Installation ist mit dem .NET Framework nicht möglich. Es handelt sich um eine Windows-Komponente, und auf einem Computer kann jeweils nur eine Version vorhanden sein: Jede Version von .NET Framework ersetzt die vorherige Version. Wenn Sie eine neue App installieren, die auf eine neuere Version von .NET Framework abzielt, können Sie vorhandene Apps, die auf dem Computer ausgeführt werden, unterbrechen, da die vorherige Version ersetzt wurde.
Sicherer
In welchen Fällen sollte .NET Framework verwendet werden?
Wie bereits erwähnt, bietet die .NET-Implementierung erhebliche Vorteile für neue Anwendungen und Anwendungsmuster. In einigen speziellen Szenarien müssen Sie möglicherweise .NET Framework für Ihre Server-Apps verwenden, und .NET Framework wird weiterhin unterstützt. Verwenden Sie in den folgenden Fällen .NET Framework für Ihre Server-App:
Ihre App verwendet derzeit .NET Framework.
In den meisten Fällen müssen Sie Ihre vorhandenen Anwendungen nicht zu .NET migrieren. Stattdessen wird empfohlen, .NET zu verwenden, wenn Sie eine bestehende App erweitern, z. B. beim Schreiben eines neuen Webdiensts in ASP.NET Core.
Ihre App verwendet Drittanbieterbibliotheken oder NuGet-Pakete, die für .NET nicht verfügbar sind.
Mit .NET Standard können Sie Code in allen .NET-Implementierungen einschließlich .NET 6+ freigeben. Für .NET Standard 2.0 ermöglicht ein Kompatibilitätsmodus, dass .NET Standard- und .NET-Projekte auf .NET Framework-Bibliotheken verweisen können. Weitere Informationen finden Sie unter Unterstützung für .NET Framework-Bibliotheken.
Sie sollten nur dann .NET Framework verwenden, wenn die Bibliotheken oder NuGet-Pakete Technologien nutzen, die nicht in .NET Standard oder .NET verfügbar sind.
Ihre App verwendet .NET Framework-Technologien, die für .NET nicht verfügbar sind.
Einige .NET Framework-Technologien sind in .NET nicht verfügbar. Die folgende Liste enthält die häufigsten Technologien, die von .NET nicht unterstützt werden:
- ASP.NET Web Forms-Anwendungen: ASP.NET Web Forms ist nur in .NET Framework verfügbar. ASP.NET Core kann nicht für ASP.NET Web Forms verwendet werden.
- ASP.NET Web Pages-Anwendungen: ASP.NET Web Pages ist nicht in ASP.NET Core enthalten.
- Workflow-bezogene Dienste: Windows Workflow Foundation (WF), die Workflow-Dienste (WCF + WF in einem einzigen Dienst) und WCF Data Services (früher „ADO.NET Data Services“) sind nur in .NET Framework verfügbar.
- Sprachenunterstützung: Visual Basic und F# werden zurzeit in .NET unterstützt, allerdings nicht für alle Projekttypen. Eine Liste der unterstützten Projektvorlagen finden Sie im Abschnitt Vorlagenoptionen für dotnet new.
Weitere Informationen finden Sie unter In .NET nicht verfügbare .NET Framework-Technologien.
Ihre App verwendet eine Plattform, die .NET nicht unterstützt.
.NET wird auf einigen Plattformen von Microsoft oder Drittanbietern nicht unterstützt. Einige Azure-Dienste stellen ein SDK bereit, das für die Nutzung in .NET noch nicht verfügbar ist. In solchen Fällen können Sie anstelle des Client-SDKs die entsprechende REST-API verwenden.