Was ist das .NET Framework? Microsofts Antwort auf Java

Was ist das .NET Framework? .NET definiert

 .NET ist ein Softwareentwicklungsframework - und ein begleitendes Ökosystem aus Tools, Sprachen und Laufzeiten -, das von Microsoft erstellt wurde, um die Anwendungsentwicklung auf verschiedenen Plattformen, von Desktops bis hin zu Mobilgeräten, zu vereinfachen. Obwohl .NET (ausgesprochen dot net und manchmal als .Net geschrieben) ursprünglich mit dem proprietären Windows-Betriebssystem und den Windows-Plattformen von Microsoft verbunden war, als es Anfang der 00er Jahre gestartet wurde, können .NET-Anwendungen jetzt für das Web, MacOS und iOS geschrieben werden , Android, Linux und mehr - und .NET ist ein formaler Standard und offiziell als Open Source verfügbar.

Microsoft beschreibt .NET als "eine konsistente objektorientierte Programmierumgebung, unabhängig davon, ob Objektcode lokal gespeichert und ausgeführt, lokal, aber über das Internet verteilt oder remote ausgeführt wird". .NET zielt darauf ab, eine sichere Ausführung von Code zu ermöglichen, eine bessere Leistung als interpretierte Sprachen zu erzielen und die Entwicklererfahrung für eine Vielzahl von Apps konsistent zu machen. 

Hauptkomponenten von .NET Framework

Das .NET Framework gibt es seit fast 20 Jahren und es wurden viele Änderungen vorgenommen. In dieser Zeit wurden Komponenten eingeführt und später veraltet. Derzeit gibt es in .NET drei Hauptschichten:

  • Die .NET-Standardbibliothek enthält die Komponenten, die die Infrastruktur für nahezu jede Anwendung bilden, die Sie schreiben möchten - Klassen und Typen, die bei der Ausführung alltäglicher Aufgaben wie dem Umgang mit Zeichenfolgen und Grundelementen, dem Erstellen von Datenbankverbindungen und dem Ausführen von E / A hilfreich sind Operationen und so weiter.
  • Optionale App-Modelle enthalten Installationscode für die verschiedenen Plattformen, auf denen Sie Ihre .NET-Anwendung bereitstellen können. Es gibt eine Reihe von App-Modellen für Windows-Anwendungen (ein Erbe der engen Verbindung von .NET mit dem sich ständig weiterentwickelnden Flaggschiff-Betriebssystem von Microsoft) und auch für andere Plattformen: ASP.NET für Webanwendungen und Modelle für den Mac und verschiedene andere mobile Plattformen.
  • Die gemeinsame Infrastruktur ist die Basisschicht von Komponenten, die es dem gesamten Ökosystem ermöglichen, in der Praxis tatsächlich ausgeführt zu werden, von Compilern über Sprachen bis hin zu Laufzeitkomponenten. Diese sind entscheidend, um zu verstehen, was .NET zu bieten hat. Wir werden sie daher in den nächsten Abschnitten genauer betrachten. 

So funktioniert das .NET Framework

Die Hauptkomponenten von .NET Framework arbeiten zusammen, um das Schreiben von Anwendungen zu vereinfachen. Die Standardbibliotheks- und App-Modelle bieten viel Code für grundlegende Programmieraufgaben, sodass Sie das Rad nicht bei jeder von Ihnen erstellten Anwendung neu erfinden müssen. Die gemeinsame Infrastruktur übernimmt einen Großteil der Arbeit bei der Bereitstellung dieser Anwendungen.

Code, der in einer der .NET-Sprachen geschrieben wurde (mehr dazu gleich), wird in eine Zwischenbytecode-Sprache kompiliert, die als Common Intermediate Language ( CIL) bezeichnet wird. CIL-Code ist nicht für Menschen lesbar, kann jedoch auf Betriebssysteme und Plattformen portiert werden. Die CIL wird dann erneut von der Common Language Runtime ( CLR) kompiliert . CLR-Implementierungen sind plattformspezifisch und kompilieren CIL-Code zu maschinenlesbarem Code, der derzeit auf der Plattform ausgeführt werden kann. Verschiedene CLR-Versionen unterstützen sowohl Just-in-Time- als auch Pre-of-Time-Kompilierungen.

