Juli 5th, 2008
Schon seit etwas längerer Zeit über lege ich, wie ich meine Konzertfoto-Seite (www.punk-and-roll.de), die zur Zeit auf der 1.0.x Version basiert, auf die aktuelle Version 1.5 von Joomla portiere.
Da ich keinen alten Joomla 1.0x-Code auf der neuen Seite haben will, bin ich gezwungen, eine neue Galerie für die ca. 5800 Bilder zu finden. Meine Wahl ist auf die Phoca Gallery (www.phoca.cz) von Jan Pavelka gefallen. Die Galerie bietet eigentlich alles, was ich für meine Konzertfotos brauche. Das einzige, was mir fehlte, war ein Module, das mehr als nur ein Bild per Zufall anzeigen kann.
Nach kurzem Suchen im Forum der Phoca-Seite, kam ich zum Schluß, dass ich dieses Module wohl selbst schreiben muss.
Auf Basis des originalen Modules hier nun das erste Ergebnis:

Und hier ein paar neue Einstellungen im Backend:

Und downloaden kann man das ganze hier: Download
Über Anregungen zu dem Module würde ich mich sehr freuen.
März 3rd, 2008
Und wieder einmal musste ich “recht” lange suchen um eine vermeidlich einfache Problematik zu klären. Diesmal wollte ich per Button die Einträge einer WPF-ListBox aufwärts bzw. abwärts sortieren.
Hier das Formular:

Bei den Items der ListBox handelt es sich um eine ObservableCollection, die ich über die Eigenschaft ItemsSource an die ListBox gebunden habe.
Im Eventhandler der Buttons habe ich folgenden Code hinterlegt:
lbxProjects.Items.SortDescriptions.Clear();
lbxProjects.Items.SortDescriptions.Add(new SortDescription("ProjectName", ListSortDirection.Ascending));
lbxProjects.Items.SortDescriptions.Add(new SortDescription("Count", ListSortDirection.Ascending));
bzw.
lbxProjects.Items.SortDescriptions.Clear();
lbxProjects.Items.SortDescriptions.Add(new SortDescription("ProjectName", ListSortDirection.Descending));
lbxProjects.Items.SortDescriptions.Add(new SortDescription("Count", ListSortDirection.Descending));
Über die Eigenschaft “SortDescriptions” kann man sehr komfortabel festlegen, wie die Liste sortiert werden soll. In meinem Beispiel sortiere ich zuerst nach dem Projektnamen und dann nach der Anzahl, wodurch sich folgendes Bild ergibt:

