2009-03-10 11 views
6

WPF ist als Nachfolger von WinForms positioniert, aber gibt es angesichts der von Microsoft praktizierten Abschaffung von Toolkits (und was ich in WPF als "Bloat" empfinde) Alternativen?WPF-Alternativen

+0

Ich bin gespannt, was Sie in WPF als Bloat betrachten. –

+0

Was Mist du sagst WPF ist Bloat? Hast du es überhaupt benutzt? – abmv

+3

Wenn überhaupt, WPF ist unterentwickelt - es gibt viele Funktionen, die sie noch nicht hinzufügen konnten, die Teil des Core-Kits sein sollte. –

Antwort

14

Ich glaube nicht, dass Sie sich sorgen müssen, dass WPF aufgegeben wird. WinForm war für eine lange Zeit, und WPF ist der Ersatz.

Aufblasen? Ich weiß nicht ... Scheint wie ein großes Upgrade von WinForms zu mir. Wenn es aufgebläht ist, wird es immer da sein, denn unter allem ist die Win32-API. Bis das von Grund auf neu geschrieben wird, denke ich, dass nichts perfekt sein wird. Und da jedes Toolkit, das auf die Windows-Plattform abzielt, sich damit befassen muss ... würde ich lieber mit WPF und ReSharper gehen ...

3

Es hängt von Ihrer bevorzugten Programmiersprache ab, aber Qt ist ein gutes Gui-Toolkit für C++. Es verfügt über beeindruckende Funktionen, ist kostenlos und plattformunabhängig für GUI-Toolkits.

+0

Ich denke jedoch nicht, dass es für kommerzielle Zwecke frei ist. – ine

+0

@amdfan: Hat sich das nicht mit dem Umzug in die LGPL geändert? –

+1

Es ist. Es ist seit der Version 4.5 unter der LGPL verfügbar, sodass Sie es in geschlossenen Quell- und/oder kommerziellen Anwendungen verwenden können. Nur Änderungen, die Sie an QT selbst vornehmen, müssen als Quellcode zur Verfügung gestellt werden. (Siehe http://www.qtsoftware.com/products/licensing) – sth

7

Ein weiteres Zeichen, dass Microsoft es ernst meint mit WPF, dass es sich daran gewöhnt, Visual Studio 2010 zu machen XAML scheint von mehr als nur WPF (Workflow Foundation, Communication Foundation) verwendet zu werden.

Ich habe in den letzten 5 Jahren in WinForms codiert und ich war auch ein bisschen skeptisch gegenüber WPF. Aber nachdem ich ein paar Bücher gelesen und meine erste Anwendung in WPF getestet habe, beginne ich, die Schönheit davon zu sehen!

Ich bin erstaunlich, wie wenig "Leim" -Code in einer WPF-Anwendung benötigt wird, verglichen mit dem, was ich in WinForms gemacht hätte. Hier ein Beispiel: Ich musste ein einfaches Histogramm zeigen. In WinForms hätte ich ein benutzerdefiniertes Steuerelement geschrieben und das Rendering selbst erledigt. In WPF habe ich alles aus Xaml ohne eine Codezeile gemacht! Ich habe die Datenproben einfach an ein Listenfeld gebunden, die Layoutvorlage der Listbox durch ein horizontales Stackpanel ersetzt und die Elementvorlage durch Rechtecke ersetzt, deren Höhe an die Beispielwerte gebunden ist!

+4

Ich denke, dass Windows 8, das sich auf HTML5 konzentriert, hier möglicherweise eine Markierung auslöst. Die Einführung von WPF war noch nie so groß und MS wird in VS für HTML5 sicherlich Unterstützung anbieten, da erwartet wird, dass Anwendungen für Windows 8 in HTML5 geschrieben werden ... – Loudenvier

+0

@Loudenvier Das stimmt nicht genau. Die HTML5-Unterstützung, auf die Sie sich beziehen, verwendet die neue Windows-Laufzeitumgebung. Dies ist der Metro-Teil von Windows 8. Visual Studio 11 ist eine Anwendung, die auf dem Desktop von Windows 8 erstellt wurde und keinen Zugriff auf WinRT bietet. WPF-Unterstützung wird über Windows 8 auf der Desktopseite des Betriebssystems fortgesetzt. –

+0

@SamuelSlade Sie haben Recht in allem, was Sie gesagt haben. Es ist alles wahr und richtig. Und es widerspricht nicht dem, was ich auch gesagt habe. Aber ich würde heute in WPF nie ein neues Projekt starten. In der Tat habe ich ein Jobangebot abgelehnt (mehr zu bezahlen!), Weil es ein WPF-Projekt verwalten würde und ich denke, dass die Technologie keine Zukunft hat und ich nicht viel Zeit mit der Arbeit an "veraltet" verbringen wollte. tech und dann auf dem "Markt" etwas veraltet. HTML 5 (Ich weiß: Was ist wirklich HTML 5? Niemand weiß :-) ist die Antwort für mich, oder gute alte WinForms :-) – Loudenvier

6

