.NET (Plattform)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
.NET

Microsoft .NET logo.svg
Basisdaten

Entwickler Microsoft
Erscheinungsjahr 2016
Aktuelle Version 7.0.0[1]
(8. November 2022)
Betriebssystem Linux, macOS, Windows
Programmiersprache vorwiegend C#
Lizenz MIT
dotnet.microsoft.com

.NET, bis 2020 .NET Core, ist eine freie und quelloffene Software-Plattform innerhalb des .NET-Systems, die zur Entwicklung und Ausführung von Anwendungsprogrammen dient und unter der Koordination von Microsoft entwickelt wird.

.NET Core wurde mehrere Jahre als Modernisierungsprojekt von zentralen Komponenten des .Net-Frameworks parallel zu diesem entwickelt und bildet jetzt als .NET den Nachfolger des bisherigen monolithischen .Net-Frameworks.

Bibliotheksfunktionen können kompatibel zur bisherigen .NET-Plattform entwickelt werden, indem sie als Zielframework .NET Standard 2.0 verwenden, empfohlen wird hier jedoch mindestens 4.7.2.

Geschichte[Bearbeiten | Quelltext bearbeiten]

Versionsgeschichte
Version Datum
1.0 RC 1 18. Nov. 2015
1.0 RC 2 16. Mai 2016
1.0 27. Juni 2016[2]
1.0.16 (EoL)[3] 14. Mai 2019
1.1 17. Nov. 2016
1.1.13 (EoL)[3] 14. Mai 2019
2.0 14. Aug. 2017
2.0.9 (EoL)[3] 10. Juli 2018
2.1 30. Mai 2018
2.1.30 (EoL)[3] 19. Aug. 2021[4]
2.2 4. Dez. 2018
2.2.8 (EoL)[3] 19. Nov. 2019[5]
3.0 23. Sep. 2019
3.0.3 (EoL) 18. Feb. 2020
3.1 3. Dez. 2019
3.1.31 (LTS)[6] 8. Nov. 2022
5.0.17 (EoL)[7] 10. Mai 2022
6.0 8. Nov. 2021
6.0.11[8] 8. Nov. 2022
7.0[9] 8. Nov. 2022

.NET Core wurde erstmals im Mai 2014 angekündigt, und zwar unter dem Namen Cloud-optimized .NET Framework. Es folgten die Alpha- und Beta-Variante, bis im November 2015 der erste Release Candidate erschien, womit Anwendungen für den Produktivbetrieb entwickelt werden dürfen. Dieser Release Candidate erhielt den Namen .NET Core 5, wobei die 5 die Fortsetzung der Versionsnummerierung des .Net-Frameworks bedeutet.[10] Im Januar 2016 wurde von Seiten Microsofts allerdings angekündigt, diese Nummerierung dahingehend zu ändern, dass .NET Core in seiner ersten Version beginnend mit 1 nummeriert wird.[11] Am 27. Juni 2016 wurde die Version 1.0 veröffentlicht.[2] Die erste offizielle Version der Softwareentwicklungswerkzeuge erschien am 7. März 2017. Am 14. August 2017 erschien die Version 2.0 mit umfangreichen Ergänzungen der APIs zur Angleichung an das bisherige .Net-Framework bzw. den festgelegten .NET Standard 2.0. Die am 30. Mai 2018 erschienene Version 2.1 enthält Unterstützung für weitere Architekturen, zusätzliche Anweisungen im SDK und Performance-Verbesserungen.[12][13] Diese Version wurde auch zur LTS-Version erklärt, die mindestens bis 21. August 2021 unterstützt wird.[14]

Am 23. September 2019 erschien die Version 3.0 mit umfangreichen Verbesserungen wie der Verwendung der neuen C#-Version 8.0, F# 4.7, der Unterstützung von Desktop-Oberflächen in Form von Zusatzpaketen, Performance-Verbesserungen,[15] AOT-Kompilierung als ReadyToRun-Images zur Reduzierung von Initialisierungszeiten.[16] Zusätzliche Möglichkeiten gab es auch beim auf .NET Core 3 basierenden ASP.NET Core wie das neue Server Side Blazor-Framework und die Unterstützung von gRPC.[17][18] Verbesserungen gab es auch beim Entity Framework Core.[19] Die Version 3.1 ist als LTS-Version konzipiert und enthält eine Reihe von Fehlerbehebungen und Verbesserungen, insbesondere bei Windows Desktop und dem neuen Blazor Framework. Neu ist die Unterstützung von C++/CLI (nur unter Windows).[20]

