.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
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
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/