wake-up-neo.net

Übergang von Windows Forms zu WPF

Ich habe mich schon lange mit der Entwicklung von Windows Forms (angefangen mit VB6 und bis hin zu C # .NET 4.5) beschäftigt und bin fast an die Grenzen dessen gestoßen, was Windows Forms mit reinem .NET leisten kann und Spezialeffekte mit Native Code.

Ich weiß, dass WPF (für jetzt) ​​die Zukunft ist und Windows Forms langsam zu einer veralteten Technologie wird.

Ich habe versucht, WPF und XAML zu lernen, aber ich bin beim neuen WPF-Designer hängen geblieben. Im Vergleich zum Windows Forms-Designer scheint es wirklich sehr schwierig zu sein. Natürlich. Dies ist nur eine Lernkurve. Und irgendwann habe ich vor, einen Kurs zu besuchen, um WPF richtig zu lernen.

In der Zwischenzeit möchte ich wissen, ob es Alternativen zum WPF-Designer von .NET gibt, die besser für Windows Forms-Entwickler geeignet sind.

111
series0ne

Ich blogge gern über Einsteigerartikel für WPF, und es gibt einige, die Ihnen helfen könnten:

Zusammenfassend ist der größte Unterschied zwischen Winforms und WPF, dass in WPF Ihre Datenschicht (die DataContext) Ihre Anwendung ist, während in Winforms Ihre UI-Schicht Ihre Anwendung ist.

Anders ausgedrückt, mit WPF besteht Ihre Anwendung aus den von Ihnen erstellten Objekten und Sie verwenden Vorlagen und andere UI-Objekte, um WPF mitzuteilen, wie Sie Ihre Anwendungskomponenten zeichnen.

Dies ist das Gegenteil von WinForms, bei dem Sie Ihre Anwendung aus UI-Objekten erstellen und diese dann mit den erforderlichen Daten versorgen.

Aus diesem Grund wird der Designer nicht so häufig verwendet, da Ihre Anwendungskomponenten im Code entworfen wurden. Der Designer wird nur benötigt, um eine benutzerfreundliche Oberfläche zu zeichnen, die Ihre Datenklassen widerspiegelt (normalerweise Models und ViewModels)

Ich persönlich schreibe meine XAML-Dateien lieber von Hand, da sie schneller sind und nicht so verwirrend wirken wie der Drag & Drop-WPF-Designer, obwohl ich den Designer gelegentlich verwende, um eine Vorschau auf meine Benutzeroberfläche zu erhalten mögen.

Um Ihre Frage zu beantworten, ob es andere WPF-Designer gibt, die für WinForms-Entwickler geeignet sind, empfehle ich Ihnen, statt nach einem anderen Designer zu suchen, zu lernen, wie Sie WPF so verwenden, wie es verwendet werden soll. Wenn Sie WPF wie WinForms verwenden, verpassen Sie viel von dem, was es so großartig macht :)

174
Rachel

Ich weiß, dass dies eine alte Frage ist, aber zum Wohle aller anderen, die sich das ansehen, denke ich, dass ich das Gleichgewicht ein wenig wieder herstellen sollte - wenn ich einige der anderen Antworten lese, habe ich das Gefühl, dass einige der 'den Designer nicht gebrauchen Das Gefühl entsteht, wenn man es nicht richtig anwendet. Dieses Tutorial ist ganz gut, um dich zum Laufen zu bringen und beantwortet einige der Kritikpunkte in den anderen Posts.

Beispielsweise können Sie vom Winforms-ähnlichen, randbasierten Layout, das beim Ablegen eines Steuerelements standardmäßig verwendet wird, zu einem WPF-ähnlichen Stil wechseln, indem Sie mit der rechten Maustaste klicken und "Layout zurücksetzen" auswählen.

Dieses Video deckt einen ähnlichen Bereich ab.

Im Großen und Ganzen bevorzuge ich immer noch den VS2010-Designer. VS2013 scheint beim Ziehen und Ablegen auf TabItems ** etwas fehlerhaft zu sein (was in meinem aktuellen Projekt häufig verwendet wird) , was ein echtes Plus sein kann.

Wirklich, um das Beste aus WPF und XAML herauszuholen, müssen Sie sowohl in der Designer-Ansicht als auch in der XAML-Ansicht einigermaßen flüssig sein und zwischen diesen wechseln. Wenn Sie vor dem Designer zurückschrecken, verpassen Sie etwas, das Ihnen sehr helfen kann.

** Bearbeiten - obwohl dies in Update 3 für VS 2013 und in Voransichten von VS14 verbessert zu sein scheint, erhalte ich bis jetzt immer noch gelegentlich seltsames Verhalten.

9
peterG

