Die Geschichte von .NET
Es war das Jahr 2000 als Microsoft zum ersten Mal .NET der Öffentlichkeit Präsentierte. Allerdings war zum damaligen Zeitpunkt die Skepsis sehr groß, da eigentlich niemand genau erklären konnte wobei es sich um .NET handelt. Das interessanteste dabei war sicherlich das .NET Framework was eine enorm umfangreiche Sammlung an Klassen repräsentiert, welches dem Programmierer das Leben erleichter sollte. Es sollte eine neue Plattform zur Entwicklung moderner und zukunftssicherer Applikationen sein, die alle anderen bestehenden Technologie ersetzen sollte.
Dies war auch die Geburtsstunde der Erfolgreichen Programmiersprache C# (C-Sharp) welche extra für die .NET Technologie Entwickelt wurde, und welche das Framework optimal ausnutzen sollte. Zum benannten Zeitpunkt (auf der PDC im Jahr 2000) war das .NET Framework bereits eine sehr ausgereifte und große Anzahl an Klassen, was darauf schließen lässt das die Entwicklung bereits einige Jahre in Arbeit war. Tatsächlich begann Microsoft bereits im Jahr 1996 an den Arbeiten von .NET und C#.
Für die Entwicklung wurde ein bekannter Mann engagiert (Anders Hejlsberg) welcher bereits bei Borland an Delphi und dessen Bibliotheken gearbeitet hatte. Aus diesem Grund erinnern auch einige Dinge an Borlands Delphi (allerdings mit dem unterschied das Delphi die konsequente Objektorientierung nie richtig gelungen ist).
Das Ziel war es eine Plattform zu schaffen welche:
- Zukunftssicher
- Erweiterbar
- Die Bekannten und bestehenden Probleme beseitigt.
Die Gründe für die Einführung von .NET
Vor der Ära von .NET bestand die Windows Programmierung im Großteil aus dem COM (Component Object Model) und dem Win32-API (Application Programming Interface). Das Problem bei diesen Technologien besteht darin, das sie nicht in der Lage sind zu wachsen und zu expandieren. Die Windows API besteht aus einer nicht überschaubaren Anzahl an in der Sprache „C“ Geschriebenen Funktionen.
Das COM (Component Object Model) wurde von Microsoft Entwickelt und war gedacht für die Komponentenorientierte Programmierung. Es war zwar möglich diese unabhängig von der Sprache zu verwenden, jedoch brachten sie auch Probleme mit sich auf die man gerne verzichten wollte.
Die Vorteile von .NET
- Automatische Speicherverwaltung (Garbage Collector)
Bei „C(++)“ Beispielsweise musste bzw. muss man selbst dafür sorgen das nicht mehr verwendeter Speicher freigegeben wird, was unter Umständen oft vergessen wird, was auch die Performance des Systems unnötig belastet.
In .NET wird nicht mehr verwendeter Speicher automatisch von dem Garbage Collector freigegeben. Dies erleichtert uns als Programmierer das Leben natürlich enorm und sorgt für einen sauberen und angemessenen Ablauf des Programms.
- Alle .NET Sprachen verwenden dieselben Klassen aus dem Framework
Alle Sprachen die auf .NET aufbauen verwenden alle die gleichen Klassen, weshalb es letztendlich egal ist in welcher .NET Sprache man Entwickelt. Damit ist eine Kommunikation der Programme wie z.B dll,s Problemlos möglich, ohne dass es zu Komplikationen kommt.
- Die Datentypen sind für alle Sprachen gleich
Viele Probleme entstanden auch dadurch dass viele Sprachen unterschiedlich viel Speicher für bestimmte Datentypen reservierten. In vb6 kennt man das Problem, um zum Beispiel eine „C“ API zu verwenden muss man erstmals einen kompatiblen Datentypen kreieren.
.NET kennt dieses Problem nicht, da die Datentypen innerhalb des Frameworks definiert sind, und für alle .NET Sprachen gleich sind. Derartige Probleme gehören somit der Vergangenheit an.
- Das Ende der sogenannten „DLL-Hölle“
Diese zutreffende Beschreibung soll das Problem verdeutlichen welche unterschiedliche Dll-Versionen verursachten. Vor allem bei COM trat dieses Problem sehr häufig auf, nicht nur das sie Registriert werden musste, bei unterschiedlichen Versionen konnten Programme die auf neuere dll-Versionen aufbauten nicht mehr funktionieren.
Bei .NET hingegen ist das kein Problem mehr denn: es muss nicht nur nicht Registriert werden, sondern es können auch verschiedene Versionen einer Assembly auf dem System vorhanden sein, welche somit derartige Probleme nicht mehr Versursachen können.
- Das wichtige Thema Sicherheit
Bei .NET Kontrolliert das Framework selbst die Zugriffs-Rechte für das jeweilige Programm. Dabei bekommt das Programm nicht zwangsläufig die Rechte, welche der aktuellen Benutzer oder gar der Administrator besitzt.
Das Programm fordert die nötigen rechte an, und falls dies der Administrator verweigert, wird der besagte Code einfach nicht ausgeführt.
- Die Sprache ist Zweitrangig
Wie sicherlich bekannt, ist .NET eine Interpreter Sprache was so viel heißt wie das das Programm erst in einen Zwischencode, und dann zur Laufzeit in Nativen (Maschinencode) übersetzt wird. Diese „Zwischensprache“ kann von allen anderen .NET Sprachen verstanden werden, weshalb die Verwendung in unterschiedlichen Sprachen möglich ist.
Des Weiteren können zur Laufzeit Anpassungen für das zugrundeliegende System (Prozessor) sowie Optimierenden durchgeführt werden. Wichtig zu erwähnen ist, dass nicht das ganze Programm auf einmal sondern „nur in kleinen stücken“ übersetzt wird. Das hat den Vorteil dass kaum Geschwindigkeitverluste anfallen.
- Problemlos Erweiterbar
Da die Sprache komplett Objektorientiert (und daher modern ist) kann sie Problemlos erweitert werden, und kann expandieren.