Arbeiten mit .NET: Allgemeines/ Einführung/ Wozu eigentlich
.NET hilft dem Programmierer Das .NET Framework stellt dem Programmierer eine riesige Klassenbibliothek zur Verfügung, sodass ihm viele Standardaufgaben abgenommen werden und er sich damit die Arbeit wesentlich erleichtert. Außerdem kann man mit .NET unabhängig von Programmiersprachen oder Betriebssystemen arbeiten. |
Natürlich gibt es auch bei .NET Vor- und Nachteile. Die folgenden Hinweise sollen Sie davon überzeugen, dass die Vorteile in der Überzahl sind.
Die Klassenbibliothek
[Bearbeiten]Die sehr umfangreiche Klassenbibliothek von .NET verringert den Aufwand der Programmierung drastisch, sodass wir schneller und effektiver Software entwickeln können. Wir können uns auf die wirklich wichtigen Dinge konzentrieren und überlassen .NET den zeitraubenden Aufwand für Arbeiten, die sich ständig wiederholen, die Grundlagen der eigentlichen Arbeit schaffen, aber für die konkrete Arbeit eher nebensächlich sind. Eine unglaubliche Vielfalt an Funktionalität stellt das .NET Framework allen Programmierern zur Verfügung.
Die Klassen, die die Funktionen bereitstellen, sind in Namensräume gegliedert (etwa 11.400 Klassen in etwa 300 Namensräumen). So wird die Klassenbibliothek übersichtlich gehalten. Dies erleichtert den Umgang mit der Bibliothek.
Mit ihr lassen sich fast alle erdenklichen Aufgaben erledigen, beispielsweise:
- Text mit vielfacher Formatierung ausgeben
- Dateien lesen und schreiben
- mathematische Berechnungen wie Zufallszahlen, Sinus eines Winkels oder e-Funktionen
- Fenster mit Elementen (z.B. Buttons, Symbolleisten, etc.) anzeigen, auf den Bildschirm zeichnen oder auf Mausbewegungen reagieren
- mit Datenbanken zusammenarbeiten
Man könnte die Liste seitenweise fortsetzen. Auch gibt es keinen wesentlichen Unterschied mehr zwischen der Windows- und der Webentwicklung: Für beide kann man mit den gleichen Sprachen fast den gleichen Programmcode schreiben. Man muss lediglich einige wenige spezifische Dinge beachten; aber eine Umstellung auf eine andere Sprache – wie etwa C++ für Windows- und PHP für Webanwendungen – ist nicht mehr erforderlich.
Plattformunabhängigkeit
[Bearbeiten]Bei .NET wird zuerst der für Menschen gut lesbare Quellcode kompiliert (übersetzt) in einen Zwischencode. Dieser Code wird erst bei der Programmausführung konkret in für Maschinen „lesbare“ Sprache übersetzt. Diese Übersetzung durch den "Just-in-Time-Compiler" (JIT) ist aber nur einmal nötig.
- Viele Programmiersprachen werden gleich komplett übersetzt und sparen sich den Zwischenschritt. Der nach der Endübersetzung entstandene Code in Maschinensprache funktioniert i.d.R. nur auf einem System, d.h. er ist nicht portabel.
Weil ein Programm in .NET nicht gleich in Maschinensprache übersetzt wird, sondern zuerst eben in den portablen Zwischencode, ist es lauffähig auf allen Windows-Versionen, egal ob Windows XP oder 7, egal ob AMD- oder Intel-Prozessor. Der Zwischencode kann auch auf anderen Betriebssystemen laufen, vorausgesetzt, es gibt einen JIT-Compiler dafür.
Verwalteter Code
[Bearbeiten]Es gibt einen weiteren Vorteil für den Zwischenschritt. Der Code wird überwacht von der Laufzeitumgebung; so können Fehler erkannt werden, bevor sie Unheil anrichten.
Außerdem werden nicht mehr benötigte Daten automatisch vom GC (Garbage Collector, zu Deutsch: Müllabfuhr) „entsorgt“. Dinge, die man nicht braucht, kann man wegwerfen, da sie ja eh nur sinnlos rumliegen und Platz beanspruchen. Schön ist es natürlich, wenn man sich nicht darum zu kümmern braucht, dass die Dinge entsorgt werden. Die Zeit, in der ein Programmierer ständig selbst im Arbeitsspeicher aufräumen musste, ist mit .NET vorbei.
Sprachunabhängigkeit
[Bearbeiten]Ein weiterer Vorteil von .NET ist die Sprachunabhängigkeit. Sie können und dürfen mit .NET in jeder Programmiersprache entwickeln, sofern sich jemand darum gekümmert hat, sie für .NET zu implementieren. Es ist lediglich nötig, dass es für eine Sprache einen Compiler gibt, der den .NET-Zwischencode erzeugt.
Der große Vorteil liegt darin, dass ein Umsteiger von Visual Basic weiterhin mit VB.NET arbeiten kann; ein Umsteiger von C++ arbeitet künftig mit C++/CLI; ein Umsteiger von JScript befasst sich mit JScript.NET usw. Vorbei ist die Zeit, als zusätzliche Hilfen für Programmierer wie eine Klassenbibliothek eine neue Programmiersprache und damit vollständige Einarbeitung erforderten.
Direkt von Microsoft kommen verschiedene Sprachen: VB.NET, C#, C++/CLI, JScript.NET und andere. Doch jeder kann sich ransetzen und seine Wunschprogrammiersprache für .NET lauffähig machen. So wurde für Delphi von einer externen Firma mit Oxygene (ursprünglich Chrome genannt) eine .NET-Version entwickelt, die als Delphi.Prism jetzt „offiziell“ das Delphi für .NET darstellt. Diese Unabhängigkeit geht sogar soweit, dass Programme, die in Sprache X geschrieben werden, Klassenbibliotheken benutzen können, die in Sprache Y geschrieben sind. Dadurch können .NET-Entwickler zusammenarbeiten – und jeder verwendet die Programmiersprache, die ihm ans Herz gewachsen ist.
Geschwindigkeit
[Bearbeiten]Es gibt einen weiteren Vorteil, speziell gegenüber Konkurrenten Java, der Ähnliches bietet: Obwohl beide diesselbe Technologie mit Zwischencode und den damit verbundenen Vorteilen vertreten, ist .NET trotzdem schneller. Weil Java sich jeder Plattform anpassen muss, wird das Programm langsamer als ein in .NET geschriebenes Windows-Programm, welches direkt auf die Win32-API zugreifen kann; Vergleichbares gilt auf anderen Systemen.
Zusammenfassung
[Bearbeiten]Insgesamt bietet .NET folgende Vorteile:
- Klassenbibliothek
Standardaufgaben sind bereits gelöst; der Programmierer kann sofort die Lösungen nutzen.
- Plattformunabhängigkeit
.NET ist unter allen Windows-Versionen ab Windows 98 lauffähig. Mit Mono existiert ein Projekt zur Portierung auf Mac und Linux sowie iOS und Android (letztere kostenpflichtig).
- Verwaltung
Eine .NET-Anwendung läuft in einer Laufzeitumgebung, die das Programm überwacht, Fehler vorbeugend erkennt und nicht mehr benötigten Speicher automatisch freigibt.
- Sprachunabhängigkeit
Das Programmieren mit .NET ist in jeder Programmiersprache möglich, für die eine Anbindung existiert. Programmcode einer beliebigen Programmiersprache kann Programmcode einer anderen aufrufen.
Siehe auch
[Bearbeiten]Unter Liste der .NET-Sprachen finden Sie viele Implementierungen von Programmiersprachen für .NET.