Was sind Ihre Strategien für die auf komplexe Expression Blend mit entkoppelten WPF-Anwendungen?

StackOverflow https://stackoverflow.com/questions/820547

  •  03-07-2019
  •  | 
  •  

Frage

Ich mache WPF-Anwendungen mit dem MVVM Muster Visual Studio verwenden, Codierung C # und XAML meist von Hand.

Jetzt habe ich aufgestanden, mit Expression Blend zu beschleunigen, so dass ich schnell WPF-Anwendungen zusammenklicken kann nur über die GUI, was sehr schön ist, viel mehr Kontrolle über das Layout als das Hantieren mit allen XAML-Elementen 80% Ihre Zeit.

Aber es scheint, dass meine Anwendungen in Expression Blend sind einfacher und notwendigerweise verbunden ist, unter Verwendung von Ereignissen, die hinter im Code behandelt werden, usw.

Ich finde es schwer, sich vorzustellen, wie ich von diesem einfacheren Ansatz von Expression Blend zu einer entkoppelten MVVM Anwendung gehen würde mit Views, Viewmodels, geroutet Ereignisse und Befehle usw., nicht nur nehmen mein ganzes Projekt in Visual Studio und neu anordnen es auf den Punkt, dass ich es nicht wirklich visuell mehr in Mischung bearbeiten könnte, würde aber wieder Blend mit kleinen Stücke von XAML zu erstellen, die ich in Visual Studio einfügen.

Für diejenigen, die mit komplexeren Anwendungen mit Expression Blend arbeiten, was sind Ihre Strategien für Ihre Projekte entkoppelt in einer MVVM Art und Weise zu halten, doch zugleich strukturiert „in der Expression Blend way“ (wo Sie können immer noch ganze Teile der Anwendung in einer Weise, die so Sinn sehen und bearbeiten visuell) macht, dass Sie fortfahren können sie in der Mischung GUI zu bearbeiten, wie sie skalieren?

War es hilfreich?

Lösung

Ich habe Mischung wurde unter Verwendung von in erster Linie als Rapid-Prototyping-Tool. Zu diesem Zweck Ich mag es wirklich. Insbesondere finde ich es sehr hilfreich, wenn ich nicht sicher bin, wie die Dinge einzurichten, das Layout / Verhalten zu bekommen, die ich will.

ich meine Haupt-Projektdateien direkt in Mischung selten bearbeiten. Ich finde es schafft Markup, unnötig kompliziert oder ausführlich ist. Auch, wie ich besser vertraut mit WPF / XAML werden, finde ich mich Mischung mit weniger und weniger.

Andere Tipps

Ich habe seit der Version für die Benutzeroberfläche meiner Projekte Mischung wurde mit 1. Ist, dass mein Ziel, den Designer für das Projekt vollständig zu integrieren ist, habe ich pflüge durch, was auch immer in der Art und Weise dieses Ziels bekommt. Obwohl es nicht schon seit einiger Zeit bekannt, MVVM zu sein, ich zu dem gleichen Ergebnis natürlich angekommen und habe Viewmodel worden machen, ohne zu wissen, ein Muster für sie da war. Jetzt mit der Hilfe von anderen, die in Richtung MVVM arbeiten, es wird immer besser die ganze Zeit. Ich habe jetzt 3-Anwendungen mit reichhaltigen Benutzeroberfläche und Funktionalität entwickelt, in dem alle die Benutzeroberfläche in Mischung gemacht wurde. Lesen Sie Josh Smith MSDN-Artikel, Blick auf Jason Dolinger Arbeit, und Karl Shifflett Arbeit zu erwähnen nur einige zu nennen.

Schauen Sie genau auf mit ICommand, INotifyPropertyChanged, die ObservableCollections.

Suchen Sie auch nach, wie Sie Steuerelemente von Ihrem Viewmodel manipulieren kann. Als Beispiel ist es ICollectionView. Es sei angenommen, dass Sie eine Liste von Tieren haben, und Sie haben eine Reihe von Typen, die Sie wollen, dass sie filtern, indem (Vögel, Säugetiere, usw.)

