Refactoring pattern for WPF UserControls

Legacy WPF Code enthält meist eine große Anzahl von UserControls, die ihrerseits massig Logik enthalten weil kein sauberes MVVM verwendet wurde. Um diesen Umstand zu beseitige braucht man aber meist eine gute Testabdeckung um nicht versehentlich etwas kaputt zu machen. In diesem Fall bekommt man dann aber nicht selten schon Probleme das entsprechende UserControl im Test zu instanziieren, weil die InitializeComponents Methode Ressourcen akquiriert die in der Testumgebung nicht vorhanden sind, da diese nicht im GUI Thread läuft. Was also tun? Die InitializeComponents Methode dient im Grunde nur dafür die UI des Controls zu rendern. Ihr interner Aufbau, also die eigentlichen Komponenten und auch das Verhalten des Controls, existieren auch ohne jene Methode. Für Tests brauchen wir InitializeComponents also überhaupt nicht. Um nun aber minimalinvasiv vorgehen zu können, müssen wir uns eine Stelle herauspicken, an der wir das Verhalten des

Weiterlesen »

Und es werde Licht – Neues Design und neue Seite

Nachdem ich meine Veröffentlichungstätigkeit dieses Jahr deutlich zurück geschraubt und mich mehr um Kundenprojekte gekümmert habe, bin ich nun an einem Punkt an dem ich sehr gern wieder etwas ausführlicher schreiben und aus Spaß programmieren möchte. In dem Zusammenhang und weil es einfach mal wieder Zeit wurde, habe ich a diesem Blog ein neues Aussehen verpasst und b eine neue Seite erstellt.

Weiterlesen »