Archiv

Archive for Mai 2011

Buch-Rezension zu “Programming Entity Framework“

Programming Entity Framework“ von Julia Lerman erschien im August 2010 in der 2. Ausgabe bei O’Reilly. Diese Ausgabe wurde für Entity Framework 4 komplett überarbeitet. Will man mit EF 4 arbeiten sollte man also unbedingt schauen das man diese Ausgabe kauft.

 

Ich bin jeweils ein wenig skeptisch wenn ich ein Buch mit über 700 Seiten sehe. Zu oft reicht das Wissen der Autoren nur für rund 500 Seiten und der Rest ist dann eine mehr oder weniger gekonnte Wiederholung. Dies ist hier aber definitiv nicht der Fall!

Julia Lerman gilt zu Recht als DIE Expertin zu Entity Framework ausserhalb von Microsoft. Die Teile zu EF sind sehr fundiert und liefern auch einen sehr guten Einblick in die Entstehungsgeschichte des neusten OR-Mappers von Microsoft.

 
Mehr als nur Entity Framework
Das Buch behandelt alle Teile die man zum Verstehen von Entity Framework braucht. Es beginnt mit dem Entity Data Model und den Abfragemöglichkeiten mit LINQ to Entities oder Entity SQL. Es folgen Tipps und Trick wie man mit dem EDM Designer arbeitet und wo man ihn umgehen muss. Ob man Self-Tracking Entities oder POCOs nutzen will, man findet für beide Ansätze ausführliche Anleitungen. Kapitel zu Transaktionen oder dem Mappen von Stored Procedures fehlen ebenso wenig wie die Einbindung von realitätsnahen (und damit komplexen) DB-Schemas in Entity Framework. Das Buch lässt diesbezüglich keine Wünsche offen.

Am meisten beeindruckte mich aber wie der konkrete Einsatz von EF erklärt wird. Ob man Windows Forms, WPF, WCF oder ASP.Net nutzt – für alle diese Technologien gibt es mindestens ein Kapitel das einem zeigt worauf man achten muss. Man ist so in der Lage EF in seinem eigenen Projekt zu nutzen ohne noch viele zusätzliche Informationen suchen zu müssen.

Mit seinem Umfang an Informationen ist „Programming Entity Framework“ auch sehr gut als Nachschlagewerk geeignet. Ein ausführlicher und gut gepflegter Index hilft beim Finden der passenden Stelle.

 
Kleine Kritikpunkte
Es gibt aber auch bei dem Buch noch einige wenige Verbesserungsmöglichkeiten. Die meisten Bilder im Kapitel 14 sind um 1-2 Nummern verschoben. Dies stört beim Lesen doch recht stark, da man vergeblich versucht das gerade erklärte auf dem Bild zu finden. Auch die Strukturierung könnte man bei einer 3. Ausgabe wohl noch ein wenig optimieren. Etliche der Verweise auf eine spätere Erklärung des Themas würden so entfallen.

 
Fazit
Wer sich mit Entity Framework beschäftigen will sollte sich dieses Buch unbedingt kaufen. Vor allem die Kapitel die auf die Nutzung von EF mit den einzelnen Microsoft Technologien (wie WPF, WCF, Windows Forms oder ASP.Net) eingehen sind eine sehr grosse Hilfe bei der täglichen Arbeit.

 
Zum Buch
Programming Entity Framework“ von Julia Lerman, 2010 O’Reilly, ISBN 978-0-596-80726-9, 912 Seiten, Englisch

Schlagworte: , ,

Abhängigkeiten auflösen mit NuGet

Wer kennt es nicht: Um mal schnell etwas in Visual Studio zu testen benötigt man erst die eine Library und dann noch eine und noch eine. Am Ende hat man die erste Stunde lang nur versucht die Abhängigkeiten so aufzulösen, das auch noch alle Versionen miteinander arbeiten. Wie schön wäre es doch wenn man einfach sagen könnte ich will Library XY und alle Abhängigkeiten werden einem automatisch aufgelöst?

