Archiv

Archive for März 2010

Bemerkenswerte Links für den März 2010

31. März 2010 Kommentare aus

Ich hoffe mit meinen Links für den März ein wenig zum Nachdenken über Medien und Unit Tests anregen zu können. Wünsche viel Spass beim lesen.

 

Manipulative Information – Zuspitzen und aufbauschen, bis die Fakten kaum noch erkennbar sind
Die NZZ zeigt mit dem Tagesanzeiger als Beispiel wie auch in der Schweiz der Unterschied zwischen Boulevard und der “seriösen” Presse immer mehr verschwindet. Hier hat sich der Artikel zwar selber dementiert, doch das ist ja nicht immer so. Braucht es bald auch ein Bildblog für die Schweiz?

Wachhunde oder Lemminge? Der Journalismus und die Finanzkrise
Der Spiegelfechter wirft einen Blick auf die Finanzkriese. Dabei wird die Frage aufgeworfen, wo die Wachhunde vor der Krise waren. Denn als jeder die Krise sehen konnten, konnten sie ja plötzlich fundierte Hintergrundberichte liefern. Und seither vergeht ja keine Woche in der nicht erklärt wird, wieso es zu so einer Krise hat kommen müssen. Vielleicht klappt’s bei der nächsten Kriese einige Wochen vor dem Kollaps mit einer kritischeren Berichterstattung.

Fahrenheit 9/9
Es gibt Dinge, die scheinen unmöglich. Bildblog listet eine grosse Zahl von Berichten die von einem Ereignis am 9. September 2001 handeln. Wer sich noch daran erinnern kann wird wissen, dass es der 11. war, an dem die Flugzeuge ins World Trade Center eingeschlagen sind. Der verlinkte Text der NZZ wurde bis heute nicht korrigiert. Es scheint fast als ob man vor lauter Beobachtung des Tagi die eigenen Texte nicht mehr liest. Allerdings ist auch der Tagi in der gleichen “Zeitzone” unterwegs…

Was die Schweiz von Toyota lernen kann
Der Tagesanzeiger hat aber auch einen sehr interessanten Bericht geliefert. Man kann also auch komplexere Themen in einen grösseren Zusammenhang stellen, sich dabei nicht wiedersprechen und erst noch die Leser informieren. Schade das dies immer seltener wird.

Kopieren wird belohnt
Auf Zeit.de wird der Verdacht den sich bei den von mir hier zusammengetragenen Links aufdrängt mit Fakten unterlegt: Nur 11% der Texte sind selber recherchiert oder liefern einen Mehrwert. Der Rest ist ein abschreiben und wiederholen was alle anderen schon gebracht haben. Ein Link würde gleich viele Informationen liefern, aber eben, wer zahlt schon für einen Link? Kann ein Verleger wirklich glauben, man können mit diesen “Plagiatssammlungen” am Ende noch Geld verdienen?

Vom Saulus zum Paulus
Golo Roden bloggte erneut über Unit Tests. Er beschreibt seine anfängliche Skepsis und seine Wandlung vom Saulus zum Paulus in Sachen Unit Tests. Er stellt fest, was auch mir aufgefallen ist: “Unittests vereinfachen die Entwicklung und helfen, sie zielgerichteter und sicherer zu gestalten.” Ich kann jedem der Unit Tests gegenüber skeptisch ist diesen Blogeintrag wärmstens empfehlen.

Buch-Rezension zu “WPF in Action”

15. März 2010 1 Kommentar

WPF in Action with Visual Studio 2008” von Arlen Feldman und Maxx Daymon erschien im November 2008 bei Manning. Nachdem mich das letzte Buch zu WPF schwer enttäuschte, hoffte ich hier auf die gewohnte Qualität von Manning. Und das Buch lohnt sich.

Das Buch passt sehr gut in die “In Action” Reihe. Auch hier ist der Praxisnutzen sehr gross und die Sprache sehr direkt. Die Autoren sind von WPF überzeugt und dies wird unmissverständlich klar gemacht. Das bedeutet aber keinesfalls, das WPF ohne Fehler ist. Auf Probleme, Unstimmigkeiten und fehlende Funktionen wird ebenso deutlich hingewiesen wie auf die guten Teile.

 
Der Weg zu Avalon
Die Einführung zeigt auf, wie weit die grundlegenden Konzepte für die Erstellung von GUIs zurück reichen. Entfernt man die einzelnen Abstraktionsschichten, arbeitet man auch heute noch mit einem Kern, der schon bei Windows 3.x verwendet wurde. WPF macht den lange fälligen Schnitt und nutzt die moderne Hardware, die heutzutage im Einsatz ist.

