![]() |
Wpf
Hat jemand Erfahrungen mit WPF gemacht?
Taugt das für komplexe Anwendungen mit viel Drag&Drop-Unterstützung (z.B. wenn ich meine Autos und Garagen auf meinem Anwesen verwalten und die Autos per D&D über die gepflegten Schotterwege von einer Garage in eine andere ziehen will, was für Johann dann einen "Umsetzauftrag" generiert)? Das Beispiel soll nur verdeutlichen, dass man "Objekte" per D&D zueinander zuordnen können und auf auf einer Fläche (Designer) positionieren können soll. (Meine Autos setze ich natürlich weiter selbst um ;-)) |
AW: Wpf
WPF ist eine FireMonkey ähnliche Grafikbibliothek. Theoretisch kann man damit alles Lösen.
|
AW: Wpf
Na ja, ich meinte wie komfortabel oder aufwendig das Databinding in der Realität ist. Insbesondere wenn es darum geht, Zuordnungen und Positionen über D&D zu verändern.
Selbst habe ich mich noch nicht beschäftigt damit, aber wenn es Erfahrungen und Meinungen dazu gibt würden die mich interessieren. |
AW: Wpf
Databinding: Lese dich bevor du anfängst die WPF zu benutzern erst mal (sofern nicht geschehen aber ich denke sonst hättest du nicht gefragt) in MVVM ein, wenn du den dreh raus hast ist das ganze nur noch eine Sache deines Codes und weniger wie du es noch zur Oberfläche bekommst und dort veränderst.
WPF ohne MVVM ist eine Qual, mit ist es jedoch ziemlich easytouse und du brauchst dich nur noch auf den eigentlichen Code konzentrieren, dahingehend bieten sich auch Frameworks wie das "light" oder "Caliburn.Micro" an (light ist glaube ich etwas weiter als Caliburn.Micro, als ich das zuletzt benutzt habe war es noch etwas eingeschränkt, durch die Namenskonventionen aber sehr einfach zu benutzen und auch wenn man sich mit dem MVVM kaum bis gar nicht beschäftigt hat). Ich hoffe ich habe die Frage richtig aufgefasst (Teilweise zumindest, denn dein Anwendungsbeispiel hatte ich so bisher noch nicht in der Praxis) und konnte helfen, sollte ich weit daneben liegen einfach ignorieren ;) |
AW: Wpf
Man muß sich davon verabschieden, wie in Delphi alles über 'rumklicken' hinzubekommen. Auch wird man life keine Previews hinbekommen. Aber dadurch, daß man -wie ExceptionOverflow schon schrieb- auf MVVM angewiesen ist, wird man das nicht mehr vermissen. Irgendwie dachte ich Jahre lang, das Klickbunti à la Delphi state-of-the art ist und nur Mormonen und andere Waldschrate noch Bindings per Hand kodieren. Stimmt aber nicht. Was man scheibar mehr an Tipparbeit hat bzw. was 'im Code' (des Viewmodels) steht (und nicht in der DFM), zahlt sich später mehrfach aus.
Grundsätzlich würde ich mit Winforms anfangen, wenn ich auf C# umsteige. Wenn man dann die TDataSets und das life-Rumdesigne nicht mehr vermisst, kann man auf WPF umsteigen. Na ja, wenn man kein Pfosten ist, kann man auch gleich auf WPF umsteigen, aber es tut schon ein wenig mehr weh. Die Lernkurve bei WPF ist anfangs flach (oder steil, jeh nachdem, wie man es sieht), denn man benötigt nicht nur MVVM-Kenntnisse, sondern muss sich auch damit anfreunden, das der XAML-Editor (und nicht der OI) die beste Art ist, seine Controls zu pimpen. Klingt blöd, ist aber so: der OI kann nicht alles darstellen, was man mit XAML machen kann. |
AW: Wpf
Dann liege ich mit meinen Erkenntnissen in Sachen WPF ja voll auf der Linie. Will man mit WPF ernsthaft vorankommen, dann muß man sich wirklich umfassend vom bisherigen RAD-GUI-Design verabschieden. Man programmiert seine Oberfläche quasi wieder. Wer weiterhin seinen Button auf die Form droppen will, doppelklick und Code dahinter, bleibt besser bei WinForms.
|
AW: Wpf
Zitat:
Sollte man natürlich tunlichst sein lassen. Aber das UI Design per Krams auffe Form verteilen ist dasselbe. Die Interaktion zwischen UI und Businesslogik läuft nur mehr entkoppelt voneinander. |
AW: Wpf
Na nee. Du baust Dir deine Oberfläche schon im Designer zusammen. Du willst ja sehen, wie das aussieht. Nur unter dem Designer in der IDE ist der XAML-Editor, so als wenn der DFM-Quelltext in der Delphi-IDE zu sehen wäre (fände ich auch ganz prickelnd, manchmal). Und wenn Du da was reintippst, siehst Du es im Designer sofort.
Und bevor ich die Property im OI per Mausrad suche, tippe ich das doch gleich im XAML ein. Vor allen Dingen mit den netten Spezialitäten, wie 'relative Maße' usw. |
AW: Wpf
Zitat:
|
AW: Wpf
Zitat:
|
AW: Wpf
Nein. Ich muss bei jedem Tippen ja hin und her schalten. Live & direct hätte ich es gerne.
|
AW: Wpf
Danke Euch schon mal. :-)
Im Moment arbeite ich an einem asp.net-Projekt. Da gibt es ja auch schon eine XML-Beschreibung der Seite und code behind. So eine ungefähre Vorstellung habe ich also schon mal. :-) Ich habe auch schon mal Videostücke zu WPF angesehen. Databinding ist ja schon länger mein Thema. ;-) Und die Lösung von WPF scheint mir schon ganz vielversprechend. Ohne eigene Erfahrungen ist das natürlich nicht immer so genau einzuordnen. Insbesondere ist mir noch nicht klar, wie das Verschieben von Controls mit der Maus realisiert und verarbeitet werden kann. Wenn ein Control.Left z.B. an einen Wert X in der Datenschicht gebunden ist, dann müsste beim Drag&Drop entweder das Databinding kurzzeitig gelöst werden und nach der Aktion Control.Left in X geschrieben werden oder das Control dürfte durch Drag&Drop nicht wirklich verschoben werden sondern es müsste Control.Left + Verschiebestrecke in X geschrieben und die GUI neu gezeichnet werden. Noch komplexer wird das, wenn man nicht direkt Pixel-Positionen in X speichert sondern irgendwelche virtuellen Werte (wie z.B. x/y-Raster o.ä., die dann im Formular in Pixel umgerechnet werden müssen). @ExceptionOverflow Im Moment stehen zwei andere Projekte an, aber irgendwann werde ich mal meine Turniersoftware überarbeiten und denke schon mal nach, ob WPF ein guter Ansatz sein könnte. In Bezug auf die Trennung von GUI und BL natürlich ganz sicher. Aber in Bezug auf die Variabilität der GUI bin ich noch unsicher. Meine Turniersoftware habe ich mit einem eigenen Databinding unter Delphi realisiert, so dass die GUI schon sehr wenig Code brauchte. Bsp: ![]() WPF hat noch einen etwas anderen Ansatz. Meiner war eher RAD + BindungZuObjekten (ähnlich DBControls). |
AW: Wpf
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz