Zum Inhalt springen

Just about .Net

It's just a blog about .Net…

Archiv

Archiv für März 2011

MVVM ist wohl eines der meist diskutierten Themen wenn es um WPF geht. „Warum brauche ich das?“ „Wie setze ich X denn dann um?“ „Warum ist Code-Behind so schlimm?“ Alles Fragen die einem immer wieder begegnen und immer wieder aufs neue beantwortet werden wollen.

Einige Gründe die zu all dem führen sind der mit MVVM verbundene Aufwand, die fragmentierten Erklärungen die über das ganze Netz verstreut sind und das solide WPF-Wissen das man benötigt um die Gänze des „Problems“ überhaupt erst erfassen zu können.

Vorallem die Frage nach dem „Wie“, kann schnell ausarten wenn es darum geht wie bspw. Dialoge gesteuert werden, wie das ViewModel richtig erzeugt wird und wie es der View übergeben werden sollte.
Continue reading “Fundstück: MVVM in the Box” »

Heute widme ich mich mal wieder zwei Bestandteilen von .Net die es schon sehr lange gibt und deren Nutzung als Grundlagenwissen zu verstehen sind. Da mir recht häufig der „Missbrauch“ dieser Dinge unterkommt, will ich hier die Vorteile und Nachteile etwas genauer beleuchten. Dabei geht es mir zunächst um das Schlüsselwort as und im Weiteren um Exceptions allgemein. Continue reading “Warum ich „as“ nicht mag aber Exceptions liebe” »

Ich Besitze seit einigen Wochen ein Windows Phone 7 Handy. Vieles daran ist sehr interessant und auf andere Weise als bei Android oder iOS gelöst, wodurch Microsoft es schafft sich gut von der Konkurenz abzuheben. Leider merkt man der Software aber ihre bisher vergleichseise kurze Entwicklungszeit auch an.

Aus diesem Grund hatte ich mir eigentlich vorgenommen all die Dinge die mir zusagen und nicht gefallen in Form eines Posts zusammen zu fassen, sobald ich es längere Zeit genutzt habe. Nun muss ich das aber gar nicht mehr, denn Gordon Breuer hat heute einen sehr interessanten und umfangreichen Artikel in seinem Blog veröffentlicht. In diesem vergleicht er kurz zwei der aktuell verfügbaren Telefon um sich danach ausgiebig dem eigentlichen Betriebssystem zu zuwenden.

Da er von der letztendlichen Nutzung der Software bis hin zu deren Entwicklung alles unter die Lupe nimmt, möchte ich den wirklich gelungenen Artikel an dieser Stelle empfehlen. Er ist für all die lesenswert die mit dem Gedanken spielen sich selbst ein solches Gerät zu zulegen oder sogar Software dafür zu schreiben.

Der Link: http://gordon-breuer.de/post/2011/03/20/150-Tage-mit-Windows-Phone-7.aspx

I’ve spent the last weeks playing around with MEF which uses a feature of .Net 4.0 I didn’t know before: the Lazy class. A class which gives us a standardized, easy to use and thread safe way for implementing lazy instantiation.

Lazy instantiation describes a procedure of creating class instances on demand e.g. when accessing a property. The advantage is that you only invest resources like CPU time and memory if it is really necessary.
Continue reading “Lazy-Instantiation and the Lazy<T> – class” »

An english version of this post can be found here:
http://www.just-about.net/lazy-t-english

Im Zusammenhang mit MEF bin ich auf ein Feature von .Net 4.0 gestoßen, welches mir bisher nicht bekannt war. Genauer meine ich die Klasse Lazy<T>, welche ein standardisiertes und threadsicheres Vorgehen bei Lazy Instantiation bietet.

Lazy Instantiation beschreibt eine Art der Instatierung von Objekten, die erst zu dem Zeitpunkt ausgeführt wird wenn auf jene Objekte zugegriffen wird. Ein solches Vorgehen hat den Vorteil, dass unter Umständen Ressourcen gespart werden weil aufwändige Operationen nur wirklich dann angefordert werden wenn man sie benötigt.

Continue reading “Lazy-Instantiation mit der Lazy<T>-Klasse” »

Open Source ohne Internet ist nicht vorstellbar. Wie sollten sich sonst die Leute finden die die Software entwickeln und verwenden wollen? Leider stellt gerade das Netz den Menschen gelegentlich auch ein Bein. Denn letztendlich fördert es die Anonymität und die Verteilung von Ressourcen auch auf negativem Weg.

In Vorbereitung eines Vortrags für die DNUG Leipzig, bin ich über etwas sehr eigenartiges gestolpert. So gibt es vom Isolation Framework NMock nicht nur eine Version sondern derer gleich 4. Nun gut, Versionierung gehört zum Alltagsgeschäft und ist wichtig. Was aber wenn diese Versionen von völlig unterschiedlichen Entwicklern stammen und über das Internet verstreut zu sein scheinen? Continue reading “NMock vs. NMock 2 vs. NMock 2.0 vs. NMock 3” »

Eines der besten Bücher zum Thema Unit-Testing ist sicher „The Art of Unit Testing“ von Roy Osherove. In diesem erläutert er nicht nur wie man Unit-Tests schreibt, sondern auch wie man sie bei Legacyode einsetzen kann und wie man verschiedene Hürden umschifft. Das Buch ist demnach wunderbar geeignet für alle die sich mit dem Thema auseinander setzen wollen.

Dies soll aber nicht Gegenstand des Posts sein, sondern vielmehr ein Video auf welches ich über die Seite zum Buch gestolpert bin. Dieses Video dreht sich um Best Practices zum Thema Unit Testing und sollte für jeden interessant sein, der schon ein paar Erfahrungen sammeln konnte. Darin geht es beispielsweise darum, wie man die Anzahl der Tests erhöht ohne die Menge des Codes für diese Tests zu erhöhen, es wird erläutert welche Fehler häufig gemacht werden bzw. wie man diese vermeidet und ganz am Ende gibt es noch zwei Lieder zum Thema, vorgetragen vom Meister selbst 😉

Hier ist der Link: http://www.viddler.com/explore/RoyOsherove/videos/25/

P.S.: Wer bei viddler.com nach Roy Osherove sucht, findet noch eine ganze Reihe anderer Videos zum Thema, die alle einen sehr hohen Informationsgehalt haben.

Gestern habe ich bereits ein Post zum testbaren Singleton geschrieben, in welchem ich es mir zur Aufgabe gemacht hatte eine Möglichkeit zu finden Singletons so umzusetzen, dass sie möglichst einfach zu testen und ersetzen sind. Dies ist mir nur teilweise gelungen.

Das erste System das ich vorstellte, erlaubte zwar ein Testen des Singletons, nicht aber den Austausch durch ein Fake-Objekt. Die zweite Fassung ermöglichte zwar das Ersetzen und Testen, war in meinen Augen aber zu aufwändig. Dazu kommt, dass beide Systeme dem Entwickler die Freiheit gewähren die tatsächliche Singleton-Funktionalität zu nutzen oder sich einfach selbst eine Instanz der Klasse zu erstellen.
Continue reading “Der testfreundliche Singleton – Versuch 2.0” »

Ich hatte mich vor einiger Zeit in einem Blogpost kritisch über Singletons und deren Eigenschaften geäußert. Ganz fair war ich in diesem Post nicht, wie mir auch Thomas Mentzel zeigte. Denn wer meckert, sollte auch Gegenvorschläge bringen und genau das möchte ich jetzt einmal versuchen.

Continue reading “Der testbare Singleton – Version 1.0” »