.NET

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Dot Net)
Wechseln zu: Navigation, Suche
Dieser Artikel behandelt die Software-Plattform von Microsoft. Zur Top-Level-Domain siehe .net.
.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] 2002 wurde das Framework als Teil von Visual Studio .NET dann veröffentlicht.[2]

Die Bedeutung der einzelnen Teile und Technologien, die .NET umfasst, hat sich im Laufe der Zeit gewandelt. Stand 2017 spielen folgende Frameworks (hier weitgehend identisch mit dem Begriff Plattformen verwendet) eine herausgehobene Rolle in der Praxis: das klassische .NET Framework, das ein monolithisches Framework darstellt, das neu erschienene Framework .NET Core, das modular aufgebaut ist sowie die Plattform Xamarin.[3]

.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, 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:

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

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.[5]

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[6], 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.[7][8]

.NET Core[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: .NET Core

Die 2015 erstmals vorgestellte Frame-Variante .NET Core war zunächst eine harte Absplittung vom klassischen .NET Framework. Diese wurde von Grund auf neu entwickelt und begann mit einer minimalen Funktionalität von ungefähr auf 10 % reduzierter Abdeckung der Funktionalität des klassischen .NET Frameworks.[9]

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

.NET Core war Teil der 2014 von Microsoft ausgerufenen "Cloud first, Mobile first" Strategie[10] 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.[11][12]

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.[3]

Wichtige Teil-Frameworks:

.NET Standard[Bearbeiten | Quelltext bearbeiten]

Der .NET Standard (ehemals, .NET Platform Standard) ist ein 2016 vorgestellter Standard für existierende und zukünftige .NET-Framework-Varianten und -Versionen.[13] Als Plattform kann hier vereinfacht derjenige Teil (eines Frameworks) angesehen werden, der die Lauffähigkeit auf einer Betriebssystemplattform wie Windows oder Linux ermöglicht, deswegen wird der Begriff oft synonym verwendet.

Im .NET Standard werden bestimmte Referenzassemblies samt ihren Programmierschnittstellen definiert, die von denjenigen Plattformen – zum Beispiel .NET Framework und .NET Core – bereitgestellt werden, die den Standard der jeweiligen Version erfüllen wollen.[14] Hierdurch ist es möglich, eine Anwendung bereitzustellen, die einen .NET Standard implementiert, und ohne Neukompilierung trotzdem auf einer erst zeitlich später bereitgestellten .NET-Plattform (Version) lauffähig zu sein.[15]

.NET Standard soll die erwähnten Portable Class Libraries ersetzen und wird die für .NET Core angekündigte API-Angleichung takten. Mit .NET Standard 2.0 wird ein wichtiger Kompatibilitätsschritt erreicht werden: ".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."[13]

Durch die Programmierung gegen eine definierte Version des Standards ist es künftig den .NET-Entwicklern besser organisiert möglich, entweder auf eine Untermenge von .NET-Funktionalitäten zu setzen, und dafür auf mehreren Arten von Betriebssystemen und Geräten, etwa Handys und Spielkonsolen, lauffähig zu sein, oder auch spezifische Implementierungen, etwa in Windows, auszunutzen, die auf anderen Geräten nicht direkt unterstützt werden.

Weitere Framework-Varianten[Bearbeiten | Quelltext bearbeiten]

Ursprüngliche Bedeutung und Begriffsentwicklung[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. 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.[16], 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:[17]

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 Technologien anzusehen ist.

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

Die neueren Teile der .NET-Technologie sind damit offen und gehören nicht mehr proprietär alleine zu Microsoft, wie jahrelang von Anhängern anderer Technologien 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.

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, insbesondere durch Xamarin und .NET Core, wurde dieser Weg fortgeführt.

.NET-Programmiersprachen[Bearbeiten | Quelltext bearbeiten]

Die beiden bekanntesten .NET-Programmiersprachen sind C# und Visual Basic .NET; auch die funktionale Sprache F# wird von Microsoft umfangreich unterstützt. Darüber hinaus sind erwähnenswert:

Javascript und .NET[Bearbeiten | Quelltext bearbeiten]

Microsofts Unterstützung seiner proprietären Javascript-Variante JScript .NET lief mit Visual Studio 2010 aus.[20]

Seit Visual Studio 2013 ist auch JavaScript wieder als vollwertige Sprache unterstützt, ist jedoch keine .NET-Sprache. Dennoch steht in der Dokumentation zu Visual Studio 2015 der Satz: „JavaScript ist eine der Hauptprogrammiersprachen in Visual Studio.“[21] 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 bei einer der 2015/2016 erfolgreichsten neuen Technologien,[22] nämlich AngularJS, in der Version 2.0 diese Microsoft-Programmiersprache verwendete und eine eigene einstampfte.[23]

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."[24]

Python[Bearbeiten | Quelltext bearbeiten]

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

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.[26]

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

Weitere .NET-Programmiersprachen[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: Liste von .NET-Sprachen

Es gibt eine große Anzahl von .NET-Sprachen, von denen manche jedoch nur experimentell sind und sich nicht zwangsläufig für den kommerziellen Einsatz eignen.

Literatur[Bearbeiten | Quelltext bearbeiten]

Zur ursprünglichen Bedeutung:

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. news.microsoft.com
  2. https://www.heise.de/newsticker/meldung/Microsoft-feiert-15-Geburtstag-der-Entwicklungsplattform-NET-3624163.html
  3. a b MS Program manager Immo Landwerth: Making it easier to port to .NET Core, abgerufen am 18. Januar 2017.
  4. heise.de
  5. Conversion options for bringing your existing desktop app to the Universal Windows Platform using the Desktop Bridge, abgerufen am 19. Januar 2017.
  6. Portable class libraries under VS 2010, abgerufen am 19. Januar 2017
  7. UI Roundup 2016: Microsoft UWP and Xamarin, abgerufen am 19. Januar 2017
  8. What is a Portable Class Library, abgerufen am 19. Januar 2017.
  9. 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.
  10. Microsoft 2014: "Cloud first, Mobile first"
  11. 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
  12. ASP.NET 5 Is Dead- Introducing ASP.NET Core 1.0 and .NET Core 1.0, abgerufen am 19. Januar 2017.
  13. a b Introducing .NET Standard, abgerufen am 19. Januar 2017
  14. .NET Standard FAQ, in: GitHub, abgerufen am 19. Januar 2017
  15. .NET Platform Standard and the magic of “imports”, abgerufen am 19. Januar 2017
  16. Erklärung des Begriffs: .NET (DOTNET)?, in: IT-Visions, abgerufen am 3. Dez. 2015
  17. Schwichtenberg und Eller 2004, S. 979 ff.
  18. dotnetfoundation.org
  19. dotnetfoundation.org
  20. JScript.NET in VS 2010, abgerufen am 19. Januar 2017.
  21. Javascript in Visual Studio 2015, abgerufen am 19. Januar 2017.
  22. How Angular is reinventing itself with version 2 and TypeScript, abgerufen am 19. Januar 2017.
  23. Google und Microsoft arbeiten zusammen: AngularJS 2.0 setzt auf TypeScript, abgerufen am 19. Januar 2017.
  24. Bjarne Stroustrup: What do you think of C++/CLI? abgerufen am 19. Januar 2017.
  25. Python in Visual Studio 2015, abgerufen am 19. Januar 2017.
  26. Microsoft Doesn’t Budge on ‘Classic’ Visual Basic, abgerufen am 19. Januar 2017.
  27. Good News for VB6 Migration, abgerufen am 19. Januar 2017.