Zum Inhalt springen

Just about .Net

It's just a blog about .Net…

Archiv

Kategorie: Tutorials

Ich wurde per Twitter gefragt ob ich mir nicht ein wenig Quellcode einer WPF Applikation ansehen könnte um diverse Tipps zu dessen Verbesserung zu äußern. Statt aber nur aufzuzeigen was mir daran nicht gefällt, habe ich mich daran gemacht zu beschreiben welchen anderen Weg man gehen kann um mehrere Ansichten innerhalb einer WPF Anwendung zu verwalten und diese Anwendung auch noch korrekt zu initialisieren.

Continue reading “How-To: Handgefertigtes Bootstrapping & View Handling in WPF” »

In meinem aktuellen Projekt verwenden wir Unity XML Konfiguration, damit auch nach der Kompilierung ggf. Funktionalität hinzu geschaltet oder entfernt werden kann. Die Grundlagen dieses vorgehens habe ich in folgendem Video bei Video2Brain zusammen gefasst.

Continue reading “Video: Unity IoC Container per XML konfigurieren” »

Ich gebe gern zu, dass ich mich am Anfang eher schwer mit TDD getan habe. Der Grund dafür war, dass die Lehren die ich aus Büchern und Dojos zog, so gar nicht in meinen Entwickleralltag passen wollten. Kleine Umsetzungsschritte die nicht selten durch sinnlos scheinende Zwischenaktionen geprägt waren, haben mich fast zur Weißglut getrieben. Wenn ich dann TDD anwendete verzichtete ich also auf diese Schritte und fand mich nach einiger Zeit wiederum damit konfrontiert, dass meine Tests viel zu komplex wurden und die angeblichen Vorteile von TDD praktisch nicht präsent waren.

Continue reading “„Ausprägungen des TDD“ aka „Die Triangulations-Baby-Step-Holzkeule“” »

Automatisiertes Testen mit Visual Studio 2012_kleinAnfang letzter Woche hat mein Video Training zur Testautomatisierung mit Visual Studio 2012, welches ich Ende letzten Jahres bei Video2Brain aufgenommen habe, endlich das Licht der Welt erblickt. Der Name des Trainings ist dabei Programm. Mir geht es nicht darum zu beschreiben wie Unit Tests oder sogar TDD mit Visual Studio realisiert werden können, sondern wie Tests generell automatisiert werden.

Ich mache diese Trennung, da aus meiner Sicht Visual Studio einen etwas schlechten Ruf im Bereich der Unit Tests hat, über diese hinaus aber noch wesentlich mehr Möglichkeiten bietet, die gern vergessen werden. Welche das im Einzelnen sind kann man der Beschreibung des Trainings entnehmen. Denn darin beschreibe ich mehr als die Hälfte der Zeit Themen wie Lasttests, Coded UI Tests oder Webleistungs Tests.

Ich mache in dem Training also keine direkte Unterscheidung zwischen Testern und Entwicklern, was auch der Grund ist warum ich im kurzen Theorieteil vor allem auf Beschreibungen aus dem Buch „Basiswissen Softwaretest“ von Andreas Spillner und Tilo Linz, statt auf die Definition einschlägiger englischsprachiger Autoren zurückgegriffen habe. Für mich ist Testautomatisierung ein generelles Thema mit dem ein Team sich insgesamt viel Arbeit ersparen kann und sollte nicht mit der Erstellung von Unit Tests enden.

Ich hoffe also, dass das Training nützlich ist und manchem vielleicht sogar den Weg zu test getriebenen Entwicklung ebnet, denn wo ein Test ist, da folgen sicher noch mehr…

Testautomatisierung läuft uns meist eher auf Ebene der Unit Tests über den Weg. Sie kann aber auch bei System Tests recht praktisch sein. Ein Tool was uns WPF, Silverlight und Windows Forms Entwicklern dabei hilft, ist White. Bei diesem handelt es sich um ein Framework mit dem man Applikationen steuern und Steuerelemente innerhalb dieser Programme identifizieren kann, wodurch es möglich wird bestimmte Use Cases nachzustellen und deren Ergebnisse auf ihre Korrektheit zu prüfen. Dieses kann im Grunde mit jedem beliebigen Testframework verwendet werden und greift auf die UIAutomation API zurück die zum Beispiel auch von den Coded UI Tests des Studios genutzt wird.

