Fluent Assertions

Was mir bei NUnit besser gefällt als bei MSTest ist die Aussagekraft von den Assertions. “Assert.That(something, Is.EqualTo(anotherthing);” finde ich viel aussagekräftiger als “Assert.AreEqual(anotherthing, something). Besonders die generischen Variante “Assert.AreEqual<string>(expectedstring, actualstring)” finde ich auf den ersten Blick nicht leicht verständlich. Deshalb kam ich auf die Idee eine eigene Lösung mit einem Fluent-Interface für MSTest zu entwickeln. Allerdings hat eine kurze Suche bei Google ergeben, das es hier schon etliches auf dem Markt gibt. Näher angesehen habe ich mir bisher Fluent Assertions. Die Lösung steht auf GitHub zur Verfügung – kann aber bequem über NuGet installiert werden. Die Lösung funktioniert sowohl mit … Continue reading Fluent Assertions

Wichtiger als Qualität?

Was gibt es wichtigeres als Qualität in der Softwareentwicklung? Wenn man die Frage so stellt, bekommt man immer “Nichts!” als Antwort. Trotzdem ist das dann aber nicht das, was wir in der Praxis sehen. Schulung? Keine Zeit. TDD? Keine Zeit. Code Reviews? Keine Zeit. Warum tappen wir in der Softwareentwicklung immer wieder in die gleiche Falle? Schlechte Qualität führt unweigerlich in eine Spirale. Es entstehen Bugs, die wir in nachfolgende Sprints oder schlimmstenfalls sogar Projekte “mitnehmen”. Diese Bugs sind extrem schwer zu planen. Sie sind viel Aufwändiger als gleich gute Qualität anzuliefern. Und sie hindern uns wieder daran “wichtiges” zu … Continue reading Wichtiger als Qualität?

Geschnitten oder am Stück?

Eine der großen Herausforderungen bei agiler Softwareentwicklung ist der Umgang mit Anforderungen. In der Theorie ist alles ganz einfach: die Anforderungen werden als UserStories definiert. Jede UserStory beschreibt ein Stück Software-Inkrement das auslieferbar ist und einen Kundennutzen erfüllt. Das Inkrement muss ein funktionierendes Stück Software sein, dass der Anwender “benutzen” kann. Abbildung 1 zeigt die Schematische Struktur in einer 3-Tier-Architektur. Abbildung 1: Erstellen von Software in Inkrementen Warum fällt es dann in der Praxis den meisten Entwicklern so schwer Inkremente für UserStories zu liefern? Schauen wir uns erst mal an, wie in den meisten Projekten Anforderungen in das “Backlog” gelangen. … Continue reading Geschnitten oder am Stück?

„Entwickler sind die schlechtesten Tester“

Diese Aussage habe ich noch vor einigen Jahren öfter benutzt. Die Argumentation war, dass Entwickler ja die zu entwickelnde Applikation kennen und deshalb immer nur das testen, was auch funktioniert. Wer mich kennt weiß, dass ich heute eine ganz gegenteilige Meinung habe. Aber warum? Testen ist ein elementarer Teil der Softwareentwicklung. So wie es niemandem einfallen würde einen nicht kompilierten C# Code an einen Kunden auszuliefern würde auch niemand eine ungetestet Software ausliefern. Jeder Entwickler testet deshalb auch den ganzen Tag. Alle paar Minuten (oder spätestens nach ein paar Stunden) wird wieder die neue Funktionalität getestet. Nur leider machen die … Continue reading „Entwickler sind die schlechtesten Tester“

Upgrade MCPD SharePoint Developer2010 to MCSD – SharePoint Apps

Laut meinem “Certification Planner” gibt es doch einen MCSD – SharePoint Apps. Auch wenn der auf der offiziellen Seite noch nicht aufgeführt ist. Drei Prüfungen sind dafür notwendig: #480, #489 und #488. Ist man bereits MCPD 2010, dann sind nur zwei zu absolvieren: #480 und #493. Continue reading Upgrade MCPD SharePoint Developer2010 to MCSD – SharePoint Apps

MCSD is back

Offensichtlich verabschiedet sich Microsoft wieder von der Trennung MCTS und MCPD und wir bekommen wieder unserer alten guten MCSD zurück. Folgende MCSD Varianten gibt es gerade: MCSD: Application Lifecycle Management MCSD: Web Applications MCSD: Windows Store Apps Außerdem gibt es den kleinen Bruder MTA (Microsoft Technology Associate): MTA development track—for those intending to build a career as a software developer, this track helps prepare you for hands-on product training and MCSD certification. Start with MTA Software Development Fundamentals and then select the additional topics in this track to help you meet your career development goals: Exam 98-361: Software Development Fundamentals … Continue reading MCSD is back

Private full trust proxy

Einem Kunden von uns wollte nicht, dass ein FullTrustProxy für andere Anwendungen erreichbar ist. Deshalb wird zukünftig der Proxy wie folgt gesichert. Der Text soll in den Development Guidelines des Kunden ergänzt werden und ist deshalb in Englisch verfasst.  In your projects you don’t want your full trust proxy to be accessible for other solutions. This would be a security issue. To secure your full trust proxy so that it can only be used by your application you have to provision your proxy arguments in a separate (common) assembly and mark the argument type with the internal modifier. To use … Continue reading Private full trust proxy

SharePoint: Listen mit CutsomSchema und Lokalisierung

Wird im SharePoint eine ListInstance mit einem CustomSchema deployed, dann funktioniert darin die Lokalisierung mit MUI nicht. D.h. die Liste zieht die Texte aus den Resource-Dateien beim Anlegen und man kann die Sprache danach nicht umschalten. Das Verhalten tritt in Farm- und in Sandboxed-Solutions auf. Die Lösung ist das Listschema separat als eigenes Element zu deployen. Wenn das Listschema nicht sichtbar sein soll kann es auf “Hidden” gestellt werden. Continue reading SharePoint: Listen mit CutsomSchema und Lokalisierung