mini|hochkant|.NET-Logo .NET [], teilweise auch als Microsoft .NET bezeichnet, dient als Oberbegriff.NET-Glossar, Microsoft, Stand: 8. Dez. 2021, abgerufen am 1. Jan. 2022 für mehrere von Microsoft herausgegebene Software-Plattformen, die der Entwicklung und Ausführung von Anwendungsprogrammen dienen, Produkte, Frameworks, Programmiersprachen und alles, was mit den genannten in Verbindung steht, etwa Werkzeuge und Techniken.

Die Veröffentlichung der .NET-Plattform wurde von Microsoft erstmals im Jahr 2000 offiziell bekanntgegeben.news.microsoft.com 2002 wurde das Framework dann als Teil von Visual Studio .NET veröffentlicht.heise.de

Die Bedeutung der einzelnen Teile und Techniken, die .NET umfasst, hat sich im Laufe der Zeit gewandelt. Folgende Frameworks spielen eine herausgehobene Rolle in der Praxis:

das aktuelle .NET in der Version 9 wird auf verschiedenen Plattformen unterstützt. Es wurde mehrere Jahre parallel unter der Bezeichnung .NET Core entwickelt. das nur unter Windows unterstützte klassische .Net-Framework, das mit der Version 4.8.1 im August 2022 zuletzt ein kleines Update erhielt. die Plattform Mono und darauf basierende Techniken (von Microsoft meist als Xamarin bezeichnet). Diese unterstützt seit längerem .NET auf verschiedenen Plattformen (in der Vergangenheit jedoch oft unvollständig implementiert). Die Plattform Mono soll 2022 mit dem aktuellen .NET zusammengeführt werden („One .NET“).

.Net-Implementierungen .Net-Framework

Die Begriffe .NET und .Net-Framework werden oft synonym verwendet. Obwohl es eine Reihe von verwandten, aber unterschiedlichen Frameworks gibt, war mit dem Begriff .NET oder .Net-Framework oft das klassische Framework gemeint, welches auch nur unter den Windows-Betriebssystemen lauffähig ist.

Wichtigste Teil-Frameworks: Entity Framework (früher: ADO.NET Entity Framework) ASP.NET ASP.NET MVC ADO.NET Windows Forms Windows Presentation Foundation Windows Communication Foundation Windows Workflow Foundation

Die Klassenbibliothek des .Net-Framework ist seit 2014 als Shared Source, also als einsehbarer und für eigene Zwecke verwendbarer Code verfügbar.heise.de

Das .Net-Framework selbst enthält mehrere unterschiedliche Ausführungsmodelle bzw. .NET Varianten parallel, zwischen denen man bei der Entwicklung auswählen muss. Neben der klassischen Möglichkeit, Windows-Desktop-Anwendungen (Windows Desktop Apps) zu entwickeln, ist vor allem der seit Windows 8 und insbesondere Windows 10 unterstützte Typ Universal Windows Platform zu nennen (mehrere Vorgängerbezeichnungen wie Windows Store Apps, siehe Windows Store), da Windows in diesen Versionen selbst zwei verschiedene Anwendungstypen bzw. Benutzeroberflächen unterstützt.Conversion options for bringing your existing desktop app to the Universal Windows Platform using the Desktop Bridge, abgerufen am 19. Januar 2017.

Weiterhin ist das Konzept der Portable Class Libraries zu erwähnen. Dienten diese unter Visual Studio 2010 noch lediglich zur Portierbarkeit von .NET Code auf Silverlight, Windows Phone 7, oder Xbox 360,Portable class libraries under VS 2010, abgerufen am 19. Januar 2017 ist u. a. durch Xamarin die Portierung von mit dem .Net-Framework erzeugten Portable Class Libraries auf weitere Plattformen möglich, wie iOS, Android und macOS.UI Roundup 2016: Microsoft UWP and Xamarin, abgerufen am 19. Januar 2017What is a Portable Class Library, abgerufen am 19. Januar 2017.

Mit der Veröffentlichung von .NET Core 3 wurde die Weiterentwicklung von .Net-Framework vorübergehend eingestellt, so dass Version 4.8 die letzte Hauptversion ist. Im August 2022 erschien jedoch noch ein kleineres Update auf 4.8.1.

.NET (davor .NET Core)