Continue reading “How-To: Automatisierte UI Tests mit White” »

Einer der viel gesprochenen Leitsätze des Testens ist: „Finger weg von privaten Membern“. Der Gedanke hinter dieser Aussage ist einleuchtend, denn je mehr Aussagen ich in einem Test über die Implementierung mache, desto höher die Wahscheinlichkeit, dass ich ihn später anpassen muss oder er fehl schlägt.

Nichts desto trotz, kann man sich durch den Zugriff auf private Member gelegentlich viel Arbeit sparen wenn es darum geht einen Test aufzusetzen und außerdem hilft es manchmal sogar beim Aufspüren von Bugs. Weiterhin ist es teils unumgänglich auch Dinge zu testen die als internal gekennzeichnet sind und demnach theoretisch nicht vom Testprojekt identifiziert werden könnten. Continue reading “How-To: Private und internal testen mit MS Test” »

In einem früheren Post hatte ich einmal beschrieben wie Data-Driven-Tests mit NUnit umgesetzt werden können. Damals habe ich bereits darauf hingewiesen, dass so etwas theoretisch auch mit MS Test und dem Visual Studio möglich ist, was ich nun erläutern möchte.

Continue reading “How-To: Datengetriebene Tests mit MS Test” »

Eine der wichtigsten Gründe Prism einzusetzen ist die Möglichkeit die GUI in Regionen aufzuteilen. Jede dieser Regionen wird als Content-, Items- o.ä. Control repräsentiert und kann dann zur Laufzeit mit 1 (ContentControl) bis n (Items– oder TabControl) UserControls bestückt werden. Auf diese Weise wird die eigentliche Benutzeroberfläche lose gekoppelt und kann ohne größeren Aufwand an neue Anforderungen angepasst werden.

Ein immer wiederkehrendes Problem stellt für mich dabei die Nutzung des ItemsControl dar. Jenes zeigt die einzelnen Views in Form einer Liste an, was unter Umständen etwas langweilig und verwirrend wirken kann. Aus diesem Grund bietet es sich an, jene Views durch Überschriften oder Abgrenzungen voneinander zu trennen, aber wie kriegt man das hin? Kann man es evtl. auch ohne Prism verwenden? Und vor allem wie schafft man es mit möglichst wenig Aufwand? Continue reading “How-To: UserControls in ItemsControl mit Überschriften trennen” »

Ich sitze schon seit einiger Zeit an einem Artikel zum Managed Extensibility Framework, einem IoC-Framework welches zu .Net 4.0 gehört. Nun habe ich ihn gelöscht weil ich im deutschsprachigen Netz ein Tutorial gefunden habe welches das MEF sehr ausführlich beschreibt.

Wer sich also über IoC mit .Net – Bordmitteln informieren will und/oder wissen möchte was so alles da drin steckt, sei auf folgende Seite(n) verwiesen.

MEF Teil 1 – Grundlagen, Imports und Exports

MEF Teil 2 – Metadaten und Erstellungsrichtlinien

MEF Teil 3 – Lifecycle beeinflussen und überwachen

MEF Teil 4 – Vererbung mit Composable Parts

MEF Teil 5 – Composition und Recomposition

MEF Teil 6 – Constructor-Injection

MEF Teil 7 – Exportieren über eine Class Factory

MEF Teil 8 – Eigenen ExportProvider erstellen

MEF Teil 9 – Zugriff auf Composable Parts und Metadaten ohne Lazy<>

MEF Teil 10 – Parts über ExportProvider und App.config in AppDomain laden

MEF Teil 11 – Neuerungen unter .NET 4.5

Wie letzte Woche versprochen präsentiere ich heute ein mögliches Ergebnis der Lottery Kata. Dabei werde ich klären was es mit parametrisierten und datengetriebenen Tests auf sich hat, wie man sie mit NUnit umsetzt und welche Vor- bzw. Nachteile sich ergeben können. Die eigentliche Umsetzung der Logik ist nur am Rande interessant und wird größtenteils außen vor gelassen.
Continue reading “„Eine Lösung der Lottery Kata“ aka „Data-Driven-Tests mit NUnit“” »