In meiner Serie zu Knockout.js habe ich bereits gezeigt, was diese Bibliothek leisten kann. Nichts liegt also näher, als das eigene Blog ein wenig auf Vordermann zu bekommen. Stein des Anstoßes ist die Suche, die bei BlogEngine.NET sehr altertümlich wirkt und in meinem neuen Design daher bis dato nicht berücksichtigt wurde. Mit Knockout.js sollte eine verbesserte Variante schnell implementiert sein. Da die Suchergebnisse durch diverse Bots auch nicht indiziert werden müssen, kann Knockout.js bedenkenlos eingesetzt werden. Hier mein Erfahrungsbericht.
20. November 2011 in .NET
Eigentlich hatte ich in den letzten Monaten einen recht großen Bogen um Microsoft LightSwitch gemacht. Schließlich vermittelt diese Visual Studio Erweiterung mehr oder weniger den Eindruck Access in neuem Gewand zu sein. Da mich dann aber doch das Interesse gepackt hat (oder besser gesagt, eine kleine datengetriebene Anwendung möglichst schnell erstellt werden musste), gab ich LightSwitch eine Chance. In diesem Beitrag möchte ich einige meiner Erfahrungen an Hand einer einfachen ToDo-Anwendung vermitteln.
Unit Tests sind doch weit weniger sinnvoll, als immer wieder behauptet. Es entsteht doch zusätzlicher Aufwand zur Implementierung, der Wartung von Unit Tests und die Infrastruktur muss auch erst geschaffen werden. Zudem weiß ich als guter Entwickler ohnehin, wo der Fehler auftritt. Mit guten Debugging-Skills kann ich jeden Fehler sofort finden und ausbessern. Hier eine kleine Auswertung aus der Praxis.
Wer kennt es nicht? Abfragen an Datenquellen über die ganze Anwendung verteilt. Dort mal eine Abfrage, dort mal eine Abfrage und häufig deckt sich der dabei verwendete Code auch noch. Manchmal mit kleinen Abweichungen, aber ob dies ein Bug ist, kann schon lange niemand mehr beantworten. Dann auch noch Änderungen an einer der angebundenen Datenquellen und schon wird der Sourcecode durchforstet, in der Hoffnung, alle darauf aufbauenden Stellen zu finden. Das kann mit dem Repository Pattern geändert werden.
Größere Umsetzungen bestehen in der Regel aus mehreren Projekten innerhalb einer Solution. Die Pflege der Versionsnummer kann hier gleich mal etwas zeitaufwändig werden. Dazu empfiehlt es sich eine globale AssemblyInfo anzulegen und diese in die jeweiligen Projekte zu linken. Vorteil: Die Versionsnummer muss nur mehr zentral an einer Stelle gesetzt werden.
Beim Testen einiger Visual Studio Add-Ins geht mir hin und wieder eine recht brauchbare Funktionalität verloren: Geöffnete Dateien werden nicht mehr mit dem Solution Explorer abgeglichen. Je nach Projektstruktur und sauberer Pflege der Namespaces kann das dann schon in eine Sucherei ausarten, da die...
Der .NET Reflector ist nach der Übernahme durch redgate – wie zu erwarten - kostenpflichtig geworden. Da viele Entwickler nach einer kostenlosen Variante suchen, hatte ich vor einiger Zeit schon mal über ILSpy getwittert. Dies ist zwar ein netter Disassembler, benötigt aber schon noch ein wenig Wart...
Die Steuerung eines ChildWindow-Objektes in Silverlight wirft sehr schnell Fragen auf, wenn MVVM sauber eingesetzt werden soll. Wann ist die Eigenschaft DialogResult zu setzen und wer ist dafür verantwortlich, sind die ersten Fragen, die sich stellen. Ansatz 1: Binding auf Eigenschaft DialogResult ...
Relevante Artikel: Lose Kommunikation zwischen ViewModels Lose Kommunikation zwischen ViewModels – Teil 2 Binden von ViewModels via Locator In den vorangegangenen Teilen (sowohl zum Thema Lose Kommunikation zwischen ViewModels als auch dem Binden von ViewModels über einen L...
Im Beitrag Performanceprobleme von Silverlight-Anwendungen finden und beheben bin ich bereits auf typische Performance-Probleme von Silverlight-Anwendungen eingegangen. Nach einer gestrigen WPF-Performance-Session kann ich der Liste noch einige Punkte hinzufügen, die ich natürlich mit meinen Lesern ...