Im November 2020 wurde dann .NET 5 als Nachfolger zu .NET Core und (nur eingeschränkt kompatibel) zu .NET 4.8 freigegeben. Bestimmte API-Lücken gegenüber dem klassischen .NET werden nur durch Windows-spezifische Zusatzpakete geschlossen (z. B. Microsoft.Windows.Compatibility). Das betrifft auch die im September 2019 im Rahmen der .NET Core Version 3.0 freigegebenen grafischen Benutzeroberflächen Windows Forms und WPF.[21][22]

Seit Dezember 2020 werden die Updates auf Windows für .NET 5 und .NET Core als „Microsoft Updates“ unter bestimmten Voraussetzungen automatisch ausgeliefert.[23]

Im November 2021 wurde .NET 6 freigegeben, mit Performanceverbesserungen und neuen Sprachfeatures in C# 10 und F# 6.[24][25] Mit Hilfe der neuen Hot-Reload Funktion sind Änderungen an der laufenden Anwendung unter bestimmten Voraussetzungen möglich, dies wird insbesondere von Visual Studio 2022 unterstützt.[26][27]

Im Mai 2022 wurde die .NET Multi-Platform App UI (MAUI) eingeführt, die es ermöglicht, grafische Anwendungen mit einer einheitlichen Codebasis für verschiedene Plattformen (derzeit Windows, Android, iOS und macOS) zu entwickeln.[28][29][30]

Im November 2022 erschien die Version 7 mit zahlreichen Leistungsverbesserungen[31] und neuen Funktionen in C#11, F# 7, .NET MAUI, ASP.NET Core/Blazor, Web-APIs, WinForms, WPF.[32] Mit Native AOT gibt es einen neuen Ansatz echten Maschinencode zu erzeugen, der schnell gestartet werden kann und weniger Haupt- und Plattenspeicher benötigt. Dieser ist momentan in erster Linie auf Konsolenprogramme sowie auf Bibliotheksfunktionen zum Aufruf aus nicht-.NET Sprachen ausgerichtet.[33]

Unterstützte Betriebssysteme und Architekturen[Bearbeiten | Quelltext bearbeiten]

Das Software-Development-Kit wird auf folgenden Architekturen unterstützt: Windows (ab Version 7, für IA-32, x64 und Arm mit 32 Bit), macOS (ab 10.12) und verschiedene Linux-Distributionen (für x64 sowie ARM, letztere mit 32- und 64-Bit-Unterstützung).[34][35] Auch für Docker und Snappy gibt es offizielle Images.[36][37]

Entwicklung[Bearbeiten | Quelltext bearbeiten]

Entwicklungsumgebungen[Bearbeiten | Quelltext bearbeiten]

.NET-Anwendungen lassen sich mit folgenden Entwicklungsumgebungen entwickeln:

Programmiersprachen[Bearbeiten | Quelltext bearbeiten]

Als Programmiersprachen für .NET werden C#, F# und VB auf allen oben genannten Betriebssystemen unterstützt, unter Windows zusätzlich noch C++/CLI.[41][42][43]

Ähnlich wie beim klassischem .NET-Framework sind weitere Sprachen implementierbar. So entwickelt Iolevel, eine tschechische Firma, mit dem PeachPie-Compiler einen PHP-Compiler für .NET sowie eine dazu passende Visual-Studio-Erweiterung. Im März 2021 wurde die Version 1 freigegeben.[44][45][46]

Bereitstellung[Bearbeiten | Quelltext bearbeiten]

.NET kennt verschiedene Arten der Veröffentlichung und Bereitstellung. Die framework-abhängigen Methoden setzten die Installation einer passenden Version des Laufzeitsystems auf dem Zielrechner voraus. Bei der eigenständigen Bereitstellung werden die benötigten Teile des Laufzeitsystems gemeinsam mit der Anwendung in einem Verzeichnis bereitgestellt, passend für Betriebssystem und Architektur des Zielrechners.[47]

Es existieren offiziell von Microsoft unterstützte Docker-Images für das Entwickler-SDK sowie die Laufzeitumgebungen.[36] Man kann seine .NET Anwendung daher vergleichsweise einfach plattformübergreifend in Containern betreiben. Auch eine Veröffentlichung des erstellten Images ist möglich. Das SDK-Image ist hierbei für die Kompilierung notwendig, während die daraus erstellten DLL-Dateien lediglich die schlankere Laufzeitumgebung benötigen.

Anwendungsgebiete[Bearbeiten | Quelltext bearbeiten]

.NET selbst ist ohne Zusatzpakete für Konsolenanwendungen und ASP.NET Core (automatisch integriertes Zusatzpaket) verwendbar.[48]

