dotnetpro 08/2010
Schwerpunkt: Profi-Wissen für WPF-Programmierer

Sie sind noch kein Abonnent? Dann wird es aber Zeit!
Weiter zur Abo-Bestellung.
Sie haben bereits ein Abonnement? Dann
registrieren Sie es jetzt online!
Zahlreiche kostenlose Online-Artikel finden Sie
hier.
Einzelheft bestellen
Aktuell
Intelligent in die Zukunft!
(Seite 10)
„Let’s build a smarter planet“ lautete der Slogan der diesjährigen IBM-Konferenz Innovate: Software als treibende Kraft
hinter Innovationen und dem Umweltschutz. Zu den Schwerpunktthemen der Konferenz zählten Cloud Computing,
Sicherheit und der generelleWandel bei der Entwicklung von Programmen.
Andreas Maslo
Windows Pleite Foundation
(Seite 3)
Ich bekenne: Ich habe Probleme mit der Windows Presentation Foundation (WPF). Obwohl das Konzept dahinter logisch ist,
ist das Umdenken gegenüber Windows Forms gigantisch
Tilman Börner
AKTUELL
(Seite 6)
Forrester zählt Visual Studio zu den führenden Entwicklungstools - SharpDevelop 4.0 befindet sich im Beta-1-Stadium - Objektorientierte Datenbank db4o unterstützt .NET 4.0 - VintaSoftImaging.NET SKD 4.1 u.v.m.
Joachim Pich
Schwerpunkt
Daten mit Dynamik
(Seite 14)
Sie müssen Zahlen visualisieren und haben keinen Designer imTeam – für jeden Programmierer eine unangenehme
Vorstellung.Mit demWPF Dynamic Data Display lassen sich Informationen auch ohne künstlerische Begabung in
ansehnlichen Diagrammen und Schaubildern darstellen – und das auch noch in Echtzeit.
Andreas Heil
Wie gedruckt
(Seite 20)
Wer Auszüge aus Datenbanken ansprechend formatieren will, muss nicht gleich zu den großen Reportingtools greifen.
Für viele Zwecke reicht dasWPF-Element FlowDocument völlig aus. dotnetpro zeigt, wie Sie die praktische Klasse
verwenden und für den Ausdruck Seitenzahlen und Kopfzeilen ergänzen. Besonderer Clou: Das Table-Element wird
um ein Data-Binding ergänzt.
Bernhard Pichler
Das richtige Verhalten
(Seite 28)
Expression Blend ist ein hervorragendesWerkzeug zum Erstellen von Oberflächen fürWPF- und Silverlight-
Anwendungen. Natürlich kann es nicht in allen denkbaren Fällen UI-Elemente automatisch mit den gewünschten
Aktionen verknüpfen. Dann muss der Anwender dies selbst tun – die sogenannten Behaviors helfen ihm dabei.
Joachim Fuchs
Do you speak Deutsch?
(Seite 36)
Weder Expression Blend noch Visual Studio unterstützen den Entwickler beim Lokalisieren von WPF-Anwendungen.
Wie Sie trotzdem mehrsprachige Software für die Windows Presentation Foundation entwickeln können,
erfahren Sie in diesemArtikel.
Mathias Raacke
Community
Leserbriefe
(Seite 41)
dotnetpro.dojo
Tools
Software grafisch entwerfen
(Seite 42)
Um die Programmentwicklung künftig nicht nur zu vereinfachen, sondern auch kostengünstiger zu machen, wird zunehmend die modellgetriebene Architektur empfohlen. Sparx Systems Enterprise Architect ist ein leistungsfähiges Werkzeug für Modellierung und Codegenerierung.
Andreas Maslo
Bücher
Das Wissen der Gemeinschaft
(Seite 48)
Das Projekt Wikibooks [1] ist eine Bibliothek mit Lehr-, Sach- und Fachbüchern. Jeder kann und darf diese Bücher frei nutzen und bearbeiten.
Bernhard Lauer
Sandbox
Kulturfrühstück
(Seite 52)
Neulich in einem Entwicklerteam: Einmütig wird entschieden, in Zukunft agil zu entwickeln. Alle sind motiviert. Der Chef hat seinen Segen gegeben.
Ralf Westphal
Praxis
Am schlechten Beispiel lernen
(Seite 54)
Das „Test-Driven Development“ hat sich durch seine vielen positiven Aspekte einen hohen Rang in der
Softwarearchitektur erarbeitet. Dennoch fällt es immer wieder schwer, den Einstieg dazu zu finden.
Dieser kann unter Umständen besser gelingen, wenn er sich nicht an den guten Vorbildern, sondern vielmehr
an schlechten Beispielen und ihren Konsequenzen entlanghangelt.
Gregor Biswanger
Client sucht Service
(Seite 60)
Ein interessantes Feature der kommenden Version 4.0 derWCF heißt Service Discovery. Damit könnenWCF-Clients
passendeWCF-Dienste automatisch finden und sich selbst konfigurieren.
Damir Dobric
Hat’s geklickt?
(Seite 68)
Beim testgetriebenen Entwickeln werden die verschiedenen Teile der Anwendung häufig nicht gleichmäßig gut
getestet. Besonders schlecht ist die Testabdeckung meistens bei der Oberfläche. Mit dem richtigen Entwurfsansatz
können Sie die GUI-Logik separat realisieren und damit für gewöhnliche Unit-Tests zugänglich machen.
Stefan Böther
Murphy’s Law hoch 10
(Seite 77)
Eine Scheibe Brot fällt immer auf die belegte Seite, eine Katze dagegen landet unbeschadet immer auf den Pfoten –
so sagt es jedenfalls der Volksmund. Auch wenn weder das eine noch das andere je naturwissenschaftlich nachgewiesen
wurde, gilt beides – zumindest in gewissem Sinne – als Gesetz. In der Informatik gibt es ebenfalls vermeintliche, aber auch
empirische und tatsächliche Gesetze. dotnetpro stellt die zehn für die Softwareentwicklung wichtigsten Gesetze vor.
Golo Roden
Teile und teste
(Seite 80)
Es hat sich herumgesprochen: Auf externe Ressourcen imWeb sollte man immer asynchron zugreifen. Denn nur
dann ist gewährleistet, dass die Benutzeroberfläche nicht einfriert, wenn die Reaktion auf sich warten lässt.
Doch wie geht man in automatisierten Tests damit um?
Stefan Lieser
Weg damit!
(Seite 84)
Es gehört zum guten Programmierstil, nicht mehr benötigte Objekte gezielt freizugeben.Weil aber Objekte häufig
in Eltern-Kind-Beziehungen eingebettet sind, kann eine Freigabe zahlreiche weitere Freigaben nach sich ziehen.
Einfacher wird es, wenn man die Freigaben an einen Aspekt delegiert.
Gael Fraiteur
So boxen Sie mit Silverlight!
(Seite 87)
Statistik hat immer mit Zahlen zu tun. Und Zahlen kann man immer irgendwie grafisch darstellen, eine Zahlenreihe
zum Beispiel in einem Boxplot.Aber wer versucht, ein entsprechendes Silverlight-Control testgetrieben zu entwickeln,
muss feststellen, dass auch Silverlight 4 die testgetriebene Entwicklung nur mangelhaft unterstützt.
Stefan Lieser
CD-Inhalt
CD-Inhalt
(Seite 66)
Build-Tools
Implementierung fertig? Dann reicht ein Druck auf die Taste [F5], und das Programm wird fertiggestellt. Für Progrämmchen mag das so stimmen, nicht jedoch für Software, die aus mehreren Modulen besteht. Hier helfen Build- und Continous-Integration-Tools, zu jedem Zeitpunkt eine fertige Version produzieren zu können. Sie holen die letzte Version aus dem Versionskontrollsystem, schicken Quellcodedateien durch den Compiler, binden Ressourcen ein und bauen Setup-Projekte zusammen.Wir haben eine Reihe von Build-Tools für Sie zusammengestellt.
dotnetpro.dojo
Was kann der Rabe?
(Seite 86)
Kaum eine Software kommt ohne Persistenz aus.Auf diesem Gebiet stehen die relationalen Datenbanken in fest gefügter Phalanx.Aber geht Persistenz nicht auch anders? Da gibt es doch diese NoSQL-Dokumentendatenbanken. Stefan, fällt dir dazu eine Übung ein?
Stefan Lieser
Mono
Ausblicke
(Seite 97)
Nach den vielen neuen Versionen und Implementierungen hat das Mono-Team in den vergangenenWochen nicht nur
Luft geholt, sondern auf breiter Front erste Betaversionen veröffentlicht. Hier finden Sie einen Überblick.
Jan Waiz,
Daniel Nauck
Tipps und Tricks
Leser helfen Lesern
(Seite 104)
Die Newsgroups der dotnetpro
Andreas Maslo
Feinschliff für den HTML-Editor
(Seite 106)
Visual Studio und .NET bieten kein HTML-Steuerelement.Allerdings stellt Microsoft mit dem DHTML Editing Control ein
kostenloses ActiveX-Steuerelement für diesen Zweck zur Verfügung. Hier wird die Komponente ausgebaut und erweitert.
Andreas Maslo
Bilder skalieren
(Seite 98)
Die drei in dieser Ausgabe vorgestellten Erweiterungsmethoden sorgen dafür, dass Bitmaps automatisch an den vorhandenen Platz angepasst werden.
Patrick A. Lorenz
Kochen mit Patrick
Kochen mit Patrick
(Seite 100)
Die Versionsverwaltung Subversion nutzen viele Entwickler alsWerkzeug.Wie man mit einem eigenen Programm auf
ein Subversion-Repository zugreift, lesen Sie hier.Auf den Tisch kommt anschließend ein schmackhafter Maisauflauf.
Patrick A. Lorenz
Grundlagen
Von einfach bis komplex
(Seite 110)
UML ist kompliziert? Stimmt nicht.Wenn man nur drei Arten von Diagrammen nimmt, dann ist UML überschaubar
und verbessert die Kommunikation im Projekt.Wer aber nicht nur die projektinterne Kommunikation verbessern,
sondern aus dem UML-Modell auch gleich die Software generieren will, der braucht mehr UML. Er zieht dann aber
auch einen größeren Nutzen aus der Anwendung.
Tim Weilkiens
Gleich und doch nicht dasselbe
(Seite 114)
Zwei Werte in C# auf Gleichheit zu prüfen ist ein Leichtes: Hierfür gibt es den Operator ==…und die Methode Equals() ... und die statische Methode ReferenceEquals() ... und die IEquatable
-Schnittstelle ...
und die IComparable- sowie die IComparable-Schnittstellen, die auch noch irgendeine Rolle spielen – aber welche?
Golo Roden
MDF-Dateien unter der Lupe
(Seite 116)
Jede relationale Datenbank enthält Daten in Form von Tabellen. Der SQL Server speichert die Daten in einer MDF-Datei
im Dateisystem. Aber wie werden Datensätze innerhalb von Tabellen physisch in einer Datenbankdatei abgelegt?
dotnetpro erklärt den Aufbau des Dateiformats und zeigt, wie Sie mit geschicktem Datenbankdesign Performance-
Optimierungen durchführen.
Klaus Aschenbrenner
Architektur
Nicht nur außen schön
(Seite 126)
Was haben ein Topmodel und ein Blockschaltbild gemein? Beide schauen toll aus. Während aber in dem einen noch
Intelligenz, Gefühl undWissen stecken können, bleibt das andere eine Sammlung von Farbflächen ohne ein Mehr
an Information. Schaltpläne mit Event-Based Components bieten hier wesentlich mehr Zusammenhänge.
Ralf Westphal
Management
Der Trick mit den Karten
(Seite 134)
Seit einiger Zeit geistert das Schlagwort „Kanban“ durch die Softwarelandschaft. Scrum sei doch nicht so gut, man
solle lieber Kanban verwenden, sagen die einen. Kanban und Scrum lassen sich gut miteinander kombinieren, sagen die anderen. dotnetpro hat nachgeforscht.
Matthias Lohrer