Genau dies ist die Aufgabe von NuGet. Mit nicht einmal 500kb ist diese Visual Studio Erweiterung sehr klein und schnell heruntergeladen. Nach der Installation gibt es unter Tools einen Eintrag „Library Package Manager“, über den man NuGet verwalten oder die PowerShell-Konsole aufrufen kann. Falls weder der Eintrag unter Tools noch das Kontextmenü erscheint hilft ein Neustart von Visual Studio.

Ich persönlich bevorzuge für solche Tätigkeiten eine grafische Oberfläche. Um die aufzurufen genügt ein Rechtsklick auf den References-Ordner. Das dazugehörige Kontextmenü wurde durch NuGet um den Punkt „Add Library Package Reference…“ erweitert.

Die grafische Oberfläche bietet einem einen praktischen Suchdialog an. Hat man das gewünschte gefunden, kann man mit einem Klick auf den „Install“ Knopf die Library für das ausgewählte Projekt installieren. Allfällige Abhängigkeiten werden dabei im gleichen Durchgang aufgelöst und ebenfalls installiert.

Wer mehr zu NuGet erfahren will findet alles nötige auf http://nuget.codeplex.com/.

Schlagworte: , ,

Buch-Rezension zu “Software by Numbers“

Software by Numbers – Low-Risk, High-Return Development“ von Mark Denne und Jane Cleland-Huang erschien 2003 bei Prentice Hall. Die Idee des Minimum Marketable Feature wurde hier zum ersten Mal erwähnt und mit Zahlen Unterlegt.

 
Zahlen über Zahlen
Das Buch heisst zu Recht „Software by Numbers“. Denn hier geht es vor allem um die betriebswirtschaftliche Seite der Softwareentwicklung. Begriffe wie ROI und Break-even Time sollte einem geläufig sein, bevor man sich diesem Buch zuwendet. Nur so als Warnung. ;-)

 
Minimum Marketable Feature
Das Ziel des Buches ist es Softwareprojekte so zu optimieren, das diese möglichst grosse Gewinne abliefern. Zu diesem Zweck nutzen die Autoren die Incremental Funding Methodology (IFM). Die Idee dahinter ist das ein Projekt so schnell wie möglich die notwendigen finanziellen Mittel für die Weiterentwicklung selber generiert. Dies zwingt einem dazu möglichst schnell ein für den Kunden sinnvolles Paket an Teilfunktionalität auszuliefern. Diesen Teil nennen sie das Minimum Marketable Feature (MMF).

Software in Teilen auszuliefern ist heutzutage nichts ungewöhnliches mehr. Sei es mit XP, Scrum, Kanban – überall ist man dabei viele kleine Teillieferungen zu erstellen. Das MMF ist also nicht ein theoretisches Konstrukt sondern höchstens ein anderer Name für etwas was man als Entwickler bereits zu liefern versucht.

Im Buch ist das MMF die Ausgangslage für alle Berechnungen. Man kennt die Kosten, den Nutzen und weis zudem was für Abhängigkeiten zwischen den MMFs bestehen. So kann man diese zu Ketten (Strand) zusammenfügen. Für jede dieser Ketten kann man den Net Present Value (NPV) berechnen, der als Entscheidungsgrundlage für die Priorisierung dient. Das was den höchsten Gewinn liefert ist dann die Kombination der Ketten, die man entwickeln sollte.

 
Theorie ok – und die Praxis?
Das Schöne an all den theoretischen Beispielen ist das man nicht nur die Kosten kennt, sondern auch das Risiko und den Ertrag. In der Praxis dürfte genau hier der Knackpunkt liegen: Die meisten Projekte scheitern bereits an der Aufwandsschätzung der einzelnen Teilaufgaben. Wie will ein Projekt das bereits bei diesen täglichen Arbeiten um Faktoren daneben liegt den Nutzen auf tausend Franken/Euro/Dollar genau schätzen?

