.NET (DOTNET)

Eintrag zuletzt aktualisiert am: 10.04.2022


.NET (gesprochen DOTNET) ist der Oberbegriff für die wichtigste Softwareentwicklungsinfrastruktur der Firma Microsoft.

.NET umfasst
Anfänge um den Jahrtausendwechsel
.NET wurde erstmals im Juni des Jahres 2000 von Bill Gates erwähnt. Einen Monat später, auf der Professional Developers Conference (PDC), verteilte Microsoft dann CDs mit eine Alpha-Version .NET Framework 1.0 und der zugehörigen Entwicklungsumgebung Visual Studio .NET für die Sprachen C#, Visual Basic .NET, J# (Java-Syntax), Jscript.NET (JavaScript-Syntax) sowie Managed C++ (später: C++/CLI).

Microsoft sieht als offiziellen Erscheinungstermin des .NET Framework 1.0 den 13. Februar 2002 an, auch wenn laut Quellen im Netz der Download der fertigen Version im Microsoft Developer Network (MSDN) schon am 14. Januar 2002 möglich war.

Viele Implementierungen bis "One .NET"
Die erste Implementierung von .NET war das Microsoft .NET Framework. Es gab in der Vergangenheit diverse Implementierung von .NET, die meisten innerhalb von Microsoft, einige aber auch außerhalb von Microsof6t (Mono und DotGnu Portable .NET). Viele sind davon wieder beerdigt worden.
Mit .NET 5.0 und .NET 6.0 hat Microsoft die drei verbliebenen Varianten .NET Framework, .NET Core und Mono/Xamarin zusammengeführt zu "One .NET".

Standardisierung
.NET ist in Teilen bei der ECMA und ISO standardisiert.

Schreibweise
Bezüglich der genauen Schreibweise von .NET gibt es einige Meinungsverschiedenheiten. Zum Teil schreibt Microsoft selbst .net oder .Net. Einige Medien schreiben den Begriff aus: DOTNET oder dotnet. Vorherrschend und von Micro-soft selbst meist verwendet ist jedoch die Schreibweise mit drei Großbuchstaben. Diese Schreibweise wird auch in diesem Buch verwendet (außer auf dem Cover, da hier das offizielle Logo abgebildet ist, das die Kleinschreibweise verwendet).

Ziele von .NET
Ziel von .NET waren und sind:
  • moderne, flexible und plattformneutral Softwareentwicklungsplattform auf hohem Abstraktionsniveau
  • für die Entwicklung von Software aller Art zu schaffen, als
  • Nachfolger für das zuvor herrschende Wirrwarr von Softwareentwicklungsplattformen für Windows (C++ MFC, Visual Basic, COM)
  • Konkurrenz zu Java

.NET bietet Unterstützung für die Programmierparadigmen
  • Objektorientierung
  • Komponentenorientierung und
  • Serviceorientierung

Mit Ausnahme der Hardwaretreiberprogrammierung deckt .NET von Desktop-Anwendung bis Web-Anwendungen, von Systemdiensten bis Webservice und von Datenbankroutinen bis zur Office-Programmierung alle Anwendungsarten ab.

Plattformneutralität
.NET war immer schon grundsätzlich plattformneutral – durch seine Intermediate Language und den Just-in-Time-Compiler. Microsoft hatte schon 2002 durch das Projekt "Rotor" (alias Shared Source Common Language Infrastructure) eine auch auf FreeBSD und dem Mac lauffähige Version von .NET erstellt. Diese Implementierung war Voraussetzung für die Standardisierung von .NET und C# bei der European Computer Manufacturers Association ( ECMA-335) einschließlich der späteren Übernahme des Standards durch die International Standardization Organization (ISO / IEC 23271).