Nun, obwohl einige Leute nicht zustimmen, würde ich auch empfehlen, den VS-Designer nicht zu verwenden. Zumindest keine Schnittstelle zu erstellen. Wenn Sie sich einen ersten Eindruck von Ihrer Implementierung verschaffen möchten, ohne die Anwendung zu starten, ist dies ein guter Viewer, zumindest solange keine hochentwickelten Dinge wie Styles und Templates verwendet werden. Aber, IMHO, sein Drag & Drop-Ergebnis sollte nur als Prototyp verwendet und daher verworfen werden, nachdem es nicht mehr benötigt wird.

Hier sind einige Gründe, die für mich wichtig sind, um es nicht zu verwenden.

  1. Der VS-Designer arbeitet mit festen Rändern und Ausrichtungen (was normalerweise nicht erforderlich ist, wenn Sie die Layout-Steuerelemente verwenden), dh, Sie müssen viele Steuerelemente berühren, wenn sich die Anforderungen ändern. Wenn Sie sich mit XAML und der WPF-Mechanik auskennen, können Sie Anwendungen erstellen, die mit geringem Aufwand in Bezug auf das Erscheinungsbild und Verhalten geändert werden können.

  2. Da der Designer die XAML generiert, ist die Komposition nicht optimal und die Benutzeroberfläche kann eine schlechte Leistung erbringen. Ich habe es nicht gemessen, es ist nur ein Gefühl.

Eine viel bessere Alternative ist MS Blend , obwohl der Start alles andere als einfach ist. Das Drag & Drop-Ergebnis ist viel besser als das Ergebnis des VS-Designers.
Aber es ist ein ziemlich mächtiges Werkzeug, mit dem Sie ziemlich mächtige Elemente verwenden können, um eine hochmoderne Benutzeroberfläche zu erstellen. Ich empfehle, mindestens einen kurzen Workshop zu besuchen, um sich ein Bild von den Möglichkeiten zu machen.

Zurück zu Ihrer Frage, IMHO, und ich denke, viele Menschen stimmen zu, besorgen Sie sich ein gutes Buch, z. WPF Unleashed und später, wenn Sie mehr über die Details erfahren möchten, WPF Pro . Es gibt viele Funktionen, die sich von Winforms unterscheiden. Sie werden sie mit keinem Designer kennenlernen. Ich denke, das ist der beste Ansatz.

Beachten Sie auch, dass es viele Frameworks und Bibliotheken gibt (z. B. MVVM light , WPFToolkit ), die bereits einige häufig auftretende Probleme lösen. Das Rad muss also nicht neu erfunden werden.

9
DHN

Ich habe diesen Prozess wie Sie durchgemacht. Danach unterrichtete ich alle in meiner Firma WPF. Ich habe einige wichtige Lektionen gelernt, und jeder, den ich kenne, arbeitet mit WPF.

  1. Wenn Sie mit UI-Steuerelementen im Code dahinter arbeiten, ... machen Sie es falsch. Es ist absolut nicht erforderlich, dass Sie sich mit den UI-Steuerelementen im Code dahinter befassen.
  2. Sie brauchen den visuellen Entwickler nicht, um darauf zu klicken. Sie sind viel produktiver, wenn Sie sich nur mit XAML befassen. Verwenden Sie Kopieren/Einfügen. Vertrauen Sie nicht auf Ihre Schreibfähigkeiten. Das erspart viele Kopfschmerzen.
  3. Stellen Sie sich XAML als Fenster vor, das über die Daten hinweggeht. Im Code dahinter ändern Sie die Daten. In XAML definieren Sie, wie die Benutzeroberfläche die Daten interpretiert.
  4. Konverter sind unglaublich. Sobald Sie eine Schlüsselmenge an Konvertern erhalten, wird Ihre Produktivität Sky in die Höhe treiben. Sie werden die Rolle der verrückten Menge von Kontrollereignisbehandlern übernehmen, die die Größe verbergen oder ändern, oder was auch immer mit der Benutzeroberfläche ist.

Die Entwicklung der Benutzeroberfläche macht Spaß. Besonders wenn Sie herausfinden, wie es gerne mit Asyc-Prozessen zusammenspielt. Es nimmt wirklich viele der Kopfschmerzen weg, die durch Winforms verursacht wurden.

7
user853710

Zunächst sollten Sie in WPF (XAML) in Visual Studio Deisgner immer den XAML-Code verwenden, um Ihre Benutzeroberfläche zu erstellen, und Sie dürfen nicht per Drag & Drop steuern! Sie müssen Ihren Code sauber halten. Sie können Expression Blend verwenden, um Ihnen zu helfen. Es ist grafisch orientierter mit Drag & Drop, aber es ist nicht kostenlos.

Es ist keine große Lernkurve, aber ich denke, Sie sollten lernen, wie Sie Ihre XAML von Hand machen, anstatt nach Alternativen zu suchen.

7
mlemay