Die Entwicklung Web- und von Desktop-Applikationen unterscheidet sich deutlich. Beide Seiten haben Vor- und Nachteile, doch waren diese bisher strikt getrennt. Bis jetzt. WPF verwischt diese Grenze und ermöglicht ganz neue Ansätze.

Visual Studio ist die bevorzugte Entwicklungsumgebung für WPF. Kapitel 2 liefert eine Übersicht wo man was für WPF in Visual Studio 2008 findet. Wird irgendwo im Buch etwas neues vorgestellt, wird auch immer erklärt, wie man dies am besten löst. Sei dies der Designer, der Formeditor oder wo man die entsprechende Vorlage für die Klasse finden kann.

 
Ein Taschenrechner zur Einführung
Als erstes grosses Beispiel wird ein Taschenrechner erstellt. Jeder kennt die Funktionsweise und weiss, was ein Taschenrechner machen soll. So kann man sich auf die Implementierung mittels WPF konzentrieren. Das Beispiel ist einfach genug und bietet dennoch zahlreiche Möglichkeiten.

Wie sich die einzelnen Layout-Manager auswirken zeigt sich schön an den Knöpfen des Taschenrechners. Das StackPanel liefert eine ganz andere Darstellung als ein Canvas oder ein Grid. Die gewählte Tabelle die all die Manager auf einer Seite einander gegenüberstellt hilft sehr beim Verständnis.

Die Verwendung von Styles, Templates und Animationen lassen sich hier genauso gut erklären wie das Event-Handling. Die Knöpfe für die 9 Ziffern und 5 Operatoren sind zwar überschaubar, doch man sieht sehr schnell wie viel einfacher alles wird, wenn man Komponenten wiederverwendet.

 
Ein Desktop Wiki als anspruchsvollere Anwendung
Nachdem man mit dem Taschenrechner die grundlegenden Teile aufzeigen konnte, braucht es nun etwas anspruchsvolleres. Dazu wird im dritten Teil des Buches ein Desktop Wiki erstellt. Die vorgeschlagenen Ideen für die Planung der Applikation sind einfach, helfen einem aber sehr. Man sollte sich daher von der Skizze der Applikation nicht abschrecken lassen.

Das Wiki hat einen Bereich zur Eingabe von Text. Da wäre es natürlich schön, wenn man den Text formatieren könnte. Dies dient als Einstieg ins Thema Commands. Damit kann man das GUI auf Befehle wie “linksbündig Ausrichten” oder “Text zentrieren” reagieren. Auch Shortcuts lassen sich damit festlegen.

 
DataBinding: Eine Stärke von WPF
DataBinding kann auf verschiedene Arten erreicht werden. Um ein wenig damit zu spielen, wir das Wiki kurz zurück gestellt und ein Prozess Monitor eingeschoben. Die Klasse System.Diagnostics.Process hat eine Methode GetProcesses, die für dieses Beispiel als Datenquelle verwendet wird. Nach dem Einbinden der Klasse als Ressource kann man die Prozesse bereits anzeigen. Das sieht zwar noch nicht gut aus, aber ein DataTemplate mit den gewünschten Angaben ist schnell definiert.

DataBinding funktioniert auch mit XML. Als passendes Beispiel wird ein Viewer für Common Vulnerabilities and Exposures (kurz CVE) Meldungen erstellt. Die Meldungen liegen als XML-Datei vor und sollen nun mit geringem Aufwand im GUI gezeigt werden. Auch dies ist sehr einfach, wodurch man verschiedene Ansätze für einen Master-Detail Report besprechen kann.

Das Model-View-ViewModel (MVVM) Pattern wird ebenfalls kurz angesprochen. Dieser Teil hätte gerne noch ausführlicher sein können.

 
Von Grafiken und der letzten Meile
Auch hier wird zwischen 2D und 3D Grafiken unterschieden. Das Zeichnen von 2D Grafiken wird mittels Shapes, direct Rendering und Visuals gezeigt. Die einzelnen Methoden mögen für einfache Grafiken unnötig erscheinen. Sobald es aber komplexer wird, ist man froh für diese Auswahl.

