Falscher Thread? Kein Problem!

Hmpf.. mal wieder eine Exception wegen einer Aktion aus einem falschen Thread? Wiedermal notwendige Asynchronität die dennoch der Entwicklung im Weg steht. Naja viele kennen dieses Problem bereits und jeder hat seine Lösungen hierfür. Allerdings ist dies oft so das es sich bei diesen „Lösungen“ um Copy&Paste handelt, welches nicht zwingend zur Wartbarkeit von Sourcecode beiträgt. Wie wäre es jetzt also, wenn wir eine Klasse hätten welche unsere Aktionen mit dem richtigen Thread Synchronisiert? Das wäre doch fantastisch, oder etwa nicht? Exakt eine solche Klasse befindet sich in vielen MVVM-Frameworks und auch außerhalb solcher Frameworks ist diese immer mal wieder eine große Hilfe. Den asynchrone Operationen lassen sich nicht vermeiden, spätestens wenn längere Prozesse direkt vom GUI-Thread gestartet werden und dies die Benutzeroberfläche einfriert ist Asynchronität gefragt. Allerdings möchte man hier auch wenn die Daten sich verändern, dass die Benutzeroberfläche dies soweit mit bekommt. Hierfür haben wir zwar bereits eine PropertyChangedBase-Klasse gebaut, aber diese ist nun mal nicht in der Lage Aktionen aus anderen Threads durchzuführen.  Weiterlesen

Test-getriebene Entwicklung

Test-getriebene Entwicklung bezeichnet den Vorgang Software mit automatisierten Softwaretests zu erstellen. Im Bereich von C# mit .NET wird hierfür meistens NUnit verwendet und dies ggf. mit TestDriven.Net. Test-getriebene Entwicklung unterteilt sich in sogenannte „Box“-Methoden und zwar genau in drei. Hier wäre zunächst der Black-Box-Test, der Grey-Box-Test und zu guter letzt der White-Box-Test. Um Test-getrieben entwickeln zu können, muss man sich dieser Methoden in klaren sein und diese Beherrschen.  Weiterlesen