Die ganzen Berechnungen machen aber nur dann Sinn, wenn man auch verlässliche Zahlen hat. Im Buch kommen diese Zahlen aus der Finanzabteilung, womit die Autoren der Frage nach der Beschaffung gekonnt ausweichen. Das wird in der Praxis wohl meistens so sein, ich hätte dennoch gerne mehr dazu erfahren.

 
Was haften bleibt
Auch wenn man von BWL keine Ahnung hat, so gibt es doch eine ganze Reihe von Punkten die man mitnehmen kann:

  • Ein MMF ist die kleinste sinnvolle Funktionseinheit die dem Kunden einen Nutzen bringt.
  • Je schneller man ein MMF liefert desto schneller profitiert der Kunde davon. Dieser Nutzen kann sowohl mehr Funktionalität wie auch grössere Kosteneinsparungen bedeuten.
  • Je eher der Kunde das MMF hat desto eher erfährt man ob das Projekt auf dem richtigen Weg ist und die Ziele auch erreichen kann.
  • Die Reihenfolge in der man die MMF entwickelt kann einen gewaltigen Einfluss auf das finanzielle Ergebnis des Projekts haben.
  • Man soll immer nur das bauen, was man jetzt auch wirklich braucht. Ein Refactoring zu einem späteren Zeitpunkt kostet oft weniger als die Verzögerung durch den Wartungsaufwand von Teilen die man irgendwann vielleicht brauchen wird.
  • Hin und wieder ist die beste finanzielle Entscheidung ein MMF nicht zu entwickeln.

Für diejenigen die im Tagesgeschäft mit Zahlen arbeiten müssen gibt es noch einen weiteren Nutzen. All das was die Entwickler bisher nur mit dem Bauchgefühl erklären konnten lässt sich mit dem Buch durchrechnen. Im Gegensatz zu „The Economics of Iterative Software Development“ kann man mit dem Buch darlegen, wieso sich eine iterative Softwareentwicklung auch finanziell lohnt.

 
Fazit
Um von diesem Buch voll profitieren zu können muss man ein Vorwissen zu BWL haben. Die theoretischen Grundlagen finde ich sehr gut und sollte ich eine auf Zahlen basierte Entscheidung für oder gegen ein SW-Projekt fällen müssen würde ich auf dieses Buch zurückgreifen.

Bei meiner täglichen Arbeit fehlen mir aber die detaillierten Zahlen für Kosten und Nutzen pro Periode. Das Minimum Marketable Feature ist als Gedankenstütze aber auch da sehr nützlich. Je weniger Zeit man hat desto mehr muss man auf die kleinstmögliche Funktionalität mit einem Mehrwert für den Kunden achten.

 
Zum Buch
Software by Numbers – Low-Risk, High-Return Development“ von Mark Denne und Jane Cleland-Huang, 2003 Prentice Hall, ISBN 978-0-131-40728-2, 208 Seiten, Englisch

Schlagworte: , ,

TechDays 2011 in Basel

Anfangs Mai war es wieder so weit: Die TechDays 2011 riefen die .Net Entwickler nach Basel. Für mich waren die grossen Themen der TechDays Silverlight 5 und das Windows Phone 7. Ich hoffte auf etliche neue Ideen sowie zahlreiche Tipps und Tricks. Dies wurde nicht nur erreicht sondern noch übertroffen.

 
Silverlight 5 und Windows Phone 7
Ronnie Saurenmann zeigte die praktischen Neuerungen in Silverlight 5. Die auf Ende Jahr erwartete Version wird das Drucken deutlich beschleunigen. Wenn man mit Vektoren statt mit Rastergrafiken seine Reports drucken kann wird man viel weniger Daten hin und her schieben müssen.

Das Pivot Control wird auch endlich mit zur Laufzeit definierten Werten für die Abfragen auskommen. Man erspart sich damit nicht nur die vorgängige Aufbereitung der Daten, sondern kann viel flexiblere Abfragen machen. Zusammen mit den Animationen wird man nun ein ideales Control für die Datenauswertung bekommen.

Laurent Bugnion machte mit seinen Präsentationen zum Windows Phone 7 (WP 7) eine sehr gute Arbeit. Es hat sich gelohnt nach der Enttäuschung im letzten Jahr bei RIA Services doch wieder seine Präsentationen anzuschauen. Im ersten Teil zeigte er eine grundlegende Einführung zu WP 7 um zu erklären, was Windows Phone eigentlich ist und wie das Ökosystem dazu aussieht. Dazu nutzte er die Applikation, die er schon für seine Präsentation an der MIX im April verwendet hat.