Teil 4 behandelt Themen, die für die Bereitstellung der Applikation hilfreich sind oder neue Möglichkeiten eröffnen. Dies umfasst navigierbare Fenster, WPF im Webbrowser, ClickOnce zur Verteilung der Applikation, Drucken und Threading.

 
Ein Vergleich zu “Windows Presentation Foundation .NET WPF”
Im Gegensatz zu “Windows Presentation Foundation .NET WPF” sind die Fehler nicht der Rede wert. Hier mal ein D statt einem d in einer Tabelle von Optionen oder ein “oneway” zu viel im Satz. Referenzen sind korrekt, Bilder zeigen was sie zeigen sollen, Methoden heissen auch so und es gibt grosse, zusammenhängende Beispiele. MEAP hat auch hier geholfen, die Qualität während der Erstellung zu erhöhen. In der Sandbox kann man ein Errata rund 6 Monate vor dem Erscheinen des Buches finden, das noch sehr umfangreich war. Aber eben, 6 Monate bevor man das Buch verkauft hat, nicht danach.

Was die behandelten Themen betrifft, sind die Bücher vergleichbar. Es ist aber erstaunlich, wie viel mehr Inhalt WPF in Action liefert – dabei erst noch billiger ist und auch ein gratis E-Book ohne DRM beinhaltet.

 
Fazit
Der Schwerpunkt liegt im Vermitteln der Zusammenhänge und dem “Big Picture” und nicht in der Detailtiefe. Den Autoren gelingt es mittels zahlreicher Beispiele sehr gut einem WPF näher zu bringen. Man kann die Beispiele meistens einfach nachprogrammieren oder auf der Webseite zum Buch herunterladen. Diese sind einfach, aber bieten dennoch immer einen Nutzen. Die zahlreichen Informationen über Fehler und Unschönheiten bei WPF und wie man diese umgehen kann erleichtern die Arbeit. Der Praxisnutzen ist so ganz klar vorhanden.

Wer sich in WPF einarbeiten will, bekommt mit dem Buch eine sehr gute Einführung. Ich kann dies voller Überzeugung weiterempfehlen.

 
Zum Buch
WPF in Action with Visual Studio 2008” von Arlen Feldman und Maxx Daymon, 2008 Manning, ISBN 978-1-933-98822-1, 520 Seiten

Schlagworte: , ,

Buch-Rezension zu “The Passionate Programmer”

9. März 2010 Kommentare aus


The Passionate Programmer – Creating a Remarkable Career in Software Development” von Chad Fowler erschien im Mai 2009 bei The Pragmatic Programmers.

 

Wie es der Titel des Buches vermuten lässt, geht es um die Planung der Kariere als Software Entwickler. Die Grundidee des Buches ist es, seine Kariere als sein Geschäft sehen. So wie ein Geschäft braucht auch die eigene Laufbahn Aufmerksamkeit. Dies ist einfacher gesagt als getan. Um dies umzusetzen bietet das Buch eine Reihe von nützlichen Tipps. Je nach Phase in der man sich befindet gibt es andere Herausforderungen. Das Buch trägt dem Rechnung und gliedert sich in diese Teile:

  • Wähle deinen Markt
  • Investiere in dein Produkt
  • Ausführung
  • Marketing
  • Auf der Höhe der Zeit bleiben

