Email to Torsten Weber
Feed Icon
.NET User Group Leipzig

Autogramm von Ralf Westphal in .NET kompaktVor einiger Zeit hatte mir Ralf Westphal ein Rezensionsexemplar seines und Christian Weyers Buch .NET 3.0 kompakt geschickt. Die beiden habe ich im Sommer 2003 beim .NET Summercamp kennengelernt, die die .NET User Group Leipzig schon seit einiger Zeit in eigener Regie organisiert¹. Seitdem haben wir uns näher kennengelernt, nicht nur, weil ich damals für .NET kompakt ein Autogramm haben wollte und Ralf im ersten Moment ziemlich perplex deswegen war. Meine Antwort damals auf seine "Schreibblockade" beim Autogramm war: "Wer Bücher schreibt, muss auch Autogramme geben" und schon hatte ich eines, nachdem sich Ralf dafür selber einen Text dazu einfallen musste. Das von Christian Ad hoc als Text vorgeschlagene "In Liebe" hat er dann doch nicht geschrieben. ;)

Damit gleich zur Frage – kann man mit dem Buch .NET 3.0 kompakt ".NET lieben lernen"? Was ist .NET eigentlich, in was man sich möglicherweise verliebt? Ist das etwas Ernstes, Sinnvolles fürs Leben oder ist es nur einfach wieder ein Hype, quasi wie eine Affäre, nichts langfristiges und auf lange Zeit reizvolles?

.NET 3.0 kompaktSchon bei der Einführung von .NET 1.0 im Jahr 2002 war .NET nicht leicht zu umreißen, zumal plötzlich der Begriff bei den gängigen Produkten von Microsoft wie den Serverbetriebssystemen vom Marketing als Attribut regelrecht missbraucht wurde. .NET war inhärent dabei, selbst, wenn es das nicht war. Schon mit dem Buch .NET kompakt hat Ralf meiner Meinung nach sehr nachvollziehbare Argumentationsketten geschrieben, was .NET ist und was nicht. Auch bei .NET 3.0 kompakt hat er, dieses Mal zusammen mit Christian, das erneut getan. Dass Ralf ab und zu zulässige, aber für den einen oder anderen Leser etwas an gewöhnungsbedürften Formulierungen verwendet wie ein "... stellt sich wie schon in .NET 2.0... was denn .NET überhaupt sei?" statt einem "was denn .NET überhaupt ist" oder "... der .NET Framework... " statt "das .NET Framework"² tut dem Inhalt nichts ab. Ich finde, das ist irgendwie ein Markenzeichen von Ralf. Doch zurück zu der Frage, ob .NET etwas fürs Leben ist. Das muss jeder selber entscheiden und auch .NET hat irgendwann wie alles einen Nachfolger. Das Buch hilft bei einer Einschätzung dabei und stellt einleitend neben der Beantwortung der Frage was .NET ist und was nicht, auch das veränderte Ökosystem in diesem Umfeld dar. Mit Ökosystem ist dabei das Wirkungsgefüge bei der Softwareentwicklung und mit Veränderung der Weg vom Generalisten zu Spezialisten gemeint. In den wenigsten Büchern steht so was, zumeist werden die jeweiligen Technologien wie ADO.NET oder ASP.NET bzw. ganz dedizierte Themen wie Smart Clients mit .NET in den Vordergrund gerückt aber eine wichtige Einordnung dieser Themengebiete und Hinweise auf Lernkurven fehlen².

Ich bin kein Freund von ewig langen Rezensionen von Büchern, es sei denn, es geht um eine akademisch anspruchsvolle Analyse oder eine Rezension von Ausmaßen der eines Marcel Reich-Ranicki oder Hellmuth Karasek. Zumeist geht es mehr oder weniger um eine Kaufempfehlung für die potentiellen Leser. Ist das Buch gut lesbar oder nicht? Hat es eine klar definierte Zielgruppe oder nicht und trifft der Inhalt die Bedürfnisse dieser? Kommt es mit einer großen Aufmache aber beinhaltet nur heiße Luft? Nicht selten hat ein Buch bei Amazon & Co. schon eine negative Rezension von Kunden bezüglich dieser Punkte erhalten. Demzufolge dürfte es sich um das handeln, was es potentielle Käufer interessiert: Was steht also in dem Buch und wie ist dieser Inhalt? Lohnen sich 17 EUR für Christians und Ralfs Buch?

