WPF Datenbank

  • WPF

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Hallo,

    ich bin selbst WPF Anfänger und habe bereits vor 2 bis 3 Jahren das erste mal versucht "mal eben schnell" den WPF Einstieg zu finden.
    Das ist nach Tagen mit viel Frustration gescheitert. Dann hatte ich noch 2 mal solche Versuche gestartet, die allesamt gescheitert sind.
    Mal eben schnell geht da nichts, gar nichts. WPF hat mit Winforms nichts zu tun. Alles was irgendwie mit GUI zu tun hat, geht in WPF völlig anders.
    Es wird sogar noch schlimmer, weil WPF auch das von mir mitlerweile geliebte typisierte DataSet nicht unterstützt.

    Ohne Sascha's WPF Tutorial hätte ich es gar nicht erst erneut versucht. Und ich kann noch fast gar nichts. Aus meiner sehr geringen und knappen Erfahrung heraus kann ich nur empfehlen:
    Fange ein wirklich kleines Projekt in WPF an, möglichst völlig ohne Dataset oder Datenbank.
    Ich habe das Tutorial auch gelesen und glaubte es zu verstehen. Ich muss zugeben, dass mein Verstand das Erfasste nicht eben mal in einer abgewandelten Übung umsetzen konnte.
    Ich kann nur sagen: Vergiss alles was Du bisher gelernt hast, sofern es sich auf WinForm bezieht.

    Ich habe das hier geschrieben, weil ich Dir diesen Satz
    Ich denke auch das es bei vielen anderen auch so ist und dann schmeist man hin weil das einfach kein Fortschritt gibt.
    nur nachfühlen kann.
    Die Einstiegshürde zu WPF ist für jemanden wie mich extrem hoch. Ich bin auch kein Informatiker oder Programmierer, sondern einfach nur ein steinalter Sack, der sich als einziger in der Firma traut, solche Hilfen (Programme) zu entwickeln.
    Gruß
    Rob
    Hallo Leute

    Amro schrieb:

    Wie gesagt ich will erstmal ein Grundverständnis wie man überhaupt mal ein WPF Projekt aufbaut.

    Genau das versuche ich dir zu vermitteln und auf das Zielt auch meine Tutorialreihe. Das ist auch der Grund warum ich in der Tutorialreihe auch nicht gleich beginne mit einer App. Man muss bei der WPF gewisse Techniken vorher erlernen um damit zurecht zu kommen.

    Amro schrieb:

    Es bringt mir nix wenn überall von Commands , Inotify, Bindung und sonstiges
    geredet wird und ich nicht weiss wie man das richtig einsetzt.

    Das kann man ja hier im WPF Bereich erfragen und dann Stück für Stück versuchen es zu verstehen. Gerne erkläre ich auch Code welchen ihr Irgendwo findet.


    Amro schrieb:

    Ich wollte das Projekt eigentlich nach und nach
    Verbessern und Optimieren und das gelernte dann hier
    Stepweise einbauen bis ein einigermassen akzeptables
    Projekt ensteht.

    Nun gut, meiner Meinung nach der Falsche weg. Jetzt machst du mit nem DataSet rum, wo du genau weist das es dir nichts bringt. Dann wirfst du alles um, um es wieder anders zu machen.
    Wenn ich schreibe das in der WPF ein DataSet nix bringt und dir zeige wie man es anders macht, wozu dann nochmals was falsches lernen nur um dann wieder alles umbauen zu müssen.

    So lernst du zweimal. 1x falsch und 1x richtig. Zeitverschwendung oder?

    Dksksm schrieb:

    Ich muss zugeben, dass mein Verstand das Erfasste nicht eben mal in einer abgewandelten Übung umsetzen konnte.

    Hierfür gibt es den Supportthread welcher in jedem Kapitel verlinkt ist. Bei Fragen (muss nicht unbedingt genau das im Tutorial gezeigte Beispiel betreffen) könnt Ihr dort schnell und einfach Fragen.
    Dafür ist der Thread ja da. Tut euch keinen zwang an.

    Speziell wenn man von WinForms kommt ist es glaube ich sehr schwer das für WinForms erlernte "wegzublenden" aber wenn man mal den Bogen raus hat und versteht wie das ganze aufgebaut ist, ist es einfach nur noch Übungssache. Ich kann euch nur raten. Fragen, fragen, fragen.

    Grüße
    Sascha
    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. ##

    Ok, ich hab jetzt mehrere Tabellen und möchte die in ein DataGrid anzeigen.
    Je nach dem was in der Listbox angeklickt wird.
    Dein Beispiel hatte nur eine Tabelle. Observable(of Kunde).
    Was muss ich jetzt machen?
    Für jede Datenbank-Tabelle eine Klasse erstellen und dann
    als Eigenschaft/ObservableCollection in ein ViewModel?



    Na ICH würde erstmal einen weiteren Schritt zurück gehen.

    WAS soll denn das genau werden? Je nachdem ob das ganze für JEDE Datenbak anwendbar sein soll oder ob ich die Models (Tabellen) kenne gibt es andere Vorgehensweisen.

    Erzähl doch mal in ein paar Worten was das werden soll wenn es fertig ist. Also nicht primär was du nun als erstes erreichen willst sondern was daraus werden soll wenn es ausgerollt wird.

    Grüße
    Sascha
    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. ##

    Amro schrieb:



    Als erstes wollte ich nur die möglichkeit schaffen in einem Window die Datenbank anzusehen.
    Für den Anfang als Übung.
    Nachher natürlich noch mehr Abfragen und Hinzufügen von Daten (CRUD).
    Vielleicht noch ein Diagramm und Reports zum Ausdrucken.


    Für mich ist das einfach eine Übung zum Lernen.
    Es soll kein besonderes Projekt werden, sollte aber Grundlagen der WPF
    hinsichtlich dem Arbeiten mit Datenbanken beinhalten.

    Ich bin da jetzt auch nicht festgelegt.
    Wenn du Vorschläge hast was man da noch als Übung einbringen kann
    ist mir das auch recht.

    Nofear23m schrieb:

    Je nachdem ob das ganze für JEDE Datenbak anwendbar sein soll oder ob ich die Models (Tabellen) kenne gibt es andere Vorgehensweisen.

    Unterschied!!
    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. ##

    Ok. Das ist auch die bessere Übung bez. der ViewModels.

    Ich hatte dir ja das Beispiel gemacht mit einem ViewModel für Kunden.

    Jetzt würde man für jede Tabelle. (Kann man auch Entität nennen) eine Klasse mit den Eigenschaften für jede Spalte in der Tabelle anlegen welche man im View anzeigen möchte.

    Dann kann man die Abfrage je nachdem welche Tabelle selektiert wird in einem Select Case abarbeiten und eine Instanz des jeweiligen ViewModels in das SelectedItem reichen.

    So kannst du sowohl das verhalten als auch die View gestellten wie du willst.

    Verstehst du in etwa was ich meine?
    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. ##

    ErfinderDesRades schrieb:

    Achso - und dann arbeitet Wpf nicht in brauchbarer Weise mit DataTables zusammen. Du müsstest EF verwenden.
    Diese Aussage würde ich gerne zurücknehmn/relativieren.
    Wenn du tatsächlich an keiner Stelle direkt an Model-Klassen binden willst (und damit NoFears Wpf-Prinzipien folgst), sondern ausschliesslich an händisch gecodete Viewmodel-Klassen, dann ist die gewählte Daten-Zugriffs-schicht denn doch egal, also da kannst du was nehmen, mit dem du gut klarkommst - das kann auch typDataset sein, Dapper, nHybernate (davon hört man aber schon lange nixme), oder eben EF.
    Alles gut.
    Anscheined macht es jeder anders und jeder hat andere Vorstellungen.
    Ich hab jetzt das Datatable genommen um die Daten aus der DB zu holen
    und übergebe sie an einem Objekt von Typ ObservableCollection.
    Diese wiederum binde ich an an mein DataGrid.
    Es funktionier erstmal so und ich werde darauf aufbauen bis ich
    mehr Erfahrung in WPF gesammlt hab.Das ist der bessere weg für mich den
    ich rausgefunden hab um WPF zu lernen.Egal ob es jetz richtig oder falsch ist.
    So bekomm ich wenigstens ein ertsen überblick was machbar ist.
    Ich glaub jeder muss in WPF seinen eignen
    Weg gehen um zu lernen, gerade weil WPF so Umfangreich ist.

    Gruss Amro

    Amro schrieb:

    Ich glaub jeder muss in WPF seinen eignen
    Weg gehen um zu lernen, gerade weil WPF so Umfangreich ist.
    Nö - soner Beliebigkeits-Denke täte ich mich nicht anschließen.
    Wpf ist auf ein paar Konzepte hin designed, und die sollte man auch kennen und anwenden, sonst wird das Ergebnis in verschiedenen Hinsichten minderwertig:
    • Viewmodel getrennt vom View
    • Gui-Databinding ans Viewmodel
    • Binding-Picking
    • DesignTime-Datenvorschau
    Das sind wesentliche Wpf-Features, die man kennen und ingang bringen sollte, und das geht nicht so einfach auf x-beliebigen Wegen.