Implementierung eines max(#) String FormatProvider per TDD

Im Kontext einer Anforderung überkam mich das dringende Bedürfnis mit der Methode string.Format() Zeichenketten mit einer maximalen Länge auszugeben. Die Vorgeschichte zu diesem Bedürfnis ist, dass das string.Format()-Pattern über die App.config Datei angegeben wird. Dies hat den Vorteil, dass die Anwendung nicht neu gebaut und deployed werden muss, wenn in der Produktion die auszugebende Zeichenkette leicht verändert werden muss.

Damit ich nun mein Bedürfnis stillen kann, kam mir die Erleuchtung doch mein eigenes Format-Pattern für string.Format() zu implementieren, welches die übergebenen Zeichenketten auf die gewünschte Länge kürzt, welch grandiose Eingebung…! 😉 Weiterlesen..

Seminar für Zeitmanagement: Dafür habe ich keine Zeit!

Ein Kalauer? Ja bestimmt, und mit einem gehörigen Schuss Wahrheit.

Ich hatte mich schon seit längerer Zeit mit dem Gedanken beschäftigt, ein Seminar dieser Art zu belegen. Bei meinem vorherigen Arbeitgeber war es einer der letzten Einträge auf der Liste der Weiterbildungen in der Rubrik „Soft-Skills“, die ich in meinen knapp 14 Jahren Betriebszugehörigkeit noch nicht abgehakt hatte. Aus verschiedenen Gründen, und dazu gehörte nicht nur Zeitmangel, ist es nie dazu gekommen.

Ausgelöst durch eine strukturelle Veränderung meiner Aufgaben bei Accso ist die Teilnahme wieder mehr in das Zentrum meiner Aufmerksamkeit  gerutscht. Auf einmal musste ich nicht nur meine eigene Zeit organisieren (das fällt mir schon schwer genug!), sondern musste mich auch noch um die Aufgaben und zeitliche Auslastung von anderen kümmern. Nach nicht allzu langer Zeit ging es mir wie den gängigen Betriebssystemen bei zu wenig Arbeitsspeicher: ein guten Teil der Zeit war ich mit Wechsel zwischen Teilaufgaben und nicht mehr mit deren eigentlichen Erledigung beschäftigt. Es war Zeit, etwas zu unternehmen! Weiterlesen..

Projekte heiter bis wolkig – Microsofts Cloud-Plattform „Visual Studio Team Services“ unter der Lupe

Wer viel in Java entwickelt, der kennt den gängigen Workflow: Man arbeitet mit IntelliJ oder Eclipse (manch einer sogar mit Netbeans), die Dependencies werden über die Pom-Dateien mit Maven gezogen, über Git oder SVN wird der Quellcode dann committet, mit Jenkins gebaut und vielleicht auch noch mit SonarQube, CheckStyle oder Findbugs auf Qualität geprüft. Der Workflow ist bekannt und erprobt, so meine Erfahrung in den bisherigen Projekten, in denen ich war. Wer jedoch privat entwickelt, wird es sich meistens nicht leisten können, solch eine komplexe Infrastruktur hochzuziehen. Es fehlen die Server, es ist zu viel zu konfigurieren – der Overhead an erbrachter Arbeit entspricht in keiner Weise dem erlangten Nutzen, gerade in sehr kleinen Teams – und wer in der .NET-Landschaft unterwegs ist, hat sowieso viel weniger Auswahl, den Workflow zu gestalten, oder?

Ich stand genau vor diesem Problem, für ein privates Projekt einen solchen Workflow aufstellen zu wollen und habe Visual Studio Team Services ausprobiert. Über meine Erfahrungen und den praktischen Nutzen in privaten als auch kommerziellen Projekten werde ich im Folgenden berichten. Weiterlesen..

Wie wäre es mit einer privaten Cloud?

In der heutigen Zeit, in der die Cloud Technologie immer mehr an Bedeutung gewinnt, nimmt auch gleichzeitig der Bedarf an Speicherplatz für Dateien, die von unseren Endgeräten erzeugt werden, ständig zu. Die meisten Cloudanbieter wie DropBox, Google und Co. bieten einen gewissen attraktiven Speicherplatz für den Einstieg, allerdings ist das in vielen Fällen nicht ausreichend.

Das Geschäftsmodell ist einfach: Wer mehr Platz erhalten möchte, muss dafür bezahlen (einen faireren Deal gibt’s nicht). 🙂

Weiterlesen..

Code Coverage für C#

Dieser Beitrag gibt einen groben Überblick über einige Werkzeuge zum Ermitteln von Code Coverage Kennzahlen in .Net Projekten für C#, sofern die Tests mit NUnit geschrieben wurden. Code Coverage im Software Entwicklungsprozess angemessen eingesetzt hilft einen ersten Überblick über die Testqualität und Abdeckung des eigenen Codes zu erhalten. Dieser Überblick ist unter Umständen dann erforderlich, wenn man ein bestehendes System zur Weiterentwicklung übernimmt oder an einem System im Team gearbeitet wird und man selbst keinen Überblick mehr über die Testabdeckung hat. Code Coverage angemessen einsetzen bedeutet aber auch die Aussagekraft der Kennzahlen nicht zu überstrapazieren. So sei hier ausdrücklich davor gewarnt Code Coverage Kennzahlen als „die alleinigen“ Kennzahlen für die Codequalität zu verwenden. Denn eine hohe Testabdeckung sagt noch lange nichts über die Qualität des Codes bzw. der Tests aus und eine fehlende Testabdeckung sagt nur etwas darüber aus, dass eine bestimmte Testart bspw. automatisierte Komponenten-/Unittests nicht angewendet werden.

Doch dazu muss man erst mal die Code Coverage Kennzahlen ermitteln. Je nachdem zu welcher Kategorie von .Net Entwickler man sich zählen darf, ist die Umsetzung nicht ganz trivial. Weiterlesen..