How To: Erstellen und Steuern von Windows Services

In der jungen Geschichte dieses Blogs haben wir schon jetzt eine Premiere: den ersten Wunschartikel. Ich wurde darum gebeten zu schildern wie man Windows Services programmieren und vor allem wie man mit diesen aus einer Applikation heraus kommunizieren kann. Als Beispiel dafür werden wir im ersten Teil einen Dienst schreiben der nichts anderes macht als uns die aktuelle Zeit zu ermitteln. Im zweiten Teil geht es dann um die Kommunikation mit einer Applikation und den dort notwendigen Datenaustausch. Der dritte Teil beschäftigt sich dann mit den gleichen Themen aber unter dem Gesichtspunkt der WCF (Windows Communication Foundation). Was sind Windows Services und wie erstellt man sie Bevor wir loslegen eine kurze Erläuterung was Dienste/Services eigentlich sind. Ein Dienst ist ein spezielles Programm ohne Benutzerschnittstelle welches dauerhaft im Hintergrund des Betriebssystems läuft. Dies bedeutet: Der Service wird gestartet noch bevor der

Weiterlesen »

Operatorüberladung und die Krux mit null

Am Wochenende konnte ich endlich wieder ein wenig an meinem privaten Projekt arbeiten und bin voll in eine Anfängerfalle gestolpert. Ich arbeite an einer Art Lottozahlengenerator und habe (natürlich) die Lottozahlen in eine eigene Klasse gepackt um Wertebereichsüberprüfung (Lottozahlen können nur zwischen 0 und 50 liegen) o.ä. direkt im Model abzufrühstücken (SoC) wobei die dahinter liegende Architektur natürlich etwas komplexer ist. Nun bringt es eine solche kleinteilige Datenhaltungsklasse mit sich, dass verschiedene Basisfunktionalitäten erneut auszuprogrammieren sind. Wie eben die Vergleichsoperatoren, nur hatte ich dort nicht an das böse Null und die Rekursionshexe gedacht.

Weiterlesen »

How To: Datensignierung mit .NET

Nach dem ich über Verschlüsselung und Hashing geschrieben habe, kommen wir zum Signieren von Daten. Dies dient vor allem dazu zu überprüfen ob Daten verändert wurden und ist zum Beispiel beim E-Mailverkehr notwendig. Da dort auf dem Weg vom Sender zum Empfänger Daten leicht verändert werden oder sich jemand anderes für einen mir bekannten Adressaten ausgeben könnte.

Weiterlesen »

Hashingalgorithmen im .NET Framework

Häsch? Ich möchte nicht erst lang erläutern worum es sich bei Hashing handelt. Lapidar ausgedrückt wird beim Hashing eine mehr oder minder große Eingabemenge in einen Wert umgewandelt der nach Möglichkeit die Eingabemenge eindeutig repräsentiert. Weißt dieser Hashwert Mehrdeutigkeiten auf, besitzt er Kollisionen. Je weniger Kollisionen auftreten desto höher die Qualität einer Hashfunktion, weshalb kollisionsfreie Algorithmen angestrebt werden.

Weiterlesen »

Verschlüsselung mit .NET

Mein erster sinnvoller Post beschäftigt sich mit den Verschlüsselungsmechanismen die .NET anbietet und beziehe dabei einen Großteil meiner Informationen aus dem Self-Paced Training Kit für die 70-536 Prüfung. Ich werde bei den Erläuterungen höchstens am Rande auf die dahinterliegende Mathematik eingehen, viel wichtiger erscheint mir die Klassenstruktur sowie deren Verwendung. Wer mehr über die Hintergründe wissen möchte ist mit Wikipedia oder mit einem echten Lehrbuch zum Thema weit besser bedient. Für die im Framework vorhandenen und nicht erläuterten Verfahren bemühe man bitte die MSDN. Weiterhin ist zu sagen, dass hier nur die Standardimplementierungen behandelt werden. Für die Cryptography API Next Generation (CNG) die seit Windows Vista zur Verfügung steht wird es ein eigenes Blogpost geben.

Weiterlesen »