30 January 2008 .NET 3.0, .NET 3.5, Expression, HowTo, ICQ, RSS, Silverlight, Vista, WPF Robert Muehsig

Da ich mich auch langsam der WPF Programmierung zuwende, möchte ich einfach mal einen Einstiegs-HowTo schreiben. Inhalte sollen hier das grobe Konzept hinter WPF sein, was man dafür braucht, welche Programme man nimmt und was man sich mal anschauen kann.

WPF? .NET 3.0? Um was gehts?

Die Windows Presentation Foundation ist Teil des .NET 3.0 Frameworks und wurde auch unter .NET 3.5 weiterentwickelt - was konkret, schauen wir uns dann später mal an. .NET 3.0 kam ungefähr mit Vista auf und ist für XP, Windows Server 2003 und Vista entwickelt wurden.

Um es mal grob zu sagen, was man mit WPF machen kann: Endlich schicke Windows Applikationen! Windows.Forms sind leider in Bezug auf Design recht zickig - mit WPF will man endlich “sexy” Applikationen auch im Unternehmensumfeld kultivieren. Das hat Teilweise schon zu Erfolgen geführt.

Silverlight nutzt als Basis auch WPF - allerdings momentan noch sehr begrenzt, aber das Konzept bleibt gleich.

Was ist denn das Konzept?

Stellen wir uns eine perfekte Welt vor, wo der Designer mit den entsprechenden Tools arbeitet und das Ergebnis direkt an den Entwickler übergeben kann und dieser ohne große Konvertierung oder Neuimplementierung das Design mit Funktionen befüllen kann. Wie gesagt, wir gehen von einer perfekten Welt aus ;)

Genau hier setzt WPF an. WPF ist die “Oberflächensprache”, welche direkt in .NET verwendet werden kann. Von den Designtools wird normalerweise eine XAML Datei für ein Layout erstellt - das gesamte Design wird also in XML gegossen. XAML selbst wird in eine .NET Objekt Hierarchie serialisiert - daher kann der Entwickler in seiner gewohnten Umgebung direkt drauf zugreifen.

Ein nettes Whitepaper gibts auch hier zum Runterladen.

Mhh… klingt schon mal nach einer netten Idee - was gibts denn für Tools?

Bei Tools möchte ich mal eine Trennung zwischen “ist für Designer geeignet” und “ist eher für Entwickler geeignet”. Der Unterschied liegt daran, dass die Entwickler Anwendungen meist nur die “Handeingabe” ermöglichen - das gefällt natürlich keinem Designer ;)

  • Designer:
  • Entwickler:
    • XAMLPad: Das Ursprungstool von Microsoft. Dieses ist enthalten im Windows SDK.
    • XAMLPadX V3: Eine Erweiterung welche ich auf diesem Blog gefunden habe. Es unterstützt auch Plugins. Leider ohne IntelliSense momentan.
    • Visual Studio: VS 2008 bietet große Unterstützung - für Visual Studio 2005 gibt es ein AddIn, welches allerdings auch mehr schlecht als recht ist.
    • Kaxaml 1.0: Ein Geheimtipp wie ich finde. Sehr schick umgesetzt und sogar mit IntelliSense - daher aus meiner Sicht momentan besser als XAMLPad oder XAMLPADX V3.

Scheint doch eine nette Auswahl zu sein, gibt es sonst irgendwelche Probleme mit WPF?

WPF hat einen (meiner Meinung nach) großen Nachteil gegenüber einer klassischen Windows.Forms Applikation - leider fehlen viele Controls welche man gewohnt war. Andere Kritikpunkte, welche sicherlich erst bei einem näheren Blick auffallen, sind hier gut beschrieben. Performance ist durch die Komplexität insbesondere im 3D Bereich auch nicht so ganz leicht - hier einige Informationen über die Performance von WPF.

Microsoft arbeitet daran und hat auch wie hier ein offenes Ohr für Kritik.

Was gibt es für Demoapplikationen, Referenzen und sonstige Infos?

Microsoft selbst hat einige Demoapplikationen zum Downloaden angeboten: WPF Samples Insbesondere möchte ich dieses PDF empfehlen - hier wird die Outlook 2003 Oberfläche mit WPF nachgebaut und man sieht Schritt für Schritt wie etwas gemacht wird.

Auch seit kurzem zum Download verfügbar: Das Syndicated Client Expericences Starter Kit Beta + MSDN Reader. Hierbei handelt es sich im Allgemeinen um einen schicken RSS Feedreader mit WPF.

Microsoft bietet auch einige Hands-on Labs an, welche lesenswert sind, sowie Expression Blend Tutorials und Videos.

Wer nach Tutorials sucht, wird ebenfalls auf vielen Seiten fündig - z.B. hier.

Aus der Blogszene kommt auch einige interessante Infos, z.B. aus dem deutschen Blogumfeld von Norbert Eder:

Es gibt noch viele weitere interessante Posts (unter anderem einige bei Norbert), z.B. ein WPF ICQ Client oder Vista Glass Effekt in WPF - ansonsten auch die anderen Blogs welche in diesem Post waren.

Lohnt sich WPF?

Diese Frage kann man so sehr schlecht beantworten - in der Windows Client Entwicklung ist WPF ein sehr großer Schritt nach vorn - auch wenn es momentan noch Schönheitsfehler hat. Mit Silverlight erobert WPF auch das Web, daher kann es nie verkehrt sein, sich mit dieser Technologie auseinander zu setzen. Microsoft setzt z.B. interen WPF für die Expression Produkte ein, aber auch für die Zune Software. Auch gibt es Komponenten in Vista mit WPF - in Windows “7” wird gemunkelt, dass wohl mehrere Applikationen (Wordpad, Paint, Calc) mit WPF “neu” gemacht werden.

Ein Blick schadet also auf die WPF Entwicklung sicherlich nicht - daher auch dieser Post der als Einstieg dienen soll.


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de