Autor Beitrag
smdata2
Hält's aus hier
Beiträge: 4


Delphi 7, C++ (VC++ 2008 Express)
BeitragVerfasst: Mo 18.02.13 15:44 
Hallo zusammen,
ich zerbreche mir mittlerweile schon seit Wochen den Kopf über die Umsetzung meines Datenmodells nach MVVM. Ich habe verschiedene Varianten probiert, doch bei jeder gibt es ein oder mehrere Szenarien, die ich damit nicht abgedeckt bekomme, vielleicht denke ich einfach zu engstirnig :)

Ausgangssituation:
    - Die Anwendung arbeitet mit Projekten, jedes Projekt soll in einer eigenen Firebird-Datenbank abgespeichert werden
    - In der Anwendung können mehrere Projekte gleichzeitig geöffnet sein, die Projekte werden in einem TreeView angezeigt:
      * Ein Projekt besteht aus einem Baum von Projektelementen (Kategorien und Formulare).
      * Das Projekt besitzt eine Top-Level-Kategorie (Root-Knoten).
      * Jedem Kategorie-Knoten können wiederum beliebig viele Kategorien und Formulare untergeordnet sein.
      * Ein Formular ist in jedem Fall ein Blatt, eine Kategorie kann (auch wenn es eher wenig Sinn macht) ein Blatt sein.

Jetzt meine Frage...
Wie wäre euer Ansatz für das Model und das ViewModel? Soll z.B. eine Kategorie im Model schon eine Auflistung aller Unterelemente haben, oder soll diese erst bei Generierung des ViewModels entstehen und wie würde ich dann die Referenzierung Kategorie -> Unterelemente ablegen? Außerdem wird es mehr oder weniger oft von Nöten sein, von einem beliebigen Element auf das Projekt, in dem es sich befindet, zuzugreifen ... soll jedes Element demnach eine Referenz auf das Projekt bekommen oder wie würdet ihr das lösen? Oder soll ich in dem Element eine Referenz auf seinen übergeordneten Knoten speichern, oder, oder, oder...?

Ich habe mir mittlerweile zu dem Thema schon so viele Wege überlegt, dass ich jetzt sehr unsicher bin, wie ich am besten an die Sache rangehe ... vielleicht könnt ihr mir zumindest einen Schubs in eine sinnvolle Richtung geben!

Grüße
Marc (smdata2)
Sl0w
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 63

Win 7, Win 8
Delphi 2009, VS2012
BeitragVerfasst: Mi 20.02.13 10:41 
Hallo smdata2,

ich würde mir an deiner Stelle einmal das Entity Framework (EF) angucken. Mit diesem kannst du z.B. das Datenbankmodel im Visual Studio "zusammen Klicken" und dann mit diesem arbeiten.
Das Erstellen von Klassen die in der Datenbank abgebildet sind, ersparst du dir damit schon einmal.
Die von dir genannten Verknüpfungen kannst du auch in dem DB-Model festlegen.
Durch die dabei entstehenden Primär- und Fremdschlüssel kannst du zwischen deinen Klassen hin und her navigieren.

Ich hoffe das kann dir weiter helfen, falls du noch keine Lösung gefunden hast.


Mit freundlichem Gruß,

Lars