WPF oder Doch WinForms



  • Moin,

    Wollte mal nachfragen was euerer meinung Besser für Anwendungen ist. WPF oder die WinForms.

    Gruß

    Andy



  • WPF natürlich...


  • Administrator

    Kommt auf den Anwendungsfall an. Ist also von vielen Rahmenbedingungen abhängig.

    Die Frage in der Art droht aber schnell in sinnlose Flamewars auszubrechen. Daher nicht verwundert sein, wenn der Thread demnächst plötzlich geschlossen oder verschwunden ist.

    Grüssli



  • Welche Vorteile bietet denn Winforms?


  • Administrator

    na... schrieb:

    Welche Vorteile bietet denn Winforms?

    Kommt ganz auf den Anwendungsfall an 😉

    • Es kann einfacher sein. Vor allem für kleine Anwendungen. MVVM ist einfach der Overkill für kleineres und ohne MVVM ist WPF unglaublich zäh.
    • Es können die besseren Bibliotheken vorliegen, um etwas zu erreichen.
    • In der Bildverarbeitung wird immer noch oft System.Drawing.Bitmap eingesetzt, was deutlich angenehmer mit WinForms verwendet werden kann.
    • Es ist näher am Windows Grundsystem und kann einfacher damit interagieren
    • WinForms ist deutlich gereifter als WPF. Siehe z.B. FontDialog oder allgemein Common Dialogs, welche unter WPF simple und einfach gesagt fehlen. Viele greifen bei WPF ja auf die WinForms Dialogs zurück. Und es gibt noch andere Bereiche, wo man merkt, dass WPF noch Ecken und Kanten hat.
    • Performance kann unter Umständen auch eine Rolle spielen
    • Legacy Anwendungen, WPF mit WinForms zu kombinieren ist nicht so der Hit
    • usw.

    Nur um ein paar zu nennen. WPF ist ganz toll und hat tolle Features drin. Aber deswegen ist WinForms nicht einfach plötzlich schlecht. Obwohl sicher die Anwendungsfälle für WinForms zurückgegangen sind. Ich würde es sogar wagen zu behaupten, dass WPF für viele Applikationen wahrscheinlich besser geeignet ist. Aber viele sind bei weitem nicht alle.

    Grüssli



  • WPF hat meiner Meinung nach wesentlich mehr Vorteile.
    Du kannst mit WinForms niemals auch nur ähnliche GUI's gestalten wie mit WPF.
    Wo man sich in WinForms noch mit resizeevents und GDI rumschlägt, schafft ein komplett neues Konzept eine schnelle und saubere Abhilfe bezüglich Layout und Darstellung.
    So wird z.B. HLSL(GPU-Beschleundigte Shader), Animationen bis hin zu 3D Scenen usw. unterstützt. Dazu kommt, dass man nicht so häufig sich mit GDI rumplagen muss. Will man etwas anders darstellen, reicht es oft schon mit einer Zeile XAML-Code eine Ressource umzudefinieren oder einen Style bzw. Template zu erstellen.
    Auch neue Konzepte wie z.B. Bindings sind äußerst hilfreich und können sehr vieles erleichtern. z.B. btnOpen.Enabled = false... gibts in WPF nicht mehr. Mit Commands werden Elemente automatisch aus und eingeschaltet,...

    PS: Dialoge sind nicht unter System.Windows.* sondern unter Microsoft.Win32.


  • Administrator

    filö schrieb:

    WPF hat meiner Meinung nach wesentlich mehr Vorteile.

    Ich wiederhole mich: Kommt auf den Anwendungsfall an 😉

    Und ich zeig es dir mal an deinem Beitrag auf:

    filö schrieb:

    Du kannst mit WinForms niemals auch nur ähnliche GUI's gestalten wie mit WPF.
    Wo man sich in WinForms noch mit resizeevents und GDI rumschlägt, schafft ein komplett neues Konzept eine schnelle und saubere Abhilfe bezüglich Layout und Darstellung.

    1. Womöglich will man das Standardlayout von Windows. Dann reicht dir WinForms völlig aus. Im Gegenteil, es kann sogar besser sein, da das Standardverhalten der GUI Oberflächen unter WPF für Windows nur emuliert werden. Es gibt durchaus gewisse kleine Unterschiede. Du kannst mit WPF dies allerdings korrigieren, was aber oft einiges an Aufwand verursacht, den du mit WinForms nicht hättest.
    2. Bezüglich Layout kennen viele anscheinend das TableLayoutPanel unter WinForms nicht. Was in WPF eingeführt wurde ist nicht ein neues Konzept, es wurde einfach nur verfeinert. Diese Verfeinerung ist aber nicht unbedingt nötig.

    filö schrieb:

    So wird z.B. HLSL(GPU-Beschleundigte Shader), Animationen bis hin zu 3D Scenen usw. unterstützt. Dazu kommt, dass man nicht so häufig sich mit GDI rumplagen muss. Will man etwas anders darstellen, reicht es oft schon mit einer Zeile XAML-Code eine Ressource umzudefinieren oder einen Style bzw. Template zu erstellen.

    Das ist definitiv ein nett in WPF. Nur ist das etwas was man ständig benötigt? Ich kenne viele Kunden, welche lieber ein Standardaussehen haben wollen, an welches sie sich gewöhnt sind. Die Leute sind nicht so begeistert davon, wenn alles flickert, blinkt, bewegt, usw. usf.

    WPF bringt da viele Möglichkeiten, das ist wahr. Die Frage ist aber immer: Braucht man sie?

    filö schrieb:

    Auch neue Konzepte wie z.B. Bindings sind äußerst hilfreich und können sehr vieles erleichtern.

    Bindings sind nichts neues. Das gibt es auch unter WinForms. WPF hat das System nur erweitert.

    filö schrieb:

    z.B. btnOpen.Enabled = false... gibts in WPF nicht mehr. Mit Commands werden Elemente automatisch aus und eingeschaltet,...

    Das Konzept ist halt unter WinForms anders. Ich persönlich empfinde es sehr schwer die beiden Konzepte zu vergleichen, weil es am Ende hier bei WPF auf MVVM hinausläuft. Mit MVVM ist das ICommand Zeug ein Traum. MVVM kann man mit WinForms allerdings nicht verwenden. Ein simples MVC kann man mit WinForms verwenden, was aber dann wieder nicht mit WPF geht.

    Daher läuft hier die Frage darauf hinaus, wie viel Overhead erzeugt mir das MVVM und wie viel gewinne ich davon. Weshalb ich z.B. davon sprach, dass für kleinere Anwendungen WinForms durchaus Sinn machen kann.

    filö schrieb:

    PS: Dialoge sind nicht unter System.Windows.* sondern unter Microsoft.Win32.

    Ja, und was genau gibt es dort für Common Dialogs? Und ob ein bool? wirklich ein sinnvoller Rückgabewert für Dialogs ist, ist auch noch so eine Frage. 😉

    Grüssli


Anmelden zum Antworten