Das Buch geht auf 221 Seiten auf folgende Inhalte ein

  • Was .NET ist
  • Welche Leistungsmerkmale von .NET 2.0 / 3.0 die Softwareentwicklung weiter vereinfachen
  • Wie Workflows in Anwendungen Einzug halten können
  • Wie der SAA-Standard (CUA) überwunden und neue Oberflächen entworfen werden können
  • Wie Systeme miteinander verbunden werden können
  • Was nach .NET 2.0 / 3.0 kommt

Resultat: Für alle die, die .NET als etwas nicht fassbares, als eine Art "Wolke" Technologie empfinden, ist das Buch lesenswert. Der Begriff .NET wird verständlicher, auch wenn er dadurch nicht unbedingt sofort greifbarer wird, denn wie "ein Mycel durchdringt es die Produkte und Technologien von Microsoft"4. Eingangs wird des Öfteren auf .NET kompakt verwiesen aber ich denke, für jeden .NET-Beginner reichen die Erläuterungen in .NET 3.0 kompakt. Wer .NET wiederum schon kennt, bekommt im Managerstil kurz und prägnant die mit .NET 2.0 / 3.0 verbundenen Neuerungen. Wer dann Lust auf Extension Methods, Lamba-Ausdrücke, Anonyme Typen oder gar LINQ verspürt, findet zwar immer ein kleines Beispiel, aber um von einem "ich hab's mal gesehen" zu "ich kann es anwenden und weiß auch wo und wann" zu kommen, reichen die Inhalte im Buch bei Weitem nicht . Ist das schlimm? Nein, ich finde damit entspricht es sicherlich der Zielgruppe und auch deren Erwartungen und so kann ich es .NET-Beginnern und auch den -Entwicklern, die einen Überblick über neues im .NET-Universum haben möchten, nur empfehlen.

--