Im 2. Teil ging es dann an die Details wie man so eine Applikation entwickelt. Wie es der Titel “WP7 Deep Dive” erwarten liess wurden dabei viele Punkte angesprochen, die vor allem für diejenigen interessant waren, die bereits fürs WP7 entwickeln. Bugnion konnte dabei unter anderem von seinen Erfahrungen mit der SBB-App berichten.

 
Gute Präsentationen aus der .NET User Group Bern
Kay Herzam und René Leupold hielten die Ende April in Bern vorgestellten Präsentationen. Ich war erfreut wie viele Leute sich „Entity Framework – ein Überblick“ von René anschauten. Obwohl im Raum nebenan Sascha Corti eine Einführung in HTML 5 gab und es sich um den ersten Session Block des 2. Tages handelte, mussten einige Zuhörer dem Vortrag im Stehen folgen.

Den Vortrag von Kay zur Webentwicklung mit ASP.NET und den 2. Teil zu Entity Framework von René konnte ich mir leider erst als Video anschauen. (Die 2 Windows Phone Sessions liefen parallel dazu)
Was ich von meinen Arbeitskollegen zu den Präsentationen hörte war durchwegs positiv und könnte wohl dazu führen das noch der eine oder andere den Weg an ein Treffen der DNUG Bern finden wird.

 
Viel Gutes und nur eine Enttäuschung
Mario Szpuszta lieferte (meiner Meinung nach) die beste Präsentation. Sein Thema „OData und WDF Data Services unter der Lupe“ war genial vorgetragen und eine ideale Kombination aus Humor und technischen Details. Ob man sich schon mit dem Thema beschäftigt hat oder es zum ersten Mal hörte – es war für jeden etwas dabei. Das Video dazu ist zwar gut, es fehlt aber leider all das was Mario auf der Bühne vorgeführt hat.

Mich enttäuschte eigentlich nur die Deep Dive Präsentation zu Expression Blend von Christian Moser. Dies lag vor allem an dem was ich vom Vortrag erwartet hatte. Die unbekannten Features konnte ich nicht finden, dafür waren die gezeigten Möglichkeiten zu sehr an dem was man innert kürzester Zeit selber herausfindet. Es gab zwar auch zahlreiche hilfreiche Tipps, doch für eine Advanced Session schien mir dies alles zu oberflächlich.

Als 100er (Basic) oder 200er (Intermediate) Session wäre die Präsentation sehr gut gewesen. So aber fehlte mir zu viel. Ich kann die Session aber all denen Empfehlen, die schon die ersten Schritte mit Expression Blend gemacht haben und nun gerne mehr wissen möchten.

 
Twitter – nichts für Schweizer Entwickler?
Vor den einzelnen Präsentationen wurde jeweils eine Twitterwall eingeblendet. Wer seinen Tweet mit dem offiziellen Hashtag #chtd versah wurde nicht nur einfacher gefunden, sondern erschien auch auf dieser Twitterwall. Man konnte so sehr schön und fast in Realtime sehen wie die TechDays bei den Entwicklern ankamen. Jedenfalls bei denen die Twitter nutzen.

Mich erstaunte wie gross die Ablehnung gegen Twitter war. Fast in jeder Session hörte man immer wieder ein „Wer braucht den das?“ oder ein „Die meinen auch es würde sich jemand für ihre Meinung interessieren“. Es schien fast als ob Twitter ein Phänomen ist, das an einem grossen Teil der .Net Entwicklern in der Schweiz vorbei gegangen ist. Ist dies wirklich so oder sass ich nur jeweils im falschen Teil der Räume?

 
Präsentationen und Videos
Auf der offiziellen Seite findet man unter Präsentationen / TechDays 11 die Folien und Videos zu den einzelnen Sessions. Leider sieht man jeweils nur was auf die Leinwand projiziert wurde. Bei anderen Veranstaltungen wie der MIX sieht man auch noch den Referenten, was die ganze Sache deutlich interessanter macht. Dies wäre vielleicht noch eine Verbesserung fürs nächste Jahr – oder den Herbst.

 
Nächste TechDays: Im Herbst
Die nächsten TechDays werden im Oktober in Bern stattfinden. Dies da Microsoft die Veranstaltungen besser aufeinander abstimmen will. Wenn ich das Ziel auch sehr gut finde, so scheint mir das Risiko in einem Jahr 2 TechDays durchzuführen sehr gross. Ich befürchte dass sich die Besucherzahlen in Bern in Grenzen halten werden, da 4 Tage Weiterbildung für viele Firmen wohl zu viel sind. Ich bin daher gespannt wie hoch die Eintrittspreise sein werden und was man alles rund um Windows 8 zeigen will.

 
Fazit
Mir gefielen die TechDays 2011 sehr gut. Die Themen im Developer Track passten zu meinen Interessen und hatten durchwegs eine gute Qualität. Wenn es auch noch Platz für die eine oder andere Verbesserung hat, so freue ich mich doch auf die nächsten TechDays.