Bei der Erstellung von lokalem maschinenlesbarem Code verwaltet die CLR auch viele Anwendungsfunktionen auf niedriger Ebene, z. B. Garbage Collection und Threading, die für die App-Leistung von entscheidender Bedeutung sind, für Entwickler jedoch häufig mühsam sind. CIL und CLR bilden zusammen die .NET Common Language Infrastructure (CLI, und ja, wir wissen, dass all diese Abkürzungen ähnlich und verwirrend sind).

All dies sollte jedem bekannt vorkommen, der mit der Java-Plattform gearbeitet hat, da es demselben grundlegenden Paradigma folgt: Die großen verfügbaren Klassenbibliotheken, der zwischengeschaltete Bytecode und die plattformspezifische Laufzeit, die die Speicherverwaltung automatisiert, sind Merkmale beider Angebote. .NET wurde Ende der 90er Jahre in der ersten Blütezeit von Java entwickelt und war ursprünglich als Konkurrent der Java Enterprise Edition-Plattform positioniert. Die Java-Sprache und C #, die erste und bekannteste .NET-Sprache, sind beide von C abgeleitet und semantisch ähnlich.

Was sind die .NET-Programmiersprachen?

C #, das beim Start von .NET im Jahr 2000 mit großer Begeisterung angekündigt wurde, ist die bekannteste und am weitesten verbreitete .NET-Programmiersprache. Es wurde intern von Microsoft im Rahmen der .NET-Initiative entwickelt, und die meisten Klassen in der .NET-Standardbibliothek sind in C # geschrieben. Die Sprache ist objektorientiert und so ähnlich wie C, dass C-, C ++ -, Java- und JavaScript-Entwickler schnell lernen und verwenden können.

Microsoft stellt derzeit auch zwei andere Programmiersprachen in den Vordergrund, mit denen für .NET Framework geschrieben werden kann. Eine davon ist F #, eine funktionale Programmiersprache, die Teil der ML-Sprachfamilie ist und letztendlich Wurzeln in LISP hat. Das andere ist Visual Basic, Microsofts ehrwürdige, leicht zu erlernende Programmiersprache für die Entwicklung von Client-Server-Anwendungen. Dies ist jedoch nur die Spitze des Eisbergs: Da .NET aus offenen Standards besteht, kann jeder eine Sprache schreiben, die in CIL-Bytecode kompiliert und von der CLR ausgeführt werden kann. Wikipedia hat eine Liste von mehr als 20 derzeit gepflegten CLI-Sprachprojekten. Fast alle von ihnen repräsentieren .NET-Ports vorhandener Sprachen, von Pascal über JavaScript bis hin zu COBOL.

Die Tatsache, dass diese Sprachenvielfalt innerhalb von .NET Framework koexistieren kann, ist eine der Stärken der Plattform. Da der gesamte Code in CIL-Bytecode kompiliert wird, ist es .NET egal, in welcher Sprache Sie ihn schreiben. Sie können eine Sprache auswählen, die auf Ihren eigenen Vorlieben, den unterschiedlichen Stärken und Schwächen jeder Sprache oder den unterschiedlichen Aspekten von .NET Framework basiert, auf die Sie in jeder Sprache zugreifen können (hier gibt es einige Variationen). Wie bereits erwähnt, wurde der größte Teil der Standardbibliothek in C # geschrieben. Dies hindert Sie jedoch nicht daran, über Code, der in anderen CLI-Sprachen geschrieben wurde, auf diese Klassen zuzugreifen. In der Tat können in verschiedenen CLI-Sprachen geschriebene Komponenten in einer .NET-Anwendung frei zusammenarbeiten.

.NET Framework im Vergleich zu .NET Core (und darüber hinaus) 