Nur war Microsoft damals noch eine "Windows only"-Firma und der Meinung, Linux sei ein Krebsgeschwür [https://www.heise.de/newsticker/meldung/Microsoft-Chef-Ballmer-bezeichnet-Linux-als-Krebsgeschwuer-38381.html] und lieferte deshalb sein .NET Framework nur für Windows. Die Lizenzbedingungen von Rotor ließen keine kommerzielle Nutzung auf anderen Betriebssystemen zu.

Diese Verweigerungshaltung führte dazu, dass sich zwei Open Source-Projekte, Mono und DotGnu, eine eigene .NET-Implementierung erschufen. Mono-Gründer Miguel de Icaza beteuerte damals, dass er niemals den Code von Rotor auch nur angeschaut habe, um nicht Gefahr zu laufen, ähnlichen Programmcode wie Microsoft zu produzieren.
In den ersten Jahren wurden in der Entwicklergemeinde wetten abgeschlossen, wie lange Microsoft die Nacharmer gewähren lassen wird, bis die Anwälte vor der Tür standen. Über die Jahre wurde aber klar, dass Microsoft Mono nicht nur tolerierte, sondern sogar inoffiziell durch Informationsaustausch unterstützt. Kommerzielle bedeutend wurde Mono erst, als man auf den Zug der neu aufkommenden Mobilbetriebssysteme Android und iOS aufsprang.

Auf der TechEd 2014 in Housten verkündete Microsoft das "Project K": eine schlankere, modulare und plattformneutrale Neuimplementierung von .NET mit dem Werbeattraibut "cloud-optimized .NET Framework". Erster offizieller Produktname war ".NET Core 5.0" [https://www.heise.de/developer/meldung/Microsoft-NET-wird-zur-Cross-Entwicklungsplattform-2454712.html], dann entschlossen sich Microsoft, die Versionszählung neu zu starten. Nach einigen Verzögerung kam dann .NET Core 1.0 ist am 26. Juni 2016 für Windows, Linux und macOS.

Geschichtliches
Anfangs (Jahre 2000-2003) hatte Microsoft .NET als Marketing-Begriff für alle neuen Produkte (Betriebssystem, Server, Office) verwendet – nach Kritik von Kunden und Medien hat Microsoft jedoch die sinnvolle Redu-zierung auf das .NET Framework und zugehörige Softwarekomponenten und Werkzeuge vollzogen.

Ursprünglich hatte .NET sechs Teilbereiche:
1. .NET Framework
2. .NET Enterprise Server
3. .NET Device Software
4. .NET Tools (Visual Studio .NET)
5. .NET User Experience
6. . NET My Services ("Hailstorm")

Es folgt eine Beschreibung der damaligen Teilbereiche:

1. das .NET Framework als ein neues technisches Konzept zur Anwendungsentwicklung unter Windows, das ein neues Komponentenmodell, eine Laufzeitumgebung und ein Intermediation-Konzept beinhaltet
Das .NET Framework umfasst auch ein Regelwerk zum Bau von Compilern (Common Language Specification – CLS) und die Common Language Runtime (CLR), die einerseits Laufzeitumgebung für alle .NET-Anwendungen ist und andererseits für alle Sprachen eine einheitliche Klassenbibliothek bereitstellt.
2. Entwicklungswerkzeuge wie Visual Studio .NET (VS.NET) und Visual Studio for Applications (VSA), die die Entwicklung von Anwendungen auf Basis des .NET Frameworks erlauben
3. die .NET Enterprise Server, die die Infrastruktur für .NET-Anwendungen bereitstellen. Der Name .NET En-terprise Server umfasst zurzeit folgende Produkte:
  • Exchange Server 2000
  • Host Integration Server 2000
  • SQL Server 2000
  • Internet Security and Acceleration Server 2000 (ISA-Server)
  • Commerce Server 2000
  • Biztalk Server 2000
  • Application Center 2000
  • SharePoint Portal Server 2001
  • Mobile Information Server 2001

Da diese Produkte aber bereits im Winter 2000 bzw. Frühjahr 2001 – also vor der Verfügbarkeit einer endgültigen Version des .NET Frameworks – erschienen sind, basiert natürlich keines dieser Pro-dukte auf dem .NET Framework. Die Bezeichnung .NET Enterprise Server ist so zu verstehen, dass diese Serveranwendungen den Aufbau von .NET-Anwendungen unterstützen. Technisch basieren alle diese Server aber noch auf COM; sie benötigen keinen Teil der .NET-Laufzeitumgebung. Die .NET-Laufzeitumgebung war zum Zeitpunkt der Veröffentlichung der meisten .NET Enterprise Server auch noch nicht über das Beta-Stadium hinaus. Möglich ist, dass zukünftige Versionen mit dem .NET Framework neu entwickelt werden.
4. die .NET Device Software zur Anbindung von mobilen Geräten wie Mobiltelefonen, Handheld-Computern (PDAs) und anderen technischen Geräten (z.B. Kühl-schränke, Fernseher)
5. neue Dienste für den Endanwender ("User Experience"). Dieser Bereich ist von Microsoft noch am wenigsten klar definiert. In Fortsetzung des früheren Marketing-Slogans "Information at your Fingertips" verspricht Microsoft bessere Benutzerschnittstellen mit natürlicherer Bedienung und besseren Werkzeugen, die dem Benutzer mehr Informationen anbieten. In diesem Zusammenhang wird insbesondere der Einsatz von Agententechnologie genannt. Die Umsetzung dieser User Experience sieht Microsoft in der Benutzeroberfläche "Luna", die mit Windows XP und Windows .NET Server ausgeliefert wird.
6. ein Satz von Anwendungen und Diensten, die zur Bereitstellung dieser Endanwenderdienste genutzt werden können. Diese werden als Building Blocks oder auch als Foundation Services bezeichnet. Beispiele dafür sind Storage, Authentication, Code-Updates, Suchdienste und Messaging.

Von diesen Teilbereichen sind als Teil von .NET nur noch übrig:
  • Das .NET Framework
  • Die Entwicklungswerkzeuge
  • Einige wenige Building Block Webservices

Alle anderen Produkte existieren noch, tragen aber nicht mehr den Namen ".NET", z.B.
Aktuelle Implementierungen von .NET
  • Das vollständige Microsoft .NET Framework für die Windows-Betriebssysteme
  • .NET Core seit 2016, seit 2020 nur noch ".NET" genannt
  • Mono insbesondere als Basis für Xamarin Mobile Apps
  • .NET Native für Universal Windows Platform (UWP) Apps

Frühere Implementierungen von .NET

Eine Differenzierung in allgemeine Anwendungen (Java SE) und Unternehmensanwendungen (Java EE) gab es nicht. .NET differenzierte früher vielmehr zwischen Funktionen für den Client („.NET Framework Client Profile“) und zusätzlichen Funktionen für Server („.NET Framework Extended“).

Internet-Ressourcen:
https://dotnet.microsoft.com/en-us/
https://www.dotnetframework.de/