Durch die Verwendung von ICommand und ICollectionView, könnten Sie genug Kontrolle zu, wo ein Designer ein listbox konstruieren könnte, die Tiere zu zeigen, und ein Menü die Filterliste anzuzeigen. Es gibt genug Funktionalität in ICollectionView zu wissen, was die aktuelle Auswahl ist, und wenn Sie ICommand-basierte Befehle für „SortByBird“ haben, „SortByMammal“, etc dann, wenn der Designer das Menü vorgenommen, es (vorausgesetzt, im Kontext des Fensters war Ihr Ansichtsmodell für dieses Fenster) würde die Designer mit den richtigen Optionen liefern zu binden.

Zur Zeit arbeite ich mit einem anderen Team in meiner Firma zu erklären, wie meine Projekte festgelegt wurden, und sie reagieren positiv auf die neue Rolle des Designers mit Mischung.

Ich habe es nicht gelungen, erfolgreich für den Ende Mischung Ende zu verwenden.

ich im allgemeinen Fall zu finden, es schneller ist XAML in VS von Hand zu bearbeiten (Ausnahme würde alles mit Nicht-Standardbürsten umfasst beispielsweise). Mischung ist sehr Klick glücklich, und es ist nicht wirklich schnell es nach oben aus.

Ein weiterer Bereich, in der Mischung wirklich nützlich ist, schafft Stile / Vorlagen aus bestehenden Kontrollen.

Other than that, ich bin noch nicht verkauft. Seine Fähigkeiten fallen, wenn Code-instanziiert Datacontexts verwenden, so dass es dort keine Hilfe ist, und es neigt dazu, nutzlos Markup, statische Größen und so zu erzeugen, was Ich mag es nicht.

Blend ist groß für die Ihnen eine Vorstellung darüber, wie die Dinge getan werden, aber die XAML es macht, ist schrecklich und eng gekoppelt. Wie Sie die XAML-Seite der Dinge besser lernen, werden Sie es viel schneller schreiben Sie einfach den XAML als die Verwendung Mischung finden. Bis Sie zu diesem Punkt können Sie Ihre Änderungen in Mischung machen, aber dann sollten Sie die XAML-Refactoring es weniger eng gekoppelt machen erstellt und die irrelevanten UI-Elemente herausnehmen.

Ich bin ein wenig spät zu dieser Party, aber hoffen, dass jemand noch reagieren kann. Ich habe noch ein Suchergebnis zu finden, die den Prozess skizziert, um eine Linie zwischen dem Designer und Programmierer zeichnen. Der erste Teil ist es MVVM, so gibt es keine Kopplung zwischen der GUI und der zugrunde liegenden „Business-Logik“, und ich arbeite, dass gerade jetzt hart auf dem Lernen. Der andere Teil, das ich jemand über nicht gesehen werden schreiben, wie gehst du eigentlich über ein Projekt in Mischung so zu gestalten, dass der Entwickler kann Ihnen im Grunde ein GUI-DLL von Arten geben, und dann GUI Ihrer Anwendung ändert magisch?

Hier ist, was ich suche - der Entwickler seinen Code wie üblich schreibt und schreibt auch eine sehr einfache GUI, die alles beweist, wie erwartet funktioniert. Inzwischen ist der Designer seine kühle kleine GUI mit all den Usability Erstellen von Features haben die Menschen von uns zu erwarten. Nun kann der Entwickler seine Anwendung mit seiner GUI laufen, aber dann auch der Designer GUI on the fly umschalten kann.

Ich denke, wenn es nicht im laufenden Betrieb durchgeführt werden kann, dass im Idealfall bedeutet, dass der Entwickler seine VS-Lösung gehöre die XAML aus der Mischung Lösung haben würde? Dann in App.xaml nur eine andere Startdatei verweisen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top