Sie werden feststellen, dass wir in diesem Artikel ".NET Framework" verwendet haben, um auf die Plattform im Allgemeinen zu verweisen. Genau genommen ist das nicht richtig: Microsoft verwendet diesen Ausdruck, um auf die langjährige Implementierung von .NET Standard zu verweisen, die sich ausschließlich auf Windows konzentriert. In der Vergangenheit gab es andere Implementierungen von .NET. Eine der bekanntesten ist Mono, eine Open-Source-Implementierung, die erstmals im Jahr 2004 veröffentlicht wurde und die Ausführung von .NET-Anwendungen unter Linux ermöglichte. (Die Veröffentlichung gab Anlass zu einigen Kontroversen, da in dieser Zeit zwischen Microsoft und der Open-Source-Community noch ziemlich viel Blut herrschte.) Mono bildet nun die Basis der Xamarin-Plattform, die es ermöglicht, .NET zu erstellen Anwendungen für iOS, Android und MacOS sowie Linux. Xamarin begann sein Leben als Idee der Gründer von Mono.Das Unternehmen, das sie zur Unterstützung des Projekts gegründet hatten, wurde letztendlich von Microsoft übernommen.

Die dritte wichtige .NET-Implementierung von Microsoft ist .NET Core, eine plattformübergreifende Implementierung von .NET Standard, die 2016 als Open Source veröffentlicht wurde. .NET Core wurde von Grund auf neu erstellt und entfernte einen Teil der angesammelten Cruft in .NET Framework fehlte jedoch auch der gesamte Funktionsumfang. Es ist verständlicherweise etwas verwirrend, mehrere Versionen des .NET-Standards von Microsoft zu haben. Der Kolumnist Simon Bisson setzte sich 2017 mit der Frage auseinander, welche Implementierung in welchen Kontexten eingesetzt werden soll.

Aber das wird sich in nicht allzu ferner Zukunft ändern. Im November 2020 beabsichtigt Microsoft, die drei .NET-Implementierungen als .NET 5 zu vereinheitlichen. .NET 5 wird im Wesentlichen die nächste Generation von .NET Core sein, in die viele Komponenten aus .NET Framework und Xamarin integriert sind. Einige .NET Framework-APIs werden jedoch nicht auf .NET 5 umsteigen. Der Schritt zielt darauf ab, die Dinge für Entwickler zu vereinfachen und die eigenen Bemühungen von Microsoft zu konzentrieren.

Welches .NET Framework habe ich?

Zum jetzigen Zeitpunkt ist das jedoch mehr als ein Jahr frei. Die aktuellste .NET Framework-Version ist 4.8; Die aktuelle Version von .NET Core ist 3.0. Microsoft hat eine Seite mit Anweisungen, wie Sie erfahren können, welche Version von .NET Framework derzeit auf Ihrem Computer installiert ist.

Wofür wird .NET verwendet? 

All das gibt Ihnen viel darüber, was und wie; Aber was Sie sich vielleicht noch fragen, ist warum. Warum .NET Framework verwenden? Der Altexsoft-Blog enthält eine gute Aufschlüsselung der Vor- und Nachteile von .NET. Positiv zu vermerken ist, dass .NET ein objektorientiertes Programmiermodell mit einem zuverlässigen und einfachen Caching-System und einer ausgereiften IDE bietet und eine flexible Bereitstellung und einfache Wartung ermöglicht. Darüber hinaus ermöglicht die plattformübergreifende Natur von .NET die Portierung von Code auf viele verschiedene Arten von Endpunkten. .NET ist am besten geeignet, wenn Sie plattformübergreifende Apps auf Infrastrukturen im Unternehmensmaßstab erstellen, die Sie skalieren möchten, ohne sie komplett umrüsten zu müssen.

Laden Sie das .NET Framework herunter

Bereit, mit .NET zu experimentieren? Laden Sie .NET Framework (für Windows) oder .NET Core (für Windows, Linux oder MacOS) von der Microsoft-Website herunter. Docker-Bilder sind ebenfalls verfügbar. Sie finden Xamarin für iOS und Android auf GitHub. Viel Spaß beim Erkunden!