C# DateTime.Ticks in Unix-Timestamp und andere Formate umrechnen

C# DateTime.Ticks ConverterMit den DateTime-Funktionen des .NET-Frameworks lässt sich so einiges anstellen. Der Umgang damit gestaltet sich, meiner Meinung nach, sehr angenehm. Einzige Voraussetzung: Man befindet sich in einer reinen .NET-Umgebung. Kommen andere Systeme ins Spiel, so geht die Rechnerei los. Aber woran liegt es, dass man zum Beispiel DateTime.Ticks nicht mit der PHP-Funktion mktime() vergleichen kann?
Ruft man den “Timestamp” eines DateTime-Objekts (DateTime.Ticks) ab, so bekommt man die Anzahl der Ticks seit dem 01.01.0001 00:00Uhr zurück. Ein Tick wiederum ist 100 Nanosekunden lang.
Ein Unix-Timestamp, so wie ihn mktime() zum Beispiel produziert, gibt im Gegenteil zu DateTime.Ticks die Anzahl der Sekunden seit dem 01.01.1970 zurück.
Ein direkter Vergleich ist somit nicht möglich. Wie umgerechnet werden muss, möchte ich euch heute anhand von ein paar kurzen Snippets zeigen.
Unix-Timestamp -> DateTime.Ticks

private static DateTime TimeFromUnixTimestamp(int unixTimestamp)
{
[…]

Einfache XML-Serialisierung in C#

C# XML SerialisierungHeute möchte ich euch zeigen, wie man eine XML-Serialisierung in C# durchführen kann. Serialisierung selbst, bedeutet, dass man ein Objekt in eine andere, transportable Form umwandelt. Mittels XML-Serialisierung ist es uns zum Beispiel nötig, ein Objekt einer Klasse in Form einer XML-Datei abzuspeichern und auch wieder herzustellen.
Das kann Sinn machen, wenn man ein Objekt in seinem Zustand nach dem Schließen und erneuten Öffnen einer Anwendung wiederherstellen oder wenn man ein Objekt beispielsweise per HTTP übertragen möchte.
Für unser Beispiel habe ich folgende Klasse Blog erstellt:

public class Blog
{
public string User { get; set; }
public string Pass { get; set; }
public string Subdomain { get; set; }
public string BaseUrl { get; set; }
}

Die […]

Höhe einer TextBox in C# verändern

Ich gebe zu, der Titel klingt geradezu trivial. Genauer betrachtet ist es aber gar nicht so einfach die Größe eines TextBox Controls in C# zu ändern, denn eine TextBox hat die Autosize-Eigenschaft nicht. Bei anderen Controls kann man die Autosize-Eigenschaft auf false setzen und dann die Höhe (Height-Property) verändern. Bei der TextBox geht dies so leider nicht.
Wie es doch geht, möchte ich euch nachfolgend zeigen. Der Trick ist folgender:

textBoxTest.Multiline = true;
textBoxTest.MinimumSize = new Size(150, 24);
textBoxTest.Size = new Size(150, 24);
textBoxTest.Multiline = false;

Zuerst muss man die Multiline-Eigenschaft auf true setzen. Danach kann man nach Lust und Laune die MinimumSize-, sowie die Size-Property anpassen, um die Größe der Textbox zu verändern. Wenn man fertig ist, setzt man die Multiline-Eigenschaft wieder auf false. Die TextBox behält die eben gesetzte Größe dennoch. So einfach ist das.
Wer sich jetzt noch fragt, wofür man das braucht, wenn die TextBox sich doch selbst in ihrer Größe anpasst, der sollte […]

Benutzer im Active Directory suchen in C# – der einfache Weg

Vorgestern schrieb ich noch darüber, wie man die Active Directory Suchfunktion in Windows 7 erreicht. Heute soll es darum gehen, wie man in C# komfortabel das Active Directory nach Benutzern durchsuchen kann. Der Schwerpunkt liegt hierbei auf komfortabel, denn Artikel über die Thematik generell gibt es schon einige im Netz. Die meisten nutzen dafür jedoch ausschließlich die Methoden rund um System.DirectoryServices.ActiveDirectory und den DirectorySearcher. Doch seit .NET 3.5 geht es auch mit wesentlich weniger und vorallem, wie ich finde, verständlicherem Quelltext.
Doch kommen wir nun zur Sache. In dem folgenden Beispiel nutze ich hauptsächlich Methoden aus dem System.DirectoryServices.AccountManagement Namespace. Und so geht’s:

//Einen Kontext zur entsprechenden Windows Domäne erstellen
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain,
[…]

Kostenlose .NET-Decompiler – die .NET Reflector Alternativen

netreflectorHeute möchte ich euch kurz ein paar Alternativen zu Redgates .NET Reflector aufzeigen. Früher habe ich diesen zwar des Öfteren benutzt, doch seit dem dieser Geld kostet, und es gute und brauchbare kostenlose Alternativen, kommt dieser nicht mehr zwischen meine Finger.
Der nachfolgende Einschub ist für diejenigen gedacht, die mit dem Begriff .NET Reflector/Decompiler jetzt gerade gar nichts anfangen können. Die anderen lesen bitte einfach nach dem Einschub weiter.
Was ist ein (.NET-)Decompiler?
Decompiler nennt man Computerprogramme, die es ermöglichen aus Maschinencode/Objektbytecode wieder lesbaren Quelltext (in einer Hochsprache) zu zaubern. Sie stellen also das Gegenstück zu einem Compiler dar.
Praktisch kann man sich das wie folgt vorstellen. Der Programmierer schreibt den Quellcode für ein Programm. Diesen kompiliert er dann mit einem Compiler. Das Endergebnis nach dem kompilieren könnte dann zum Beispiel eine ausführbare .exe-Datei sein.
Nun kommen […]