Hier der Source für Visual Studio 2008: Download
März 1st, 2008
Bei einem meiner WPF-Projekte ergab sich die Problematik, das ich ein Enum an mehrere RadioButtons binden wollte. Nach recht langer Suche und einigen Versuchen habe ich einen Lösungsweg gefunden, den ich hier an einem kleinen Beispiel zeigen will. Den Source für den ValueConverter habe ich mir nicht ausgedacht. Beim googlen nach der Lösung habe ich durch Zufall diese Seite gefunden und den darauf befindlichen Source verwendet.
Ausgangspunkt ist einen kleine Klasse und ein Enum
public enum ProjectStatus
{
InVorbereitung,
InArbeit,
Abgeschlossen
}
public class Project
{
public string ProjectName { get; set; }
public ProjectStatus Status { get; set; }
}
Read the rest of this entry
Februar 29th, 2008
Schon seit längerem belächelte ich das Visual Studio von meinem Kollegen Tobi, das in seinem dunklen Gewand vor sich hinarbeitet. Ich konnte dem aber bisher nicht wirklich etwas abgewinnen… Vor ein paar Tagen habe ich dann auf dem Blog von Oliver Scheer mal wieder etwas zur “Dunklen Seite der Macht” gelesen… und habe mir gesagt OK. Schwarz auf Weiß den ganzen Tag ist schon recht anstrengend für die Augen… vielleicht ist das ja doch ganz nett. Gesagt getan… die dunklen Settings installiert und nach dem ersten Schock einfach mal ein wenig programmiert, um die neuen Farben auf mich wirken zu lassen.
Nun nach ein paar Tagen muss ich sagen, das ich mit der neuen Farbauswahl vollkommen zufrieden bin. Es ist bei weitem nicht so grell, wie der alte weiße Hintergrund. Ich habe noch an ein paar Farbwerten und Schriftarten gedreht. Zum Beispiel ist der Hintergrund nun nicht mehr schwarz, sondern in einem angenehmen grau.
Hiermal ein Blick auf mein Visual Studio: 
Bei Interesse – hier ist die Settingsdatei (einfach in “c:\Dokumente und Einstellungen\[Benutzername]\Eigene Dateien\Visual Studio 2008\Settings\” speichern)
Settings
Januar 21st, 2008
Januar 20th, 2008
Vor ein paar Tagen habe ich mich mal mit der Frage auseinandergesetzt, wie man mit Hilfe der DTE in einen vsPackage Einstellungen ändern kann. Auslöser dafür war der Wunsch meines Kollegen Tobi, die Einstellungen für das Debugging mit Hilfe des SourceServers von Microsoft auf einfache Art und Weise ein und ausschalten zu können. Die Einstellungen jedes Mal über die Tools -> Options anzupassen dauert einfach zu lange.
Einfach ein Visual Studio Integration Package über File->New…->Projects->Extensibility anlegen und in die Methode “MenuItemCallback” folgende Code schreiben bzw. kopieren:
bool? serverSupport = false;
DTE dte = GetService(typeof(DTE)) as DTE;
Properties properties = dte.get_Properties("Debugging", "General");
// suchen der richtigen Einstellungen
foreach (EnvDTE.Property prop in properties)
{
if (prop.Name == "EnableJustMyCode")
{
prop.Value = !Convert.ToBoolean(prop.Value);
serverSupport = !Convert.ToBoolean(prop.Value);
}
if (prop.Name == "EnableSourceServer")
{
if (serverSupport.HasValue)
{
prop.Value = serverSupport.Value;
((MenuCommand)sender).Checked = serverSupport.Value;
}
}
}
Januar 10th, 2008
Beim Versuch mein vsPackage für die Implementierung von Interfaces ein wenig zu erweitern, bin ich auch ein seltsames Problem gestoßen.
Über die vom AddIn erzeugten Getter und Setter wollte ich ein Attribute per Code setzen. Hierfür gibt es eigentlich die Methode “AddAttribute”…Gesagt getan…hier der Code:
CodeFunction getter = prop.Getter;
getter.Attributes("MyAttribute", "myValue", -1);
Der Compiler erzeugt alles ganz brav und startet das vsPackage im Visual Studio Hive. Alles fein…naja vielleicht bis auf, wenn man das AddIn benutzen will.
An besagter Stelle kommt eine sehr aussagekräftige Exception mit der Meldung “Unbekannter Fehler”. Komisch ist nur, das die Methode wohl nur auf den Gettern bzw. Settern(CodeFunction) Probleme macht. Bei “CodeProperty” bzw. “CodeClass” funktioniert alles wunderbar….
Dezember 20th, 2007
Wenn es Euch mal wieder zu langweilig ist, guckt Euch doch dieses Flash-Spiel an:

Link
Dezember 18th, 2007
Eins meiner ersten Ziele, nach der Installation von Visual Studio 2008, war es, eine Erweiterung für Visual Studio zu schreiben, die alle Details eines Interfaces in einer davon abgeleiteten Klasse implementiert. Ja ich weiß, Visual Studio bring eine solche Funktion mit, aber diese erzeugt weder die benötigten Variablen, noch füllt sie die Getter und Setter mit den tatsächlichen Zuweisungen. Als ich die Erweiterung fertig hatte (mehr dazu in einem anderen Beitrag), wollte ich ein Setup erstellen, um es an meine Kollegen weiterzugeben. Bei Microsoft fand ich ein sehr gutes How to, das mir das Erstellen meines Setups Schritt für Schritt erklärte (How To Deploy a vsPackage Video for Visual Studio 2005). Dieses How to ist zwar für Visual Studio 2005, das ist kein Problem.
In einem der Schritte werden die Registry-Einstellungen festgelegt. Dafür wird das Commandline-Tool RegPkg.exe verwendet. Ihr findet es im Visual Studio SDK-Ordner (Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Tools\Bin\). Mit dem Parameter “/root” wird der Pfad zu Visual Studio festgelegt. An dieser Stelle muß man vorsichtig sein. Wenn man hinter dem letzten Ordnername des Pfades einen Backslash hat (z.B. /root:SOFTWARE\Microsoft\VisualStudio\9.0\), dann generiert RegPkg.exe eine Reg-Datei mit doppeltem und damit falschem Backslash.
Ich mußte recht lange suchen, bis ich diesen recht unschönen Fehler gefunden hatte.
Dezember 18th, 2007
larshildebrandt.de ist online und Ihr befindet Euch gerade auf dem dazugehörigen Blog. Dieser Blog wird sich bald mit vielen Beiträgen zu .net, c#, asp.net, delphi, joomla und vielen anderen Themen füllen….
Hier ein paar Details zu mir:
Mein Name ist Lars Hildebrandt. Ich bin 30 Jahre alt und lebe seit mittlerweile gut 10 Jahren in Hamburg. Geboren wurde ich in Rostock, wo ich auch die ersten 20 Jahre meines Lebens verbrachte.
Ich bin als Softwareentwickler für die Bauer Systems KG tätig. Die Bauer Systems KG ist der technische Dienstleister der Bauer Verlagsgruppe.
Wer noch mehr über mich erfahren möchte, guckt einfach mal auf mein Xing-Profil.