Durch Zusatzpakete, die auch von Drittanbietern stammen können und in einer sehr großen Anzahl auf nuget.org verfügbar sind[49] lässt sich die Basis-Funktionalität des Frameworks erheblich erweitern. Einsatzgebiete, bei denen .NET einen zentralen Bestandteil darstellt, sind beispielsweise:

  • Universal Windows Platform (UWP)
  • Klassenbibliotheken für den .NET Standard[50]
  • Cross-Plattformentwicklung mit GTK#[51]
  • plattformunabhängige Benutzeroberflächen mit Avalonia UI[52]
  • ab Version 3 Windows-Desktop-Oberflächen mit WPF, WinForms oder UWP
  • PHP-Entwicklung mit PeachPie

Die allermeisten Einsatzszenarien, bei denen das frühere .NET-Framework verwendet wurde, können auch mit .NET (ggf. ergänzt um Zusatzpakete) realisiert werden. Für einige der gekündigten Techniken gibt es Lösungen als Community-Projekt (z. B. für WCF das Projekt CoreWCF).[53][54][55]

Bestandteile[Bearbeiten | Quelltext bearbeiten]

Die wichtigsten Komponenten von .NET sind:[56]

  • die Laufzeitumgebung mit den Klassenbibliotheken
  • die Laufzeitumgebung und Klassen für ASP.NET Core (seit Core Version 3.0 fester Bestandteil)
  • das .NET Core bzw. das .NET SDK

Ist das SDK installiert, so können zahlreiche Aufgaben der Softwareentwicklung mit dem Kommando dotnet erledigt werden, z. B. dotnet build – also (englisch für) „[das] Übersetzen der Anwendung“.[57]

Literatur[Bearbeiten | Quelltext bearbeiten]