Das Buch ist sehr einfach zu lesen. Die 53 Kapitel sind in der Regel zwischen 2 und 5 Seiten lang. Die einzelnen Aspekte werden so sehr kompakt angesprochen. Am Ende jedes Kapitels gibt es eine Anregung wie man das im Kapitel behandelte Thema umsetzen kann.
Die 4 folgenden Kapitel fand ich sehr wichtig und stelle ich daher kurz vor.

 
Der Schlechteste sein
Das bedeutet nicht, das man eine schlechte Arbeit machen soll. Ganz im Gegenteil. Man soll sich mit Leuten umgeben, die besser sind als man selber. Umgibt man sich mit Leuten die besser sind, färbt dies auf einem ab. Man sieht wie sie Probleme lösen, was sie sich für Gedanken machen und was sie alles Bedenken. Dies gibt einem selber neue Ideen um an Probleme heranzugehen.
Ist man selber Teil der Besten oder sogar der Beste, fehlt diese Herausforderung.

 
Lernen wie das Unternehmen funktioniert
Software soll entweder dabei helfen Kosten zu senken oder Geld zu verdienen. Egal in welchem Bereich man auch tätig ist, eines dieser beiden Ziele ist eigentlich immer der Grund für die Arbeit. Daher ist es wichtig, zu wissen wie das Unternehmen funktioniert und womit es sein Geld verdient. Nur wenn man dies weis kann man im Sinn des Unternehmens handeln. Dieses Wissen gilt es sich anzueignen.

 
Arbeit automatisieren
Unsere Arbeit kostet Geld – viel Geld. Damit wir das Geld wert sind, müssen wir mehr leisten als diejenigen, die für weniger Geld arbeiten. In der Software-Entwicklung gibt es unzählige repetitiven Arbeiten. Da man diese immer und immer wieder macht, sind sie ideale Kandidaten für eine Automatisierung. Die Kosten fallen bei Automatisierung einmalig an und können mit jeder automatischen Ausführung amortisiert werden. Die gleiche Arbeit wird so in kurzer Zeit zu deutlich geringeren Kosten erledigen. Damit steigt nicht nur die Produktivität, sondern man hat auch Zeit um sich interessanteren Arbeiten zu widmen.

 
Keine Panik
Steht man vor einem Problem ist es wichtig, nicht in Panik zu geraten. Panik verhindert das man die richtigen Entscheidungen trifft und das Problem lösen kann. Vorschnelle Aktionen können leicht aus einem Problem ein Desaster machen. Einige Male tief Luft holen und die Ursache abklären bevor man handelt ist ein guter Tipp. Wem dies nicht genügt, kommt vielleicht mit dem Panik-Journal wie es Fowler vorschlägt besser zurecht. Sich im Nachhinein mit den Situationen zu beschäftigen, bei denen man in Panik geriet kann in der Zukunft helfen, diese zu verhindern.

 
Fazit
Chad Fowler bringt zahlreiche gute Ideen in seinem Buch unter. Man selbst muss sich um seine Kariere kümmern, da es sonst niemand macht. The Passionate Programmer geht aber weiter als nur die Kariere zu bedenken. Das was man macht soll man aus Leidenschaft machen. Damit ist dieses Buch auch etwas für Leute, die sich nicht nur um ihre Laufbahn kümmern wollen.

 
Zum Buch
The Passionate Programmer – Creating a Remarkable Career in Software Development” von Chad Fowler, Mai 2009 bei The Pragmatic Programmers, ISBN 978-1-934356-34-0, 200 Seiten

Schlagworte:

Kopieren eines Subversion Repository

7. März 2010 Kommentare aus

Bei den Abklärungen zum Umzug von AtaraxiS habe ich mich mit dem Kopieren des Subversion Repository beschäftigt. Dabei fand ich 2 Varianten, die je nach Situation verwendet werden können.

 
Kopieren mittels svnadmin
Der einfachste Weg ein Subversion Repository zu kopieren ist das erstellen eines Dump mittels svnadmin. Dieser kann danach ins neue Repository importiert werden. Der Umzug der Daten von RepoA ins neue RepoB kann so durchgeführt werden:

svnadmin dump RepoA > RepoA.dump
svnadmin create RepoB; svnadmin load RepoB < RepoA.dump

Diese Lösung ist der empfohlene Weg. Allerdings muss svnadmin dazu auf dem Server ausgeführt werden, auf dem das Repository liegt. Fehlt einem der Zugang zum Server, ist dieser Ansatz nicht umsetzbar.

 
Kopieren mittels svnsync
Kann man svnadmin nicht verwenden, kann gibt es noch eine andere Möglichkeit. Sofern das Repository nicht all zu alt ist (1.4 oder neuer) kann man svnsync verwenden. Im Blog Paul’s Journal fand ich eine praktische Anleitung, die ich hier leicht abgeändert wiedergebe.

Der Ablauf für diese Art des Kopierens ist ein wenig umfangreicher:

export TOREPO=RepoB
mkdir $TOREPO
svnadmin create $TOREPO
cd $TOREPO
cat > hooks/pre-revprop-change <<EOF
#!/bin/sh

EOF
chmod 755 hooks/pre-revprop-change
cd ..
svnsync init file:///home/jgr/tmp/$TOREPO https://ein.entfernter.Server/repos/RepoA
svnsync --non-interactive sync file:///home/jgr/tmp/$TOREPO
svnadmin dump $TOREPO > {$TOREPO}.dump

