Zum Inhalt springen

Just about .Net

It's just a blog about .Net…

Archiv

Kategorie: Tutorials

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.

weiter lesen…

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. weiter lesen…

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.

weiter lesen…

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? weiter lesen…

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

 

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.
weiter lesen…

Mein Vortrag bei der DNUG Dresden ist jetzt schon 2 Wochen her, man wie die Zeit verfliegt. Schuldig geblieben bin ich seit dem aber immer noch die gezeigten Materialien und weiterführende Links. Das will ich an dieser Stelle wenigstens halbwegs nachholen und all Denen, die nicht da waren zumindest einen Weg zur Erkenntnis weisen :)
weiter lesen…

Aktuell baue ich den größten Teil meiner Arbeitszeit ViewModels und Controls für unseren UI-Designer. Dabei bin ich zwischenzeitlich über eine Anforderung gestolpert die wohl auch an viele andere Anwendungen gestellt wird. So sollen bei uns Suchen über eine spezielle Textbox erledigt werden, die auch einen Button beinhaltet mit dem man die Suche auslösen oder das Textfeld leeren kann. Dieses Verhalten kennt man zum Beispiel von der Suche bei Firefox.

Nun ist genau dieser Fall wunderbar geeignet um sich mit Custom-Controls in WPF auseinander zu setzen. Nur wie geht man da vor? Was muss man beachten und warum überhaupt die Entscheidung für ein Custom- und nicht für ein User-Control?

All die Fragen und noch viel mehr beantwortet David Owens in seinem Blogpost. Dieses sehr ausführlich und gut geschrieben und bietet das Ergebnis sogar als herunter ladbaren Quellcode.

Schritt für Schritt kann man damit jede Entscheidung nachvollziehen, also perfekt um die Entwicklung von Custom-Controls mal live zu erleben. Auf der anderen Seite ist das Post aber nicht für WPF-Anfänger geeignet, was schon darin begründet liegt, dass Custom-Controls ein gutes Vorwissen zu Dingen wie Styles, Trigger usw. benötigen.

Wie bereits hier auf der Seite angekündigt, war ich letzten Donnerstag bei der Dotnetusergroup in Dresden und habe einen Vortrag über Moq gehalten. Für mich selbst war dieser Abend sehr lehrreich. Immerhin hatte ich zuvor noch keine Präsentation vor einem solchen Publikum gehalten. Dazu kam, dass ich dem Irrglauben aufgesessen war, dass Unit-Testing tatsächlich für Viele Teil des Arbeitsalltags sei, dem ist aber nicht so und damit habe ich dem Vortrag wohl insgesamt zu viel vorausgesetzt.
weiter lesen…

Einen Großteil der letzten Jahre habe ich mit dem Erstellen von Reportinglösungen und demnach mit dem “Zeichnen” von Diagrammen zugebracht. Mal wollte man die Geschwindigkeit eines Fahrzeugs live mitschneiden, mal die produzierten Endprodukte einer Fertigung in Qualitätsklassen eingeteilt sehen. Immer hat es mich genervt, dass ich selbst bei den kleinsten Aufgabenstellungen auf externe Tools wie ZedGraph (LGPL), TeeChart (rein kommerziell) o.ä. zurückgreifen musste, da das Framework keine eigene Bibliothek mitbrachte und somit zumindest eine gewisse Gefahr von Lizenzkonflikten bzw. zusätzlichen Kosten entstanden.

2008 hat sich dies zumindest ansatzweise geändert, da Microsoft MSChart bzw. die Microsoft Chart Controls für .Net Framework 3.5 veröffentlichte. Ein kleiner Nachteil an dieser Stelle war immer noch, dass man es quasi mit einem extra Paket zu tun hatte, denn um integraler Bestandteil von .Net 3.5 zu sein kam es „etwas“ spät. Jetzt mit .Net 4.0 ist dies aber Geschichte und alles wird gut, oder etwa nicht?
weiter lesen…