Lehrbücher

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. .NET and .NET Core official support policy. (amerikanisches, englisch, abgerufen am 8. November 2022).
  2. a b .NET Core: Microsofts plattformunabhängiges Entwicklungs-Framework erreicht Version 1.0. Heise, 27. Juni 2016
  3. a b c d e Download .NET Core. Microsoft, zuletzt geändert am 24. Juli 2019 (englisch)
  4. .NET Core official support policy. Abgerufen am 15. Mai 2020 (englisch).
  5. Download .NET Core 2.2 (Linux, macOS, and Windows). Abgerufen am 23. September 2022 (amerikanisches Englisch).
  6. .Download .NET Core 3.1. Abgerufen am 8. November 2022 (englisch).
  7. .Download .NET 5.0. Abgerufen am 15. Juni 2022 (englisch).
  8. .Download .NET 6.0. In: microsoft.com. Abgerufen am 11. Oktober 2022 (englisch).
  9. .Download .NET 7.0. Abgerufen am 8. November 2022 (englisch).
  10. Holger Schwichtenberg: connect();: .NET Core 5 und ASP.NET 5 erreichen Go-Live-Status. In: Heise. 18. November 2015
  11. Alexander Neumann: .NET Core 1.0 und ASP.NET Core 1.0: Versionswechsel impliziert Neuanfang. Heise, 20. Januar 2016
  12. dotnet/core. Abgerufen am 31. Mai 2018 (englisch).
  13. Performance Improvements in .NET Core 2.1. (microsoft.com [abgerufen am 31. Mai 2018]).
  14. .NET Support Policy. Abgerufen am 14. Dezember 2018 (englisch).
  15. Performance Improvements in .NET Core 3.0. 15. Mai 2019, abgerufen am 12. Oktober 2019 (amerikanisches Englisch).
  16. Announcing .NET Core 3.0. 23. September 2019, abgerufen am 12. Oktober 2019 (amerikanisches Englisch).
  17. ASP.NET Blog | ASP.NET Core and Blazor updates in .NET Core 3.0. 23. September 2019, abgerufen am 12. Oktober 2019 (amerikanisches Englisch).
  18. ASP.NET Blog | gRPC vs HTTP APIs. 18. November 2019, abgerufen am 28. November 2019 (amerikanisches Englisch).
  19. Announcing Entity Framework Core 3.0 and Entity Framework 6.3 General Availability. 23. September 2019, abgerufen am 12. Oktober 2019 (amerikanisches Englisch).
  20. Home repository for .NET Core. Contribute to dotnet/core development by creating an account on GitHub. .NET Platform, 3. Dezember 2019, abgerufen am 3. Dezember 2019.
  21. Holger Schwichtenberg: Build 2018: Microsoft kündigt Windows-Desktopprogrammierung für .NET Core 3.0 an. Heise online, 8. Mai 2018
  22. Rich Lander: Announcing .NET Core 3 Preview 1 and Open Sourcing Windows Desktop Frameworks. In: DevBlogs. Microsoft, 4. Dezember 2018, abgerufen am 24. April 2020 (amerikanisches Englisch).
  23. NET Core 2.1, 3.1, and .NET 5.0 updates are coming to Microsoft Update. 3. Dezember 2020, abgerufen am 8. Dezember 2020 (amerikanisches Englisch).
  24. gewarren: What's new in .NET 6. Abgerufen am 8. November 2021 (amerikanisches Englisch).
  25. Announcing .NET 6 -- The Fastest .NET Yet. 8. November 2021, abgerufen am 8. November 2021 (amerikanisches Englisch).
  26. Introducing the .NET Hot Reload experience for editing code at runtime. 25. Mai 2021, abgerufen am 24. November 2021 (amerikanisches Englisch).
  27. Update on .NET Hot Reload progress and Visual Studio 2022 Highlights. 20. Oktober 2021, abgerufen am 24. November 2021 (amerikanisches Englisch).
  28. Introducing .NET MAUI - One Codebase, Many Platforms. 23. Mai 2022, abgerufen am 24. Mai 2022 (amerikanisches Englisch).
  29. heise online: .NET MAUI: Microsofts neue GUI-Bibliothek für Windows, Android, iOS und macOS. Abgerufen am 24. Mai 2022.
  30. .NET Multi-platform App UI (.NET MAUI) | .NET. Abgerufen am 24. Mai 2022 (amerikanisches Englisch).
  31. Stephen Toub - MSFT: Performance Improvements in .NET 7. 31. August 2022, abgerufen am 10. November 2022 (amerikanisches Englisch).
  32. Jon Douglas: .NET 7 is Available Today. 8. November 2022, abgerufen am 8. November 2022 (amerikanisches Englisch).
  33. LakshanF: Native AOT deployment overview - .NET. Abgerufen am 17. November 2022 (amerikanisches Englisch).
  34. Download .NET 6.0 (Linux, macOS, and Windows). Abgerufen am 23. September 2022 (amerikanisches Englisch).
  35. .NET Release Notes. .NET Platform, 23. September 2022, abgerufen am 23. September 2022.
  36. a b Docker Hub. Abgerufen am 23. September 2022.
  37. Install .NET Core SDK for Linux using the Snap Store. Abgerufen am 24. September 2022 (englisch).
  38. Announcing .NET 6 -- The Fastest .NET Yet. 8. November 2021, abgerufen am 29. März 2022 (amerikanisches Englisch).
  39. Announcing .NET 6 -- The Fastest .NET Yet. 8. November 2021, abgerufen am 29. März 2022 (amerikanisches Englisch).
  40. Rider: die plattformübergreifende .NET IDE von JetBrains. Abgerufen am 24. September 2022.
  41. Announcing .NET Core 2.0 Preview 1, 10. Mai 2017
  42. F# and .NET Core Roadmap Update, 14. August 2017
  43. .NET Core 3.1 erscheint mit Long-term Support. In: heise online. Abgerufen am 4. Dezember 2019.
  44. PeachPie Documentation. Abgerufen am 7. September 2020.
  45. peachpiecompiler/peachpie. PeachPie Compiler Platform, 6. September 2020, abgerufen am 7. September 2020.
  46. heise online: PHP-Compiler für .NET: PeachPie erreicht Version 1.0. Abgerufen am 16. März 2021.
  47. rpetrusha: .NET Core Anwendungsbereitstellung – .NET Core. Abgerufen am 23. Juni 2019 (deutsch).
  48. Rich Lander: Leitfaden für .NET Core. Abgerufen am 22. August 2017.
  49. NuGet Gallery | Home. Abgerufen am 16. März 2021 (englisch).
  50. Bill Wagner: Erstellen einer .NET Standard-Klassenbibliothek mit C# und .NET Core in Visual Studio 2017. Abgerufen am 20. November 2017.
  51. .NET wrapper for Gtk and other related libraries. Contribute to GtkSharp/GtkSharp development by creating an account on GitHub. GtkSharp, 10. August 2019, abgerufen am 10. August 2019.
  52. Avalonia UI Framework – Release. (Nicht mehr online verfügbar.) Archiviert vom Original am 18. Dezember 2018; abgerufen am 18. Dezember 2018.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/avaloniaui.net
  53. cartermp: .NET Framework-Technologien, die für .NET Core und .NET 5 und höher nicht verfügbar sind. Abgerufen am 28. August 2022 (deutsch).
  54. CoreWCF/CoreWCF. Core WCF, 26. August 2022, abgerufen am 28. August 2022.
  55. Was ist WCF? Abgerufen am 28. August 2022.
  56. mairaw: Weitere Informationen zu .NET Core. Abgerufen am 4. Dezember 2019 (deutsch).
  57. Maira Wenzel: Tools für die .NET Core-Befehlszeilenschnittstelle (command-line interface, CLI). Abgerufen am 26. September 2017.