Werkzeuge für WPF/MVVM

  • WPF MVVM

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von BitBrösel.

    Werkzeuge für WPF/MVVM

    Hey,

    einige haben sicher schon gelesen das ich dran bin WPF zu lernen, WPF an sich finde ich schon mehr als nur genial, die einzelnen Schichten mit MVVM einfach himmlisch :rolleyes: . MVVM und auch MVC denke ich habe ich soweit ganz gut verstanden. In einem Buch das ich darüber habe, wurden auch Frameworks für WPF erwähnt.
    MVVM-Light und PRISM.

    Nofear23m hatte hier in einem Thread auch ein Nuget Packet empfohlen(Microsoft.Xaml.Behaviors.Wpf), mich würde jetzt mal interessieren, welche es noch so gibt. Klar könnte ich jetzt bei Google nach einer Liste suchen, aber was bringt mir die Liste? Nichts, denn wenn jemand ein zusätzlich Werkzeug nutzt hat das ja einen Grund. Den werde ich durch so eine Liste nicht erfahren, ohne noch tiefer zu buddeln.

    Daher frage ich hier einfach mal. Welche zusätzlichen Hilfsmittel/Werkzeuge setz ihr in der WPF ein? Was sind da die gängigsten Frameworks?
    Hi. @BitBrösel

    MVVM-Light von Laurent Bugnion wird nicht mehr weiter gepflegt.
    Prism habe ich mich nicht herangetraut, kann ich nichts zu sagen.

    Aber ein neuer Platzhirsch scheint am Horizont zu warten...

    Windows Community Toolkit - Microsoft.Toolkit.Mvvm

    NuGet-Suchbergriff: CommunityToolkit.Mvvm

    Link zum Beispiel
    Link zum Launch-Video

    Es wird überwiegend UWP bei den Beispielen vorausgesetzt, aber per NuGet kann es auch unter WinForms/WPF eingesetzt werden.

    Ich setzt das nur bei neuen Projekten ein, ansonsten verwende ich zwei Dateien, die ein minimalistisches MVVM-Framework bilden.

    Einmal Observable (die meisten nennen es ViewModelBase), was in jede ViewModel-Datei/-Klasse eingebunden wird,
    mit "Inherits Observable".

    Jedes ViewModel erbt von der Klasse "Observable".

    Damit ist die eine Richtung der View-ViewModel-Kommunikation abgedeckt.

    Zweite Datei ist RelayCommand und diese ist für das Ausführen von Methoden/Funktionen/Operationen im ViewModel,
    aus der View heraus.

    Mit RelayCommands kannst du auf Microsoft.Xaml.Behaviors.Wpf verzichten.
    Buttons zum Beispiel werden gedrückt und mit der "Command"-Eigenschaft im XAML, kann dann der zweite Kommunikationskanal eröffnet werden.

    Relaycommand Syntax vb.net zu c#']Link[/url] hier im Forum zu einem meiner Posts wo ich die Dateien herhabe.

    Das minimalistische Framework muss natürlich manuell in jede Datei eingebunden werden. Nervig, aber trainiert das MVVM-Muscle-Memory (TripllleM-Effekt mit drei L :) )

    c.u. Joshi

    P.S.: Das CommunityToolit.Mvvm ist der Nachfolger von MVVM-Light (abgesegnet von L. Bugion himselfk, for real and in VR-4D)
    Wie Joshi schon schrieb und ich in meinen Tutorials immer sage. Du brauchst nur diese zwei Klassen.

    Den Rest fals notwendig nach bedarf. Auch die Behaviours brauch ich fast nie.
    Ich habe in drei Jahren bisher nur bei einem Projekt irgendwas anderes benötigt. Bei allen anderen brauchte ich nichts zusätzlich.
    Deshalb meine ich das wenn du was vesonderes brauchst dann Frag einfach ob es da was gibt, suche im Netz oder bau es dir selbst. Bei letzterem lernt man am meisten:-)

    Grüße
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ja Nofear23m, beim selbst basteln lernt man immer wieder was dazu. Im "neu-erfinden des Rades" bin ich fast schon ein Experte. :D

    Ich denke jetzt gerade das es vllt. eine gute Idee ist erstmal komplett ohne zusätzliche Frameworks zu arbeiten. Ist ja nicht falsch sowas selbst Basteln zu können, wenn dann doch mal ein FW nicht mehr gepflegt wird, müsste man u.U. eh wieder alles umbauen, oder wenn das FW OpenSource ist selbst einen Fork pflegen. Dachte es gibt da unverzichtbare "Standards", ich war echt begeistert wie einfach man das mit der Maus und dem Behaviors.WPF umsetzen kann(Thread von Kafffee).

    Das Microsoft.Toolkit.Mvvm werde ich mir auf jeden Fall näher anschauen aber vorerst nicht nutzen, allerdings ein wenig davon inspirieren lassen. Scheint dem Launch-Video nach ganz nützliche Komponenten zu haben.