Was ist mir bei der Lektüre aufgefallen? Einfach so drauf los geschrieben:

  • Bei domänenspezifischen Sprachen sind die Autoren durcheinandergekommen: Sie schreiben von "domänenspezifischen grafischen", dann von "grafischen domänenspezifischen" Sprachen sowie "grafischen Programmiersprachen". Besser ist: Visuelle domänenspezifische Sprachen. Siehe Seite 6, 19 und 209.
  • Die Autoren schreiben von der Trennung von Programmcode vom HTML einer Webanwendung und dem Namen dieser Technologie als Code Behind. Der geneigte Leser mag vielleicht denken, dass diese Technologie auch bei .NET 2.0 so heißt. Sie heißt hier ein wenig anders, nämlich Code Beside5. Mit Code Beside kommt die Mächtigkeit dieser Technologie besser zum Ausdruck. Da läuft nicht ominös und nicht-transparent Anwendungscode im Hintergrund, sondern fügt sich neben selbst geschriebenen Anwendungscode und weiteren Beschreibungssprachen nahtlos ein. Diese Technologie ist auch als ein Unterschied der Modellgetriebenen Architektur (MDA; engl. Model Driven Architecture, MDA) zu den domänenspezifischen Sprachen zu sehen. Während bei MDA Anwendungscode in dafür vorgesehende Slots eingefügt wird, wird beim Ansatz der DSLs Anwendungscode neben dem generierten Anwendungscode gestellt. Siehe Seite 22, 105, 110, 128 und noch ein paar Mal mit Buch irgendwo.
  • Ich denke "Werttyp-Daten" gibt es nicht und verwirrt nur, besser wäre einfach "Werttypen". Siehe Seite 26.
  • Wissen die Leser was mit "... Boxing führt zu einem erhöhten Druck auf den Heap..." gemeint ist? Ich habe da meine Bedenken – es ist ein unglücklich gewähltes Bild. Siehe Seite 27.
  • "... den Delegaten-Typ Predicate<T> haben Sie oben ja schon..." – nur leider ist "oben" Seite 33. Ein Buch wird nicht unbedingt linear vom Anfang zum Ende gelesen. Ein Verweis von Seite 47 auf Seite 33 ohne Seitenangabe ist sehr unschön.
  • Wir – gemeinsam sind wir stark! Die wichtigste Regel, die leider aber von den wenigsten Autoren beherzigt wird, ist, nicht in der Wir- oder in der Uns-Form zu schreiben. Sehr fraglich, warum das durch das Lektorat gegangen ist, bei den meisten Verlagen ist es absolutes Tabu. Christian wird sich vielleicht noch an das "Wie geht's und denn heute?" erinnern: Vielleicht sind die paar "Wir" eine Hommage an die Kellnerin des Marriott? ;) Im Buch insbesondere ab Seite 61 ff. zu finden.
  • "... Bildschirmfoto...", "... Exempel..." – vielleicht meinte der Autor ja "example"? Ein Exempel lässt die Lateiner (lat. exemplum) aufhorchen, denn es ist ein warnendes Beispiel und man spricht daher auch vom Exempel statuieren. Bestimmt ist statt Exempel Beispiel gemeint. Gesehen auf Seite 67, 68 und 98.
  • Zwischen dem Kapitel "Code vereinfachen" und "Logik fließen lassen" gibt es einen Stilbruch. Das Kapitel "Code vereinfachen" ist sehr technisch, arbeitet dazu mit wenig bildhaften Darstellungen und enthält sehr viele Fachbegriffe. Das Kapitel "Logik fließen lassen" ist sehr locker geschrieben, und enthält viele Fakten. Das gilt auch für die beiden folgenden Kapitel "Oberfläche aufpeppen" und "Systeme verbinden". Das vorletzte Kapitel "Jenseits von .NET 3.0" ist wiederum im Stil wie "Code vereinfachen" geschrieben. Bei den genannten drei Kapiteln in der Mitte hätte ich mir also weniger Fakten und dafür ein paar mehr Visionen, halt etwas Raum für Ideen was man damit machen kann, gewünscht.
  • Das Kapitel "Logik fließen lassen" ist mir persönlich zu lang geraten. Nach etwas mehr als der Hälfte des Kapitels mit insgesamt 43 Seiten, musste ich schauen, wie viel noch kommt. Drei, vier Seiten weniger, damit weniger über Activity-Kategorien, weniger über HandleExternalEventActivity und mehr was man damit machen kann, als wie es funktioniert und das Kapitel wäre optimal.
  • "Sie riechen auch... sicherlich... einen erhöhten Mehraufwand in der Programmierung... mit den richtigen Werkzeugen... werden diese... Konzepte schnell automatisiert genutzt werden können." Wo sind Verweise auf das Web? Wo sind Verweise auf Literatur? Das sich irgendwie, irgendwann irgendetwas, irgendwo für die Windows Communication Foundation schon finden wird, ist klar. ;). Gesehen auf Seite 155.
  • Sehr gut finde ich, dass die beiden Autoren Web Services "zurechtstutzen". Sie sind "... im WCF-Kontext nur ein kleines Implementierungsdetail in Form eines Bindings...". Vollkommen richtig, doch nach wie vor sind leider einige Berater nicht nur im Bezug auf die Windows Communication Foundation gegenüber "eine Serviceorientierung heißt nicht Web Service-Orientierung" resistent. .NET-Einsteigern sollte das von Anfang an bewusst sein. Gefunden auf Seite 161.
  • Manche der Abbildungen sind ganz "schrecklich" – sie haben einen schwarzen Hintergrund. Siehe Seite 99, 128 und Seite 179.
  • Die Autoren schreiben, dass Iteratoren und Generics nur eher Verfeinerungen und evolutionäre Schritte gegenüber beispielsweise partiellen Typen sind, die einen größeren Impact haben sollen. Ich finde das stimmt nicht. Sicherlich gibt es solche Techniken schon länger, wie den Templates bei C++ und es gibt auch viel mächtigere Vorangehensweisen wie non-invasive Frames und auch ich hätte mir Generics schon bei .NET 1.0 gewünscht – aber das sie nur eine Verfeinerung sein sollen, würdigt nicht ihre Bedeutung. Mit Generics können Entwurfsmuster wie das Singleton variabel gemacht werden, Generics ermöglichen erst die ab der Aussage, dass es sich bei nur um Verfeinerungen handelt, kommenden 24 Seiten über LINQ & Co. Generics finden eine breite Anwendung. Sie sind mehr als eine einfache Verfeinerung. Warum das auch so in einem früheren Kapitel mit "Generics sind wahrscheinlich das am meisten thematisierte Sprachfeature des .NET Frameworks 2.0... eine gleichermaßen grundlegende wie rundum positive Erweiterung... kaum noch ohne sie auskommen werden." steht? Ich denke da war nicht ein- und derselbe Autor am Werk. Siehe Seite 27 und 185.
  • Im Kapitel "Weiterführende Informationen" und dort in den Abschnitten "Literatur" sowie "Links" werden Verweise auf das Internet in Form einiger langer URLs aufgeführt. Ich finde, URLs mit um die 20 Zeichen und mehr sind out, nicht nur, weil Verweise ins Internet relativ schnell veralten. Da muss was anderes her, sei es in der Form wie tinyurl oder einem Werkzeug dafür, sobald es mehr Verweise werden (wie in Programmieren mit dem .NET Compact Framework – ohne jetzt dafür Werbung machen zu wollen und nur weil Ralf diese Lösung selbst gelobt hat). Siehe Seite 210 ff.
  • Im Buch wird "Fließquelltext" verwendet; dass erste Buch, was mir in dieser Form aufgefallen ist. Das gefällt mir sehr gut.

