„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

InternalsVisibleTo-Attribut

Das InternalsVisibleTo Attribut erlaubt es interne Methoden in anderen Bibliotheken zu verwenden. Besonders für das Testen ist das sehr wichtig – aber es hilft auch die größten Teile der Anwendung geschlossen zu halten und das extern sichtbare Interface so klein wie möglich zu halten. Bei signierten Projekten muss man den Publik-Key wie folgt angeben: Den PublicKey erhält man über sn.exe mit der Option -Tp: Continue reading InternalsVisibleTo-Attribut

Posten von Source-Code-Snippts in HTML (Visual Studio 2010)

Wer Codeblöcke aus Visual Studio in Blogs, Foren oder einfach nur Word verwenden will, der kann einen kleinen Trick von Visual Studio nutzen: in einer html Datei kann man aus dem Context-Menu “Paste alternate” verwenden. Dies fügt den Codeabschnitt als reines HTML ein. Das kann dann in Foren und Blogs verwendet werden. Auch in normalen Worddateien ist die Formatierung deutlich besser. Der Befehl steht nur in der Ansicht “Source” zur Verfügung – nicht im “Design”. Continue reading Posten von Source-Code-Snippts in HTML (Visual Studio 2010)

Error Handling Part 4: Fehlerbehandlung auf Anwendungsebene

Dies ist der vierte Teil der Serie zum Exception Handling: Grundlagen der Fehlerbehandlung Eigene Ausnahamen werfen Guidelines nach David Abrahams Fehlerbehandlung auf Anwendungsebene In diesem Teil der Serie wollen wir das Error Handling einer Anwendung aus architektonischer Sicht betrachten. Der wichtigste Aspekt dabei ist sicherlich das Thema Sicherheit. Sicherheit Wenn ein Fehler im Betrieb auftritt, dann ist es nötig so viele Informationen wie möglich über diesen Fehler zu haben. Dies betrifft besonders den StackTrace. Dieser sollte bei der Fehlerbehandlung ja immer erhalten bleiben. Jetzt sind der StackTrace und andere ausführliche Informationen zu Fehlern natürlich auch eine Menge Informationen, die von … Continue reading Error Handling Part 4: Fehlerbehandlung auf Anwendungsebene

Argument Validation

Es ist gute Praxis alle Argumente zu validieren, bevor sie verwendet werden. Würde in diesem Beispiel das Argument nicht geprüft, dann würde eine DivideByZeroException geworfen werden (was zugegebenermaßen in diesem Beispiel auch nicht ganz sinn frei wäre – aber ich denke der Gedanke dahinter ist klar). Besonders bei Referenztypen ist es kritisch, da diese NULL sein können. Wird die Validierung vergessen, dann wird eine NullReferenceException geworfen. Deshalb gibt es in der Codeanalyse auch die Regel CA1062: Validate arguments of public methods. Würde eine Methode so aussehen: Würde man eine NullReferenceException bekommen, wenn das Objekt NULL wäre. Außerdem muss man aufpassen, … Continue reading Argument Validation

Error Handling Part 3: Guidelines nach David Abrahams

Dies ist der dritte Teil der Serie zum Thema Exception Handling: Grundlagen der Fehlerbehandlung Eigene Ausnahamen werfen Guidelines nach David Abrahams Fehlerbehandlung auf Anwendungsebene David Abrahams hat 3 Guidelines definiert, an die sich Entwickler von Klassenbibliotheken halten sollen: Die no-throw guarantee Die basic guarantee Die strong guarantee Es geht dabei um 3 Arten von Verträgen, die man als Autor einer Klasse den Konsumenten verspricht. No-Throw Guarantee Bei der “no-throw guarantee” muss sichergestellt werden, dass keine Exception die Kasse/Funktion verlässt. Dies bedeutet natürlich, dass beim Auftreten eines Fehlers in einer untergeordneten Komponente folgendes sichergestellt werden muss: Keine Exception verlässt die Funktion: … Continue reading Error Handling Part 3: Guidelines nach David Abrahams