.NET

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel erläutert .NET als Oberbegriff für Technologien von Microsoft, .net ist auch eine Top-Level-Domain.
.NET-Logo

.NET [ˈdɔtnɛt], teilweise auch als Microsoft .NET bezeichnet, dient als Sammelbegriff 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 Technologien.

Die Veröffentlichung der .NET-Plattform wurde von Microsoft erstmals im Jahr 2000 offiziell bekanntgegeben.[1]

Die Bedeutung der einzelnen Teile und Technologien, die .NET umfasst, hat sich im Laufe der Zeit gewandelt. 2017 kann .NET primär als Oberbegriff für drei Frameworks mit vielen Unterbestandteilen (hier weitgehend identisch mit dem Begriff Plattformen verwendet) gesehen werden, das .NET Framework, das ein monolithisches Framework darstellt, das neu erschienende Framework .NET Core, das modular aufgebaut ist sowie die Plattform Xamarin[2].

.NET Framework[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: .NET Framework

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

Wichtigste Teil-Frameworks:

Die Klassenbibliothek des .NET Framework ist seit 2014 als Shared Source, also als einsehbarer und für eigene Zwecke verwendbarer Code verfügbar.[3]

Das .NET Framework selbst enthält mehrere unterschiedliche Ausführungsmodelle bzw. .NET Standards 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.[4]

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, or Xbox 360, ist u.a. mit Xamarin die Portierung auf weitere Plattformen möglich wie iOS, Android und MacOS. Außerdem ergeben sich Kompatbilitäten zu .NET Core und dem .NET Standard.[5]

.NET Core[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: .NET Core

War die 2015 erstmals vorgestellte Frame-Variante .NET Core zunächst eine harte Absplittung vom klassischen .NET Framework[6], wurde 2016 angekündigt, .NET Core um mehr APIs zu erweitern, um die Kompatbilität zwischen verschiedenen .NET Plattformen zu verbessern.

Wichtige Teil-Frameworks:

.NET Standard[Bearbeiten | Quelltext bearbeiten]

Der .NET Standard (ehemals, .NET Platform Standard) ist ein Standard, der bestimmte Anwendungsschnittstellen (APIs) definiert, die von denjenigen Plattformen – zum Beispiel .NET Framework und .NET Core – erfüllt werden müssen, um den Standard der jeweiligen Version zu erfüllen.[8] Dieser Standard referenziert insbesondere verschiedene Entwicklungsstände des neuen Frameworks .NET Core und regelt Portabilitäten, z.B. in Zusammenhang mit den erwähnten Portable Class Libraries.

Weitere Frameworks[Bearbeiten | Quelltext bearbeiten]

Ursprüngliche Bedeutung[Bearbeiten | Quelltext bearbeiten]

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. Danach bezeichnete .NET meist als Synonym das .NET Framework.[9]

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:[10]

Heutige Bedeutung[Bearbeiten | Quelltext bearbeiten]

Heute wird .NET durch Microsoft offiziell als „vielseitige Entwicklungsplattform für alle Arten von Anwendungen und Workloads“ bezeichnet und insbesondere als Oberbegriff sowohl für das klassische monolithische .NET Framework als auch das modulare und portable .NET Core verwendet.[11]

.NET Programmiersprachen[Bearbeiten | Quelltext bearbeiten]

Die bekanntesten zwei .NET Programmiersprachen sind C# und Visual Basic .NET, auch die funktionale Sprache F# wird von Microsoft umfangreich unterstützt. Die folgenden sind darüber hinaus erwähnenswert:

Javascript und .NET[Bearbeiten | Quelltext bearbeiten]

Javascript: Die Unterstützung von Microsofts Variante von Javascript (JScript.NET) endete mit Visual Studio 2010.[12]

Seit Visual Studio 2013 ist auch Javascript wieder als vollwertige Sprache unberstützt, ist jedoch keine .NET Sprache. In der Dokumentation zu Visual Studio 2015 steht der deswegen bemerkenswerte Satz: "JavaScript ist eine der Hauptprogrammiersprachen in Visual Studio."[13] Hierdurch wird klar, dass .NET, etwa seit der Einführung von Windows 8, nur noch eine von mehreren von Microsoft verwendeten Technologien ist. Der C# Entwickler Anders Hejlsberg hat 2012 die Javascript erweiternde Programmiersprache TypeScript vorgestellt. Technologiepolitisch bedeutsam ist die Kooperation von Google und Microsoft, indem Google ausgerechnet bei einer der 2015/2016 erfolgreichsten neuen Technologien [14], nämlich AngularJS, in der Version 2.0 diese Microsoft Programmiersprache verwendete und eine eigene einstampfte.[15]

C++[Bearbeiten | Quelltext bearbeiten]

Während man mit Visual Studio abseits von .NET schon immer in C++ programmieren konnte, war C++ in der .NET Welt nie eine der Hauptsprachen. Jedoch gab es mit Managed C++' schon früh diesbezügliche Möglichkeiten. Mit C++/CLI hat Microsoft eine international standardisierte Spracherweiterung zu C++ geschaffen. Im Unterschied zu der Interop genannten Technik in .NET, die etwa Aufrufe zwischen C# und nativem C++ ermöglicht, lassen sich mit C++/CLI .NET Objekte mit anderen .NET Sprachen direkt übergeben.

Historisch und technologisch interessant ist der Kommentar des C++ Schöpfers Bjarne Stroustrup dazu, der C++/CLI im Absatz seiner FAQ prominent erwähnt, wenn auch wenig begeistert: "However, I am less happy that C++/CLI achieves its goals by essentially augmenting C++ with a separate language feature for each feature of CLI."[16]

Python[Bearbeiten | Quelltext bearbeiten]

Für Python gibt es seit Visual Studio 2013 die "Python-Tools für Visual Studio (PVTS)" und wird in Visual Studio 2015 direkt als unterstützte Sprache genannt. Dabei werden mehrere Interpreter-Versionen, insbesondere CPython, IronPython und IPython unterstützt.[17]

Visual Basic[Bearbeiten | Quelltext bearbeiten]

Historisch erwähnenswert ist, dass durch die Einführung der bis auf den Namen sehr unterschiedlichen Sprache Visual Basic .NET dessen Vorgänger Visual Basic 6 (VB6) in der .NET Welt und insbesondere in Visual Studio nicht mehr unterstützt wurde. Da diese eine der meist eingesetzten Programmiersprachen überhaupt war, war dies ein Problem und es kam zu Aufrufen in der Entwicklergemeinde, VB6 wieder zu unterstützen, jedoch vergeblich.[18]

Microsoft stellte aber Migrationstools bereit. Die letzte Version, für die Migrationstools von Visual Basic nach .NET angeboten wurden, war Visual Studio 2010.[19]

Weitere .NET Programmiersprachen[Bearbeiten | Quelltext bearbeiten]

Es gibt eine umfangreiche Liste von .NET Sprachen, manche sind jedoch nur experimentell und eignen sich nicht zwangsläufig für den kommerziellen Einsatz:

.NET Foundation[Bearbeiten | Quelltext bearbeiten]

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.[20] Sie betreut zurzeit über 30 Open-Source-Entwicklungsprojekte, zu denen auch .NET Core und ASP.NET gehören, aber nicht das klassische .NET Framework.[21]

Common Language Infrastructure (CLI) und weitere ECMA Standards[Bearbeiten | Quelltext bearbeiten]

Microsoft hat bereits mit der ersten Version von .NET und C# eine internationale Standardisierung von Programmiersprache und Framework-Komponenten bei der Organisation ECMA erreicht. Hierdurch sollte eine Offenheit dokumentiert werden, und dass die .NET Technologie nicht ausschließlich als proprietär anzusehen ist. Mit der Unterstützung weiterer Plattformen außer Windows durch Xamarin und .NET Core wurde dieser Weg fortgeführt.

Literatur[Bearbeiten | Quelltext bearbeiten]

Zur ursprünglichen Bedeutung:

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. http://news.microsoft.com/2000/06/22/microsoft-unveils-vision-for-next-generation-internet/
  2. MS Program manager Immo Landwerth: Making it easier to port to .NET Core, aberufen am 18.1.2017
  3. https://www.heise.de/developer/meldung/Microsoft-NET-wird-komplett-Open-Source-2452033.html
  4. Conversion options for bringing your existing desktop app to the Universal Windows Platform using the Desktop Bridge, abgerufen am 19. Januar 2017
  5. UI Roundup 2016: Microsoft UWP and Xamarin
  6. 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
  7. a b 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
  8. .NET Standard, in: GitHub, abgerufen am 19. Januar 2017
  9. Erklärung des Begriffs: .NET (DOTNET)?, in: IT-Visions, abgerufen am 3. Dez. 2015
  10. Schwichtenberg und Eller 2004, S. 979 ff.
  11. .NET Framework und .NET SDKs, in: MSDN, abgerufen am 3. Dez. 2015
  12. JScript.NET in VS 2010, aufgerufen am 19. Januar 2017
  13. Javascript in Visual Studio 2015, aufgerufen am 19. Januar 2017
  14. How Angular is reinventing itself with version 2 and TypeScript, aufgerufen am 19. Januar 2017
  15. Google und Microsoft arbeiten zusammen: AngularJS 2.0 setzt auf TypeScript, aufgerufen am 19. Januar 2017
  16. Bjarne Stroustrup: What do you think of C++/CLI?, aufgerufen am 19. Januar 2017
  17. Python in Visual Studio 2015, aufgerufen am 19. Januar 2017
  18. Microsoft Doesn't Budge on 'Classic' Visual Basic, aufgerufen am 19. Januar 2017
  19. Good News for VB6 Migration, aufgerufen am 19. Januar 2017
  20. http://www.dotnetfoundation.org/
  21. http://www.dotnetfoundation.org/projects