MS hat keine Praxis, Toolkits aufzugeben (WinForms, MFC, ActiveX und Win32 werden alle noch aktiv entwickelt) und die "Bloat" sind eigentlich neue Fähigkeiten, die Sie jetzt vielleicht nicht brauchen, aber es besteht eine gute Chance Ich werde in Zukunft brauchen.

Wenn Sie Bloat nicht verwenden und nur eine API verwenden möchten, die für MS nicht mehr unterstützt werden kann, können Sie mit der Win32-API direkt arbeiten.

+5

Silverlight, XNA, Compact Framework, J # und FoxPro. – Dai

+0

Vergessen Sie nicht Entity Framework, obwohl sie die Quelle öffentlich zugänglich gemacht haben. – drake7707

1

Adobe AIR ist der starke Konkurrent. Wenn Sie plattformübergreifende Anwendungen mit einer reichhaltigen Benutzeroberfläche erstellen möchten, lesen Sie diese.

-1

Zuerst liebe ich WPF! Ich sehe keinen eleganten/unmittelbaren Weg, die gleiche Funktionalität und Flexibilität für das Design von Interfaces in WinForms zu erreichen ... Es ist sehr traurig zu sehen, dass WPF in Microsoft nicht mehr favorisiert. Eigentlich einige Leute, darunter ‚Insider‘ haben erklärt, dass MS Fokus Form WPF verschoben hat, und die Silverlight ist jetzt die Windows Phone 7 Application Framework (nicht etwas in Flash zu verdrängen mehr):

http://www.theregister.co.uk/2010/09/09/microsoft_html_5/

Viele Menschen, einschließlich des derzeitigen WPF-Führers, bestreitet dies, aber ich sehe, dass dies tatsächlich etwas Wahrheit hinter sich haben kann. HTML5 wird sicherlich zum "De-facto" -Standard für Rich-Web-Client-Schnittstellen werden. Es überschneidet sich so sehr mit WPF und macht auch viele andere Dinge. Es kann "leicht" erweitert werden, um für nicht webbasierte Rich-Client-Anwendungen zu arbeiten, und ich glaube, dass MS darin investieren wird, um in den Entwicklungstools für Web-, Mobile- und Windows-Ziele führend zu sein.Ich hätte keine Angst vor der Aufgabe, wenn ich schon mitten in einem WPF-Projekt wäre, aber ich würde auch kein WPF starten, wie viele schon gesagt haben: Es ist nicht so einfach, etwas wie WPF zu verlassen, ohne ein zu geben Migrationspfad und unterstützt es seit vielen Jahren.

Also, aktuelle Alternativen für WPF in der MS-Welt? Ich glaube nicht, dass wir bereits eins haben, vielleicht ist es eine gute Sache, die Teilmenge in Silverlight zu verwenden. Aber in den kommenden Jahren wird HTML5 wahrscheinlich DIE Alternative zu WPF sein.

+0

-1 Wilde Spekulation –

+0

Nun, -1 wegen meiner "wilden Spekulation" und was kommt mit Windows 8? (Der Winter kommt? :-) HTML5 ... WPF und Silverlight zugunsten dieser wilden Spekulation verlassen zu werden ... Ich habe immer gedacht, dass -1 unfaire ... – Loudenvier

+0

Es ist immer noch Spekulation, wenn auch gut begründet. Ich würde die -1 jetzt rückgängig machen, wenn ich könnte, aber es ist gesperrt. –

3

Qt Quick (QML) ist der Weg zu gehen. Es hat ein extrem scharfes Design und wird vor der Verunreinigung durch XML-Unlesbarkeit bewahrt.

4

Ich glaube mit 4 von 5 Entwicklern nie über die Oberfläche einer Technologie suchen, sie wollen einfach nur & ein paar Kontrollen fallen zu ziehen, ein paar Zeilen Code schreiben und etwas nach oben & Laufen, vielleicht für einige Proben googeln um ein paar Knicke auszubügeln, und das war's. Für solche Leute ist bloat kein Wort in ihrem Wörterbuch.

Ich bevorzuge es, unter die Decke zu schauen und wirklich herauszufinden, wie eine Technologie tatsächlich funktioniert, bevor ich mit der Technologie in den Code schreibe. Heute habe ich etwa eine Stunde damit verbracht, zu untersuchen, wie die integrierten WPF-Befehle funktionieren, und mit Hilfe von reflector konnte ich herausfinden, wie ein einfacher integrierter Befehl "Ausschneiden" für ein Plain-Vanilla-Textfeld-Steuerelement ausgeführt wird was, bis der Text geändert Ereignis für einen Cut-Vorgang ausgelöst wird, gibt es rund 30 Anrufe auf dem Call-Stack, ist das nicht Code aufblasen?

WPF hat sicherlich viele leistungsstarke Funktionen, aber sie haben ihren Preis. In mancher Hinsicht denke ich, dass WPF WinForms ist, was MFC für Win32 API ist; sowohl WPF als auch MFC haben zumindest das Wort "Foundation" :), aber es wäre interessant zu sehen, ob WPF zum gleichen Schicksal von MFC kommt.