¹ Das nächste .NET Summercamp läuft vom 24.09. - 28.09.2007 – Informationen dazu gibt es hier.
² Specializing Generalist – das ist die "besondere" Ausprägung vom Weg zur Spezialisierung. Was soll es ausdrücken? Am besten passt ein Verweis: David Perkins is a specializing generalist. This means that David has applied his general skill set into multiple types of specialized roles. David has consistently used his general skills of problem solving, process identification, and planning to achieve superior results. David has specialized his general skills into the areas of business analysis, solution architecture, high reliability software development, systems engineering, process procedure implementation and project management.
³ Das .NET Framework oder der .NET Framework? Welcher Artikel ist richtig? Für das Genus gibt es bei Entlehnungen bzw. Fremdwörtern zwar keine festen Regeln, aber bestimmte Prinzipien. Ein häufig angewandtes Prinzip ist, dass das Genus der deutschen Entsprechung oder eines sinnverwandten deutschen Wortes übernommen wird. Das wäre bei -work "_das_ Werk". Das komplexe Wort "Framework" hat die Struktur einer Zusammensetzung, wo das Zweitglied Wortart, bei Substantiven auch das Genus und die Bedeutung bestimmt (NET ist dann wieder eine nähere Bestimmung dazu). Man kann sich also auch an analogen Fällen wie _Teamwork, Network_ orientieren, die beide sächlich sind. Teamwork findet man auch im Rechtschreibduden, Network immerhin im "Duden. Deutsches Universalwörterbuch". Die Unsicherheit entsteht sicher hier auch dadurch, dass ".NET Framework" wie ein Eigenname meist ohne Artikel verwendet wird.
Quelle: Frau Dr. Hannelore Poethe von der Universität Leipzig.
4 S. 7
5 Alex Kommentar: Bei ASP.NET 2.0 heißt das Tag, sicher aus Gründen einer Abwärtskompatibilität, immer noch codebehind.

All comments require the approval of the site owner before being displayed.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, sup, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview

Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber
Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber

Torsten Weber is a MVP for Device Application Development

Calendar of the .NET User Group Leipzig

Microsoft Community Leader/Insider Program

Programmieren mit dem .NET Compact Framework. Anwendungsentwicklung für mobile Geräte.

Microsoft – change the mobile world or go home!

Categories

Calendar

<December 2008>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Archive

My subscribed blogs