Erst wird ein leeres Repository erstellt. Um ein wenig flexibler zu sein, ist der Namen des Zielrepository als Variable TOREPO definiert. Svnsync benötigt das Hookscript pre-revprop-change, das in dem Fall hier nichts machen soll. (Unter Windows genügt dafür eine leere *.bat Datei)
Ist das Repository bereit, kann man svnsync initialisieren und danach mit der Synchronisierung beginnen. Je nach Netzverbindung und Grösse des Repository kann dieser Vorgang einige Zeit dauern.
Am Ende empfiehlt es sich einen Dump zu erstellen. So braucht man beim nächsten Anlauf nicht wieder alle Daten übers Netzt zu kopieren.

 
Weitere Informationen
Wer gerne noch mehr zu dem Thema wissen möchte, sollte sich das SVN Buch von Red Bean anschauen. Auch die Kommentare zum Blogeintrag von Paul sollte man sich anschauen.

Schlagworte:

Buch-Rezension zu “Windows Presentation Foundation .NET WPF”

3. März 2010 1 Kommentar

Windows Presentation Foundation .NET WPF” von Jörg Wegener erschien im Dezember 2008 bei HANSER. Es behandelt die neue Technologie von Microsoft für die Entwicklung von Benutzeroberflächen in .Net. Die Buchrückseite preist das Buch als Leitfaden für den praktischen Einsatz. Im Mittelpunkt stehe weniger das “Was”, als vielmehr das “Wie”. Entsprechend freute ich mich auf ein hilfreiches Praxisbuch.

 
Der Inhalt
Die Einführung beschreibt die Hintergründe von WPF und wieso Microsoft eine neue Benutzerschnittstelle entwickelt hat. Klar und Verständlich werden die Vorteile der Vektorgrafik dargelegt. Das Kapitel zur Extensible Application Markup Language, kurz XAML, ist ebenfalls sehr gut gelungen. Mit wenig Worten gelingt es Wegener aufzuzeigen, wie die einzelnen Teile ineinander greifen.

Im Kapitel Layout werden die einzelnen Möglichkeiten zur Gliederung der Oberflächen vorgestellt. Hat man schon mit Java grafische Oberflächen entwickelt, kommen einem die Layouts sehr bekannt vor. Die Namen mögen stellenweise anders sein, die grundlegende Funktionsweise ist aber fast identisch.

Die Verwendung von Styles und Templates ist sehr mächtig und wird eingehend beschrieben. Das Thema Databinding findet ebenso Platz wie 2D-Grafiken und Multimedia. Ebenfalls angesprochen werden 3D-Grafik, Animationen, eigene Steuerelemente, Dokumente und Drucken. Es hat auch noch Platz für Mehrsprachigkeit und Browseranwendungen. Bei letzterem merkt man aber wie schnell die Zeit vergeht. Bei der Erstellung des Buches war Silverlight ein mit JavaScript angereichertes XAML. Entsprechend kurz ist der Abschnitt dazu. Heute käme man damit nicht mehr durch.

 
Die Schwächen
Die durchwegs positiven ersten Kapitel werden leider zu schnell durch die Fehler getrübt. Das fängt bei kleinen Buchstabendrehern an und geht dann richtig los. Nicht zum Text passende Grafiken (wie Abbildung 6.5) gehören zu den kleineren Fehlern. Zu oft ist die Nummer falsch oder die Grafik fehlt ganz. Das beschränkt sich leider nicht auf ein Kapitel, sondern verteilt sich quer durch das ganze Buch. Wenn gar auf falsche Kapitel verwiesen wird, stellt sich mir schon die Frage, ob das Buch vor dem Druck geprüft wurde.

Dagegen sind falsche Variablen in den Listings schon fast wieder Kleinigkeiten. (Als Beispiel: in 14.15 wird die Variable document initialisiert, aber doc verwendet.) Für ein Praxisbuch unhaltbar sind die vielen falsch betitelten Eigenschaftsfelder. Wenn man schon bei jeder sich bietenden Gelegenheit auf den grossen Praxisnutzen des Buches hinweisen muss, darf so etwas nicht in dem Umfang passieren. Das Errata ist schon jetzt viel zu gross und man findet problemlos noch weitere Fehler.

Neben diesen ganz klaren Fehlern gibt es noch etliche Punkte, über die man debattieren könnte. Ich fand die unzähligen Füllsätze und wiederholende Abschnitte mühsam. In Kapitel 9 bei Multimedia findet sich dieser Satz:

Eine Alternative wird aber am Ende des Kapitels beschrieben.

