Freitag, 26. August 2011

Neuigkeiten von der Entwicklerfront

Aktuell arbeite ich an einem Server für UDP/TCP für ein Projekt an dem ich beruflich arbeite.
Leider scheiterte ich anfangs an der asynchronen Verabrietung mit den Async Methoden der Socket Klasse ab .Net 4.0

Damit dies trotzdem sauber läuft, habe ich erst einmal alles in den ThreadPool verlagert, was wirklich sehr einfach und hilfreich ist.
Der Server soll dabei bestimmte Datenformate empfangen und verarbeiten.
Die Entwicklung macht Spaß und kann dann der Erfahrungen, die ich wirklich zufällig vor dem Projekt privat gemacht hattem auch besser damit arbeiten.

Heute steht ein Testlauf an um zu schauen ob die Verarbeitung von zwei noch ungetesten Formaten klappt.
Wäre super wenn dies ohne Probleme laufen würde.

Da wir die UDP/TCP Server Komponente noch auslagern wollen, damit diese mit dynamischen Mitteln später auch in anderen Projekten eingebunden werden kann, nutze ich auch delegates um die Verarbeitung zu ermöglichen.

Donnerstag, 4. August 2011

C# - Pfad zur Anwendung ermitteln

Ich habe immer wieder das Problem, dass ich in dem Ordner in der meine Anwendung liegt weiter Ordner/Dateien verarbeiten oder ablegen muss.

Zum ermitteln des Pfad reicht eine Zeile.

Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
Somit erhält man den Vollständigen Pfad zum Anwendungsordner

C# - PID für aktuellen Prozess ermitteln

Aktuell baue ich einen kleine UDP Server.
Da ein laufender Server per PID Datei angezeigt werden soll, muss ich diese per C# ermitteln.

Die Lösung ist gerade mal eine Zeile lang.

System.Diagnostics.Process.GetCurrentProcess().Id;
Somit bekommt man die Id als int Wert.
Diese kann man dann entsprechend in einer .pid Datei speichern um einen aktiven Server zu markieren.