Am Anfang war Server-Eye nur eine Sammlung von VBS Skripten. Heute ist Server-Eye ein komplexes System das in vielen verschiedenen Programmiersprachen umgesetzt ist.

Ein großer Teil ist in C# geschrieben, einer Programmiersprache aus dem Microsoft .NET Framework. Aktuell basieren die auf dem Client installierten Dienste auf dieser Sprache. Das .NET Framework ist wie jede andere moderne Technologie immer im Wandel. Server-Eye nutzt aktuell die Version 3.5 des Frameworks. Diese Version wurde im November 2007 veröffentlicht und wird als „.NET 3.5 SP1“ in allen aktuellen Versionen von Windows noch unterstützt. (Windows Vista SP2, Windows 7 SP1, Windows Server 2008 SP2, Windows Server 2008 R2 SP1, Windows 8.1 Update, Windows Server 2012, Windows Server 2012 R2, Windows 10 und Windows Server 2016)

Parallel zu der Version 3.5 existiert auch eine neue Variante des .NET Frameworks ab der Version 4.0. Diese ist allerdings nicht direkt kompatibel zur Version 3.5.

Aufbau

Das .NET Framework besteht im groben aus zwei Teilen, einer Sammlung von APIs, der .NET Framework Class Library, und einem Interpreter der den eigentlichen Programmcode ausführt. Die APIs sind eine Sammlung von Funktionen die es einem erlauben z.B. eine Datei zu lesen oder in eine Datenbank zu schreiben. Die APIs sind in Bibliotheken zusammengefasst und liegen als .DLL Dateien vor. Der Interpreter kann jetzt diese Bibliotheken und die eigentlichen Programme (.EXE Dateien) ausführen.

Der Interpreter nennt sich „Common Language Runtime“ oder kurz CLR. Diese CLR stellt die Basis eines jeden .NET Frameworks da. Im .NET Framework 3.5 hat die CLR die Version 2.0 und damit die gleiche Version wie auch schon im .NET Framework 2.0 und 3.0. Diese Framework Versionen unterscheiden sich also nur durch neuen Funktionen in Form von DLLs. Im Prinzip kann ein Programm aus dem .NET Framework 3.5 auch auf einem Rechner laufen der nur das Framework 2.0 installiert hat, vorausgesetzt es werden keine Bibliotheken benutzt die es im .NET Framework 2.0 noch nicht gab.

Das .NET Framework an Version 4 setzt auf eine neue CLR, diese hat jetzt die Version 4 (eine Version 3 der CLR gab es nie).

Dieser Wechsel der CLR zwingt uns jetzt auch mit Server-Eye auf eine neuere Version des .NET Frameworks zu setzen. Neben den unzähligen Verbesserungen die durch die APIs des Frameworks dazugekommen sind, gibt es einige Änderungen der CLR die notwendig waren um für die Zukunft gewappnet zu sein. Die CLR ist unter Anderem verantwortlich für die Sicherheit, das Speichermanagement und die Threadverwaltung.

Eine bessere Threadverwaltung erlaubt es uns z.B. ein System mit mehreren CPU Kernen (also eigentlich jedes System) besser auszulasten und Aufgaben schneller und dadurch mit weniger Impact auf andere Prozesse auszuführen.

Wir haben uns entschieden als Ziel das .NET Framework 4.6 zu unterstützen. Da bedeutet eine CLR in der Version 4 und eine Class Library mindestens in der Version 4.6. Diese Version ist auch noch für ältere System wie Windows Server 2008 verfügbar.

Da heißt aber auch, dass ich ein Framework 4.7 auf meinem System installieren kann, auch dieses enthält die CLR in Version 4. Die Class Library 4.7 ist abwärtskompatibel zur Version 4.6.

Es sollte also immer die neuste 4.x Version des .NET Frameworks installiert werden.

Haben Sie noch den Überblick über alle Versionsnummern die ich bis jetzt erwähnt habe? Keine Angst auch Microsoft findet das inzwischen zu kompliziert und hat deshalb neue Versionsnummern erfunden. Ja, das haben Sie richtig gelesen um alles einfacher zu machen gibt es jetzt noch einen neuen Satz Versionsnummern.

Die Zukunft

Mit der Powershell hat Microsoft es vorgemacht. Die Powershell ist auch auf macOS und Linux-Systemen verfügbar. Das war möglich, weil die CLR und ein Teil der Class Library auf diese Systeme portiert wurden. Microsoft nennt das .NET Core. Und die aktuelle Versionsnummer davon ist 2.0.

Um jetzt ein Verhältnis zwischen .NET Core und dem .NET Framework herzustellen gibt den .NET Standard. Die höchste Version von des .NET Standards ist 1.6.

Ein Produkt, z.B. Server-Eye, dass sich an diesen .NET Standard 1.6 hält kann also auch unter .NET Core auf einem Linux Server ausgeführt werden.

Aktuell ist Server-Eye noch nicht mit .NET Standard kompatibel. Mit diesem Update legen wir aber den Grundstein dafür.

Und jetzt?

Erstmal müssen Sie gar nichts tun. Wir werden vor dem eigentlichen Update alle Kunden informieren deren System nicht die benötigte Version vom .NET Framework installiert haben. Während des Updates werden wir über die vorhandenen Windowsfunktionen eine Installation oder ein Update des .NET Frameworks anzustoßen. Erst wenn die Korrekte .NET Version installiert ist wird Server-Eye umgestellt.

Wir werden allen betroffenen Kunden vorher die Möglichkeit geben sich für die automatische Framework Installation abzumelden. Auf diesen Systemen müssen Sie dann manuell ein Update durchführen. Sobald das .NET Framework eingespielt wurde, werden diese Systeme wieder für das Server-Eye Update freigegeben.

Alle Systeme auf denen wir das automatische Update nicht einspielen konnten, werden wir Ihnen melden. Auch hier ist dann eine manuelle Installation notwendig.

Auf den allermeisten Systemen ist allerdings bereits eine passende .NET Version installiert. Auf diesen Systemen wird ein ganz normales Server-Eye Update durchgeführt.