Dieses Ende des Kapitels folgt ein Hinweisblock später. Den Verweis streichen, den Hinweisblock an einer passenderen Stelle platzieren und man könnte gleich hier die Alternative beschreiben. Dies würde das Buch aber um 2 Seiten kürzen…

Das Kapitel zu 3D-Grafik wurde wohl nachträglich umgestellt. Sowohl bei Kamera wie auch bei Licht wird erwähnt das diese gleich wie 3D-Modelle hinzugefügt werden. Allerdings werden die 3D-Modelle erst ein Kapitel später vorgestellt. Ich würde da eher eine andere Abfolge der Beschreibung wählen oder einen Hinweis aufs entsprechende Kapitel liefern. So blättert man zurück und sucht das Kapitel. Hätte ja sein können das man es überlesen hat.

Das komplexe Figuren in 3D immer auf Dreiecke zurück zu führen sind, wird ebenfalls immer wieder erwähnt. Ein entsprechendes Beispiel kommt aber ebenfalls erst bei 3D-Modellen hinterher. Bis das dann endlich als Grafik gezeigt wird, hat man es 3 mal in Textform erklärt. Ist dies wirklich nötig?

Bei der Mehrsprachigkeit zeigt man in Abbildung 15.1 die unterschiedliche Darstellung von arabischem Text und Zahlen, je nach Einstellung des umgebenden Controls. Allerdings wird man es per Sprachumstellung nie auf diese Ausgabe bekommen. Die beiden Summanden wurden in der 2. Zeile vertauscht. Ein weiterer kleiner Fehler, den es nicht gebraucht hätte.

 
Gesucht: Beispiel mit Praxisbezug
Was ich bei dem Buch aber am meisten vermisse, ist ein grösseres Beispiel mit Bezug zur Praxis. Es gibt zwar unzählige kleine Beispiele, aber die haben alle die Grössenordnung von 2-3 Controls. Unzählige kleinste Teile werden beschrieben und erklärt. Es fehlt aber der Schritt, an dem man diese nimmt und zu einer Anwendung kombiniert.

Ansätze davon sind sogar vorhanden. Es wird häufig ein Customer-Objekt dargestellt. Statt immer wieder zu erwähnen das man auf das nicht weiter eingeht, hätte man eine kleine Kundenverwaltung aufbauen können. XML zur Datenspeicherung wird bei Databinding erklärt, ebenso hat man dort schon das GUI um den Kunden anzuzeigen. Ein klein wenig mehr Aufwand und man hätte den so oft gepriesenen Praxisnutzen. So aber hat man einen Haufen Einzelteile, der nicht wirklich einen Mehrwert gegenüber der Dokumentation im MSDN bietet.

 
Fazit
Zu viele Fehler, zu viel “Füllmaterial” und zu wenig Praxisnutzen. Die Ansätze sind gut, die ersten Kapitel wie erwähnt sehr gelungen. Doch sobald die spannenden Teile von WPF behandelt werden, geht es qualitätsmässig nur noch hinunter. Leider.

Natürlich bin ich von Manning und der “In Action”-Serie enorm verwöhnt. Aber dennoch: Mir genügt es nicht, dass der Text in besserem Deutsch geschrieben wurde als es die automatische Übersetzung von MSDN hin bekommt. Zumal es MSDN schafft, die Felder korrekt zu benennen und praktische Beispiele zu liefern.

Die Grundlage für ein gutes Buch wäre an sich vorhanden. Mit ein wenig mehr Aufwand, besserer Qualitätskontrolle und grösseren Praxisbeispielen könnte man aus dem Buch sehr viel machen. Vielleicht nutzt man die Chance beim bald erscheinenden WPF 4.

Das wäre, könnte und sollte kann ich aber hier nicht berücksichtigen. Es ist nun mal nicht da und das was da ist, ist kein gutes Buch. Ich bin sehr enttäuscht und werde vor allem die vielen Fehler in Erinnerung behalten. In der aktuellen Form ist es für mich das Geld schlicht nicht wert. Auf das Buch dann auch noch den Stempel “Kompetenz gewinnt” zu setzen grenzt schon an Frechheit.

 
Zum Buch
Windows Presentation Foundation .NET WPF – Grafische Benutzerschnittstellen mit .Net 3.5” von Jörg Wegener, 2008 HANSER, ISBN 978-3-446-41041-1, 566 Seiten

Schlagworte: ,
Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 245 Followern an