Mit WPF kann man einige erstaunliche Dinge tun, und ich LIEBE es... aber ich fühle mich immer verpflichtet, meine Empfehlungen zu relativieren, wenn Entwickler mich fragen, ob ich denke, dass sie auf die neue Technologie umsteigen sollten.
Sind Ihre Entwickler bereit (vorzugsweise EAGER), die Zeit zu investieren, die nötig ist, um zu lernen, wie man WPF effektiv nutzt? Ich wäre nie auf die Idee gekommen, dies über MFC oder Windows Forms oder sogar unmanaged DirectX zu sagen, aber Sie wollen wahrscheinlich NICHT, dass ein Team versucht, WPF im Laufe eines normalen Entwicklungszyklus für ein Produkt zu "erlernen"!
Haben zumindest ein oder zwei Ihrer Entwickler ein gewisses Gespür für Design und verfügen die Personen mit der endgültigen Designkompetenz über ein angemessenes Verständnis für Entwicklungsfragen, so dass Sie die WPF-Funktionen nutzen können, um etwas zu erstellen, das tatsächlich BESSER ist, anstatt nur "bunter" zu sein und überflüssige Animationen zu enthalten?
Läuft ein gewisser Prozentsatz Ihrer Zielkundenbasis mit integrierten Grafikchipsätzen, die die von Ihnen geplanten Funktionen möglicherweise nicht unterstützen - oder läuft dort noch Windows 2000, wodurch sie als Kunden völlig ausscheiden würden? Einige Leute würden auch fragen, ob Ihre Kunden sich tatsächlich für eine verbesserte Grafik interessieren, aber da ich in den frühen 90er Jahren unternehmensinterne "Unsere Geschäftskunden interessieren sich nicht für Farben und Bilder"-Debatten miterlebt habe, weiß ich, dass gut konzipierte Lösungen Ihrer Konkurrenten sie dazu bringen werden, sich dafür zu interessieren, und die eigentliche Frage ist, ob die Bedingungen richtig sind, damit Sie etwas anbieten können, das sie JETZT interessiert.
Beinhaltet das Projekt eine grundlegende Entwicklung, zumindest für die Präsentationsschicht, um die zusätzliche Komplexität zu vermeiden, die durch den Versuch entsteht, sich in inkompatible Legacy-Gerüste einzuklinken (die Interoperabilität mit Windows Forms ist NICHT nahtlos)?
Kann Ihr Vorgesetzter einen erheblichen RÜCKGANG der Entwicklerproduktivität über vier bis sechs Monate hinweg akzeptieren (oder davon ablenken, ihn zu bemerken)?
Dieses letzte Problem ist auf das zurückzuführen, was ich gerne als die "FizzBin"-Natur von WPF bezeichne. Es gibt zehn verschiedene Möglichkeiten, eine Aufgabe zu implementieren, und es gibt keinen offensichtlichen Grund, einen Ansatz einem anderen vorzuziehen, und es gibt kaum Anleitungen, die Ihnen bei der Auswahl helfen. Nicht nur, dass die Unzulänglichkeiten der von Ihnen getroffenen Wahl erst viel später im Projekt deutlich werden, sondern es ist auch so gut wie sicher, dass jeder Entwickler in Ihrem Projekt einen anderen Ansatz wählt, was zu großen Wartungsproblemen führt. Am frustrierendsten sind jedoch die Ungereimtheiten, die Ihnen beim Erlernen des Frameworks ständig in die Quere kommen.
Ausführlichere Informationen zu WPF finden Sie in einem Eintrag in meinem Blog:
http://missedmemo.com/blog/2008/09/13/WPFTheFizzBinAPI.aspx