Die 2015 erstmals vorgestellte Frame-Variante .NET Core war zunächst eine harte Abspaltung vom klassischen .Net-Framework. Diese wurde von Grund auf neu entwickelt und deckte in der ersten Version nur ungefähr 10 % der Funktionalität des klassischen .Net-Frameworks ab.Holger Schwichtenberg: Zwei auf einen Streich, auch in: Windows Developer Nr. 10/2015, S. 8–14 (Trennung in .NET Core und .NET Framework), abgerufen am 19. Januar 2017.

Primäre Entwurfsziele sind eine verbesserte Modularität, die leichtere Portierbarkeit auch auf Microsoft-fremde Plattformen sowie die Entwicklung als Open-Source-Projekt unter Beteiligung der weltweiten Entwicklergemeinschaft.

.NET Core war Teil der 2014 von Microsoft ausgerufenen Strategie „Cloud first, Mobile first“,Microsoft 2014: "Cloud first, Mobile first" und so konzentrierte man sich bei der Implementierung auch zunächst auf webbasierte Komponenten.

Die zunächst angekündigte Versionierung von .NET Core und seinen Komponenten als Version 5 des .Net-Frameworks wurde wieder zurückgenommen, da sich die ersten Versionen insbesondere aufgrund geringeren Funktionsumfanges sowie Produktreife nicht als Nachfolger der Versionen 4.5 oder 4.6 des klassischen .NET Frameworks eigneten.Alexander Neumann: .NET Core 1.0 und ASP.NET Core 1.0: Versionswechsel impliziert Neuanfang, in: heise online vom 20. Januar 2016, abgerufen am 21. Januar 2016.ASP.NET 5 Is Dead – Introducing ASP.NET Core 1.0 and .NET Core 1.0, abgerufen am 19. Januar 2017.

Im Mai 2016 wurde angekündigt, .NET Core um mehr APIs zu erweitern, um die Kompatibilität zwischen den verschiedenen .Net-Frameworks zu verbessern, was für die .NET-Gemeinde eine der wichtigsten Nachrichten seit langem darstellte.Making it easier to port to .NET Core (englisch) – Immo Landwerth (Dipl.-Inf. und Programmverwalter [oder englisch ] bei Microsoft) im .NET Blog, am 27. Mai 2016

Wichtige Teil-Frameworks: ASP.NET Core Entity Framework Core Seit November 2020 bildet .NET (unter Weglassung der Bezeichnung Core), einen gemeinsamen Nachfolger von .NET Core und .Net-Framework.

Andere Implementierungen Xamarin, vormaliger Name: Mono, mit dem erstmals eine direkte Lauffähigkeit unter Unix, iOS, Android und macOS möglich wurde. .NET Compact Framework, erlangte primär eine Bedeutung für Pocket-PC-Geräte, die später von Windows Phone abgelöst wurden. .NET Micro Framework, das für Sensoren und Kleinstgeräte, etwa im Internet of Things, vorgesehen war, bevor .NET Core entwickelt wurde. Silverlight, das als portable Version von .NET, insbesondere für das Internet und als Konkurrenz u. a. zu Adobe Flash und Adobe Air vorgesehen war, bevor .NET Core entwickelt wurde.

.NET Standard .NET Standard (ehemals .NET Platform Standard) ist eine Spezifikation, die dafür sorgt, dass eine festgelegte Teilmenge der Programmierschnittstellen von .NET in den verschiedenen Implementierungen (.NET, .NET Core, Mono) einheitlich zur Verfügung steht.Introducing .NET Standard, abgerufen am 19. Januar 2017, Originalzitat: „.NET Standard 2.0 will be implemented by .NET Framework, .NET Core, and Xamarin. For .NET Core, this will add many of the existing APIs that have been requested.“ Dabei gibt es verschiedene Versionen von .NET Standard. Version 2.1 wird vom klassischen .Net-Framework nicht mehr unterstützt, da die Entwicklung vom letzteren eingefroren wurde und dieses von .NET Core abgelöst werden soll.

Um .NET Standard umzusetzen, wurden bestimmte Referenzassemblies samt ihren Programmierschnittstellen definiert, die von allen .NET-Implementierungen einheitlich bereitgestellt werden müssen..NET Standard FAQ, in: GitHub, abgerufen am 19. Januar 2017. Die Nutzung geschieht mit Hilfe eines neuen Projekt-Typs, der NET Standard-Klassenbibliothek. Dieser ermöglicht, Klassenbibliotheken bereitzustellen, die auf .NET Standard basieren. Einmal für eine bestimmte Version von .NET Standard entwickelt und übersetzt, sind diese ohne Neukompilierung sogar in späteren Versionen der verschiedenen Laufzeitumgebungen verwendbar..NET Platform Standard and the magic of “imports”, abgerufen am 19. Januar 2017