Schlagworte: , ,

Buch-Rezension zu “Professional WCF 4″

Professional WCF 4: Windows Communication Foundation with .NET 4” von Pablo Cibraro, Kurt Claeys, Fabio Cozzolino und Johann Grabner erschien im Juni 2010 bei Wrox. Die Autoren sind Experten in WCF und lieferten ein Buch mit dem man den Einstieg in WCF wagen kann.

 

Um dem Buch folgen zu können sollte man sich mit C# auskennen. Man muss kein Experte sein, aber man sollte die Grundlagen kennen. Für WCF braucht man kein Vorwissen, da das Buch einem mit allen notwendigen Informationen versorgt.

Neben den Standard-Themen wie Data- und ServiceContracts, Bindings und Security geht das Buch auch auf spezielleres wie Workflows und Windows Azure ein. Zahlreiche Bilder helfen beim Verstehen der einzelnen Schritte und Konzepte. Die einzelnen Kapitel bauen aufeinander auf und sind gut strukturiert.

 
Detaillierte und praxisrelevante Beispiele
Neben den über das ganze Buch verteilten kleinen Beispielen widmen sich 3 ganze Kapitel ausführlichen Szenarien. Diese Anwendungen sind äusserst hilfreich um das Zusammenspiel der einzelnen Teile zu verstehen. Man hat damit eine funktionierende Grundlage die man für die eigenen Experimente problemlos ausbauen kann.

Man sollte sich aber davor hüten produktiven Code nach dem im Buch vorgegebenen Muster zu strukturieren. In eine Datei ICarManagement.cs gehört nur das Interface, nicht noch die DataContracts zur Klasse Car und alle von Car abgeleiteten Klassen. Sobald die Anwendung komplexer wird findet man sich so nicht mehr zurecht. Wie immer gilt auch hier: Nicht blind alles nachmachen.

Trotz dieser Einschränkung finde ich die Beispiele äusserst gelungen.

 
Grammatik: grosses Verbesserungspotential
Bei Amazon gibt es etliche Reviews mit teils haarsträubenden Beispielen für missglückte Formulierungen. Diese lassen sich zum Teil damit erklären, das Englisch nicht die Muttersprache der Autoren ist. Man muss aber leider auch Wrox kritisieren. Beim Editieren hätten nicht so viele Fehler durchschlüpfen dürfen. Es scheint als ob es einen gewaltigen Druck zur Veröffentlichung gegeben hat. Für eine 2. Auflage müsste deutlich mehr in die Qualität investiert werden. Erstaunlicherweise ist das Errata aber bisher leer. Kommt man nicht nach oder haben die Leser erst gar nicht versucht die Fehler zu melden?

 
Fazit
Wer über die grammatikalischen Verfehlungen hinweg sehen kann bekommt mit diesem Buch eine gute Einführung in WCF. Die Autoren kennen sich zweifelsfrei mit dem Thema aus und können dieses Wissen auch weitergeben.

Ich empfehle aber jedem vor dem Kauf einen Blick ins Buch zu werfen und für sich selber zu entscheiden, ob er mit der Sprache zurechtkommt.

 
Zum Buch
Professional WCF 4: Windows Communication Foundation with .NET 4” von Pablo Cibraro, Kurt Claeys, Fabio Cozzolino und Johann Grabner, 2010 Wrox, ISBN 978-0-470-56314-4, 480 Seiten, Englisch

Schlagworte:
Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 297 Followern an