HowTo: Windows Presentation Foundation (Einstieg, Infos, Programme, Überblick)

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.

5 Kommentare bisher »

  1. Norbert sagt

    am 4. Februar 2008 @ 21:14

    Von welchen Schönheitsfehlern genau sprichst du?

  2. Robert Mühsig sagt

    am 4. Februar 2008 @ 21:43

    Bitte versteht mich nicht falsch: WPF ist ein Meilenstein in der UI Entwicklung meiner Meinung nach.
    Die angesprochenen Schönheitsfehler sind (u.a.) folgende Sachen:
    - Performance: insbesondere bei 3D oder nutzen des Flow Documents gibts Probleme.
    - Momentan wenig Controls: bei Windows Forms Anwendungen gibt es eine Handvoll nützlicher Controls direkt mitgeliefert – natürlich kann ich die selber zusammenbauen, aber “mal eben schnell” ist erstmal mit WPF so nicht machbar (jedenfalls momentan).
    - Toolunterstützung: Es wird zwar immer besser, aber als Hobbyentwickler bleibt einem nur der etwas dürftige VS Designer, selber schreiben oder erst seit kurzem einige praktischere Tools.
    - Hier sind auch noch einige andere Punkte:
    http://blogs.msdn.com/llobo/archive/2008/01/30/want-some-wpf-improvements-features-tell-us.aspx

    Wie gesagt, dass sind nur “Schönheitsfehler” – WPF ist eine sehr gute Sache, allerdings für “mal eben schnell zusammen klicken” fehlt es noch etwas und dann kommt wie immer noch der Lernaufwand hinzu. Das ist allerdings bei neuen Technologien klar.

    .NET 3.0 brachte einige tolle Sachen – durch kleine Schönheitsfehler wie diese oder das völlige Fehlen von Unterstützung von MS (Wer verwendet CardSpace? Noch nichtmal MS selbst – leider!) sieht man es aber im normalen Entwicklerumfeld eher selten. WPF hat natürlich durch Silverlight Zulauf bekommen.

    Mit der Zeit wird sich das sicherlich alles verbessern – siehe WPF in .NET 3.0 und .NET 3.5.

  3. Interessante HowTos…… « Geralds Thought Shed sagt

    am 11. Februar 2008 @ 16:52

    [...] Besonders interessant finde ich das HowTo zu Windows Presentation Foundation…. [...]

  4. Christoph Tuchan sagt

    am 17. März 2008 @ 16:27

    Hallo Robert,

    dein Post hat mein Interresse für die WPF geweckt.
    Ich setze mich gerade im Rahmen meiner Diplomarbeit mit der Verknüpfung von WF und WCF auseinander und möchte das ganze noch in eine schöne, moderne Oberfläche packen. Für dieses Anliegen scheint die WPF ja recht gut zu sein.

    Jetzt meine Frage: Hast du eine Literatur Empfehlung ?
    Da ich mich mit der WPF noch nicht auskenne wäre ein “Einsteiger”-Buch evtl. eine gute Wahl.

    Grüße Christoph

  5. Robert Mühsig sagt

    am 17. März 2008 @ 18:39

    Meine Einstiegsliteratur für das Thema war dieses Buch hier:
    http://code-inside.de/blog/2007/11/06/buchempfehlung-programming-wpf/

    Das beschreibt die Grundkonzepte – allerdings wirst du am Ende jetzt noch nicht so weit sein, dass du “schöne” Anwendungen zaubern kannst – dazu ist Einarbeitung in XAML bzw. Expression Blend (und Kreativität) gefordert – allerdings bietet Microsoft einige Beispiele an.
    Bei der VSone waren auch mehrere interessante Vorträge zu dem Thema – schau dir doch mal die Beispiele an:
    http://code-inside.de/blog/2008/03/04/nachtrag-vsone-sildes-demos-zum-download/

    Mit WPF kann man einige coole Anwendungen erstellen – auf YouTube findest du auch manche schicke WPF Anwendung – es lohnt sich also :)

Komentar RSS · TrackBack URI

Hinterlasse einen Kommentar

Name: (erforderlich)

eMail: (erforderlich)

Website:

Kommentar: