Cake.Compression AddIn

Cake (C# Make) ist ein plattformübergreifendes Build Automatisierungssystem, welches es dank seiner umfangreichen API ermöglicht, einfache bis komplexe Build Skripte schnell zu erstellen. Man kann die Skripte auch durch eigene oder vorhandene AddIns erweitern.

Für ein Skript benötige ich die Möglichkeit GZip Archive zu erstellen. Von Haus aus bietet Cake jedoch nur die native .Net Zip Funktionalität an und es gab auch kein entsprechendes AddIn. Daher habe ich auf Basis der SharpZipLib das Cake.Compression AddIn erstellt, welches Funktionalität für die Erstellung von (Tar) BZip2, GZip und Zip Archiven bietet.

Das Package ist über NuGet und der Quellcode über GitHub verfügbar.

Templates und Snippets für Visual Studio

Als Programmierer versucht man sich die täglich Arbeit zu erleichtern und wiederkehrende Abläufe zu automatisieren, wo es nur geht. Wieso immer eine Methode „zu Fuss“ schreiben, wenn man sie einfach mit einem Kurzbefehl einfügen kann? Oder warum immer eine Klasse anpassen, wenn eine Vorlage sie bereits so erstellen kann, wie man es möchte.

Für die Arbeit mit Visual Studio verwende ich auch eine Reihe selbst erstellter Templates und Snippets, die mir die Arbeit einfacher macher und Zeit sparen. Diese habe ich jetzt als OpenSource Projekt veröffentlicht. Das Repository steht bei GitHub zur Verfügung.

Wenn der Breakpoint nicht erreichbar ist …

Ein kleiner Tipp aus der Praxis. Beim debuggen eines Projektes hatte ich in einer Klasse einen Breakpoint gesetzt, aber dieser wurde zur Laufzeit nie erreicht. Ich konnte mir das Problem nicht erklären. Das Projekt, in dem die Klasse sich befand, war korrekt eingebunden, das eigentliche Projekt kompilierte ohne Fehler, wieso wurde also der Breakpoint nicht erreicht? Bei einem genaueren Blick zeigte der Tooltip des Breakpoints folgende Meldung an:

Der Haltepunkt wird momentan nicht erreicht. Für dieses Dokument wurden keine Symbole geladen.

Nach einer kurzen Suche kam ich zu der Lösung. Das Problem bestand darin, dass in den Einstellungen für den Verweis des eingebundenen Projektes die Einstellung für Lokale Kopie auf false gesetzt war. Das führte dazu, dass die .pdb Datei (Programmdatenbank), welche die für das Debugging nötigen Informationen enthält, nicht erstellt wurde und der Breakpoint somit nicht erreichbar war. Die Einstellung von Lokale Kopie auf true gesetzt, der Breakpoint war erreichbar und das Problem war behoben.

BASS Audio Library

Durch die Mitarbeit an einem Projekt, bin ich auf die interessante und sehr umfangreiche Un4seen BASS Audio Library gestossen. In Kombination mit der BASS.NET Library als .NET Wrapper, lassen sich damit sehr einfach Audiofunktionalitäten, wie Wiedergabe, Aufzeichnung und Streaming realisieren. Der Umfang ist überwältigend und lässt keine Wünsche offen. Die Libraries lassen sich mit mono.NET sowie Xamarin verwenden, somit kann man Audio Projekte auch für OS X und Linux umsetzen.