show all
show less
Blogs of good friends (as OPML)
More Blogs (as OPML)
RSS: .NET Casts .NET Casts
RSS: .NET Compact Framework Team .NET Compact Framework Team
RSS: Alan Cameron Wills Alan Cameron Wills
RSS: Alex Feinman Alex Feinman
RSS: Alex Januschewsky Alex Januschewsky
RSS: Alex Yakhnin Alex Yakhnin
RSS: Alexander Wechsler Alexander Wechsler
RSS: Alexander Zeitler Alexander Zeitler
RSS: Amit Chopra Amit Chopra
RSS: Anand Balachandran Anand Balachandran
RSS: Anthony Wong Anthony Wong
RSS: Ausgefallene Gadgets & Ideen Ausgefallene Gadgets & Ideen
RSS: Barry Bond Barry Bond
RSS: Boas Enkler Boas Enkler
RSS: Calvin Hsia Calvin Hsia
RSS: Chris Eberl Chris Eberl
RSS: Chris Lorton Chris Lorton
RSS: Chris Tacke Chris Tacke
RSS: Christian Weyer Christian Weyer
RSS: Christopher Fairbairn Christopher Fairbairn
RSS: ComputerBase News ComputerBase News
RSS: Cordula Lochmann Cordula Lochmann
RSS: Dan Elliot Dan Elliot
RSS: Daniel Chong Jyh Tar Daniel Chong Jyh Tar
RSS: Daniel Fisher Daniel Fisher
RSS: Daniel Melanchthon Daniel Melanchthon
RSS: Daniel Moth Daniel Moth
RSS: Dave Baker Dave Baker
RSS: David Kline David Kline
RSS: Dirk Primbs Dirk Primbs
RSS: DotNetGerman Bloggers DotNetGerman Bloggers
RSS: e-commerce blog e-commerce blog
RSS: Erich Holzbauer Erich Holzbauer
RSS: Florian Mätschke Florian Mätschke
RSS: Frank Fischer Frank Fischer
RSS: Gareth Jones Gareth Jones
RSS: George Mathew George Mathew
RSS: Gurbir Singh Gurbir Singh
RSS: Guy Burstein Guy Burstein
RSS: Hannes Preishuber Hannes Preishuber
RSS: Hard Tecs 4U News Hard Tecs 4U News
RSS: Heike Scholz Heike Scholz
RSS: heise online News heise online News
RSS: HoppeRx HoppeRx
RSS: IE Mobile Team Weblog IE Mobile Team Weblog
RSS: Inside Bennie Inside Bennie
RSS: Inside Microsoft Inside Microsoft
RSS: Jack Greenfield Jack Greenfield
RSS: James Pratt James Pratt
RSS: Jason Hogg Jason Hogg
RSS: Jason Langridge Jason Langridge
RSS: Jens Häupel Jens Häupel
RSS: Jezz Santos Jezz Santos
RSS: Jim Wilson Jim Wilson
RSS: Johanna Merhof  Johanna Merhof
RSS: José Gallardo Salazar José Gallardo Salazar
RSS: Josh Heitzman Josh Heitzman
RSS: Kai Gloth Kai Gloth
RSS: Kevin Daly Kevin Daly
RSS: Lao K Lao K
RSS: Loke Uei Tan Loke Uei Tan
RSS: Maarten Struys Maarten Struys
RSS: Marcus Perryman Marcus Perryman
RSS: Mark Arteaga Mark Arteaga
RSS: Mark Ihimoyan Mark Ihimoyan
RSS: Mark Prentice Mark Prentice
RSS: Markus Hage Markus Hage
RSS: Markus Zeischke Markus Zeischke
RSS: Martin Fowler Martin Fowler
RSS: Mathias Raacke Mathias Raacke
RSS: Mel Sampat Mel Sampat
RSS: Michael Korp Michael Korp
RSS: Michael Saffitz Michael Saffitz
RSS: Mike Hall Mike Hall
RSS: Mike Temporale Mike Temporale
RSS: Mike Zintel Mike Zintel
RSS: Mobile Developer Center Mobile Developer Center
RSS: Mobile Tagging Mobile Tagging
RSS: MozBackup MozBackup
RSS: MS Mobiles MS Mobiles
RSS: MSDN Forum .NET CF MSDN Forum .NET CF
RSS: MSDN Forum Device Emulator MSDN Forum Device Emulator
RSS: MSDN Forum Smart Devices C#/VB MSDN Forum Smart Devices C#/VB
RSS: MSDN Forum Smart Devices MSDN Forum Smart Devices
RSS: MVP Global Summit 2008 MVP Global Summit 2008
RSS: Nazim Lala Nazim Lala
RSS: Neil Cowburn Neil Cowburn
RSS: Neno Loje Neno Loje
RSS: Nils Müller Nils Müller
RSS: Nino Benvenuti Nino Benvenuti
RSS: Norbert Eder Norbert Eder
RSS: Oliver Block Oliver Block
RSS: Oliver Scheer Oliver Scheer
RSS: OrbLog OrbLog
RSS: Outlook Mobile Team Blog Outlook Mobile Team Blog
RSS: OVIDEO (Kino) OVIDEO (Kino)
RSS: OVIDEO (Trailer) OVIDEO (Trailer)
RSS: Pedro Silva Pedro Silva
RSS: Peter Foot Peter Foot
RSS: Peter Kirchner Peter Kirchner
RSS: Rabi Satter Rabi Satter
RSS: Ralf Westphal Ralf Westphal
RSS: Rob Tiffany Rob Tiffany
RSS: Rod Drury Rod Drury
RSS: Roman Batoukov Roman Batoukov
RSS: Scott Guthrie Scott Guthrie
RSS: Scott Holden Scott Holden
RSS: Sebastian Weber Sebastian Weber
RSS: Simon Hackfort Simon Hackfort
RSS: Smartphone-Web Smartphone-Web
RSS: Sriram Krishnan Sriram Krishnan
RSS: Stephen Fry Stephen Fry
RSS: Steve Cook Steve Cook
RSS: Steve Hegenderfer Steve Hegenderfer
RSS: Steven Kelly Steven Kelly
RSS: Steven Pratschner Steven Pratschner
RSS: Stuart Kent Stuart Kent
RSS: Sue Loh Sue Loh
RSS: Thomas Schissler Thomas Schissler
RSS: Tom Hollander Tom Hollander
RSS: Vik Thairani Vik Thairani
RSS: Visual Studio For Devices Team Visual Studio For Devices Team
RSS: We-Dig.org We-Dig.org
RSS: Windows Mobile Team Blog Windows Mobile Team Blog
RSS: Xin Yan Xin Yan