Server-Check mit C#.NET

Projektstart: Visual Studio anwerfen

Zunächst benötigen Sie ein neues C#-Projekt vom Typ "Windows Application", das Sie einfach mit Visual Studio anlegen.

Die Informationen über die einzelnen Server sind in einer eigenen Klasse mit dem Namen Server abgelegt. Da diese Informationen auf der Festplatte gespeichert werden sollen, muss diese Klasse als Serializable markiert werden:

[Serializable]
public class Server
{
}

Die einzelnen Server-Objekte werden später zur Laufzeit mit einer eigenen Dialogbox erzeugt. Dazu braucht es einen Konstruktor, dem man den Hostname und eine Information über die Art des Servers übergeben kann.

public Server( string name, bool isPhp)
{
this.servername = name;
this.status = false;
this.checktime = DateTime.Now;
this.isPhp = isPhp;
this.error = "Kein Fehler";
}

Der Konstruktor speichert diese Angaben in privaten Variablen der Klasse und initialisiert bei dieser Gelegenheit noch alle anderen. Dabei gibt es die Variable status, die den Status des Servers enthält. Nimmt die Variable den Wert false an, dann ist mit dem Server etwas nicht in Ordnung, bei true gibt es keine Probleme.

Ferner legen wir in der Variable checktime die Uhrzeit des letzten Server-Tests ab. Diese wird später im Userinterface angezeigt. Schließlich gibt es noch die Variable error, die den Fehlertext enthält, wenn der Status des Servers nicht in Ordnung ist.

Damit Sie die einzelnen Informationen später aus einem Server-Objekt ermitteln können, statten Sie alle privaten Variablen noch mit einem Property-Accessor aus. Dabei reichen in diesem Fall get-Accessors aus, denn alle Zustände des Server-Objekts werden durch Methoden des Objekts selbst und nicht von außen gesetzt.

Der Property-Accessor für den Server-Status hat also das folgende Aussehen:

/// <summary>
/// Erfragt ob der Server-Status ok ist.
/// </summary>
public bool Status
{
get
{
return status;
}
}

Auch für error, CheckTime und den Server-Namen definieren Sie noch get-Accessors. Diese haben aber den gleichen Aufbau wie der Accessor für die Statuseigenschaft und werden daher hier nicht weiter besprochen.