.NET Standard ersetzt die erwähnten Portable Class Libraries und steuert die API-Angleichung für .NET Core. Mit .NET Standard 2.0 ist ein wichtiger Kompatibilitätsschritt erreicht worden: „.NET Standard 2.0 wird von .NET Framework, .NET Core und Xamarin implementiert. Dadurch werden viele der vorhandenen APIs, an denen Interesse besteht, zu .NET Core hinzugefügt.“

Durch die Entwicklung gegen eine definierte Version von .NET Standard ist es .NET-Entwicklern einfacher möglich, auf eine für viele Zwecke ausreichende Untermenge von .NET-Funktionalitäten zu setzen, um dafür auf möglichst vielen Betriebssystemen und Geräten, etwa Handys und Spielkonsolen, lauffähig zu sein. Will man dagegen spezifische Implementierungen, etwa in Windows, erstellen, die auf anderen Geräten nicht direkt unterstützt werden (z. B. WPF), so muss man mit mehreren Projekten arbeiten und den plattformunabhängigen Teil der Anwendung in einer .NET Standard-Klassenbibliothek entwickeln.

Ursprüngliche Bedeutung und Begriffsentwicklung mini|Altes Logo Der Begriff .NET diente Microsoft bis etwa 2003 als zusammenfassender Vermarktungsbegriff, also als Schlagwort für neue, aber sehr unterschiedliche Produkte wie Betriebssysteme, Server und Office-Software. Später kam als Begriff die Konzentration auf die Softwareentwicklung. Oftmals bezeichnete .NET in der Folgezeit als Synonym das klassische .Net-Framework als „physisch“ herunterladbares Paket,Erklärung des Begriffs: .NET (DOTNET)?, in: IT-Visions, abgerufen am 3. Dez. 2015. obwohl streng genommen z. B. schon die Programmiersprache C# von der physischen Implementierung eines bestimmten Frameworks unabhängig ist.

In der Entstehungsphase von .NET Ende der 1990er, Anfang der 2000er Jahre bezeichnete Microsoft in offiziellen Präsentationen die .NET-Plattform auch als .NET-Initiative. Plattform bzw. Initiative wurden dabei als aus sechs Teilen bestehend beschrieben:Schwichtenberg und Eller 2004, S. 979 ff. .Net-Framework, beinhaltet im Wesentlichen Laufzeitumgebung, Klassenbibliothek und Compiler .NET Enterprise Server, beinhaltet Serverprodukte wie etwa BizTalk, Windows Server 2000 und SQL Server 2000 .NET Device Software, dient der Unterstützung von Mobilgeräten und beinhaltet auch .NET Compact Framework, dessen Klassenbibliothek eine Untermenge des .Net-Frameworks enthält .NET My Services, auch bezeichnet als Hailstorm oder Building Blocks oder Foundation Services, beinhaltet auch Webservices, COM+-Dienste .NET Tools bzw. .NET Infrastructure and Tools, diese beinhalten vor allem die Entwicklungsumgebung Microsoft Visual Studio .NET User Experience

Später kamen, wie im Artikel beschrieben, weitere Framework-Varianten sowie insbesondere auch prinzipiell frameunabhängige Sprachkonzepte hinzu (siehe C#), so dass .NET heutzutage als Sammelbegriff für verwandte Techniken anzusehen ist.

Open Source und .NET Foundation Die .NET Foundation ist eine Organisation, die sich selbst als unabhängig bezeichnet und die die offene Entwicklung und Zusammenarbeit im .NET-System fördern will. Ihre Entstehung wurde erstmals 2014 öffentlich bekanntgegeben.dotnetfoundation.org Sie betreut zurzeit über 30 Open-Source-Entwicklungsprojekte, zu denen auch .NET Core und ASP.NET gehören, aber nicht das klassische .NET Framework.dotnetfoundation.org

Die neueren Teile der .NET-Technik sind damit offen und gehören nicht mehr proprietär alleine zu Microsoft, wie jahrelang von Anhängern anderer Techniken kritisiert. Gemeinsam mit den erwähnten Offenlegungen des klassischen .NET Frameworks sowie des Compilers und den ECMA-Standardisierungen sind damit wesentliche Bestandteile von .NET allgemein zugänglich.

Dem technischen Lenkungsausschuss (Technical Steering Group) gehören neben Microsoft auch Red Hat, JetBrains, Unity Technologies, Samsung und Google an. (Stand 10. Februar 2018)

Common Language Infrastructure (CLI) und weitere ECMA-Standards