none
Eigene Klasse(n) für Datenbankoperationen RRS feed

  • Frage

  • Moin moin,

    ich möchte eine kleine DB-Anwendung schreiben, welche natürlich die Operationen Neu (Insert), Anzeigen (Select), Ändern (Update), Löschen (Delete) verwendet.

    Nun meine Frage: Um keinen Spaghetti-Code zu produzieren sollte man ja verschiede Klassen nutzen. Wie ist es allgemein üblich? Alle DB-Operationen in einer Klasse oder für jede Operation eine eigene Klasse zu schreiben?

    Gibt es "Vorlagen" für solche Klasse oder wie macht Ihr das?

    Bin für jede Hilfe dankbar.

    Gruß und ein Schönes Wochenende

    Freitag, 5. August 2011 11:45

Antworten

Alle Antworten

  • Hallo,

    das hängt ein wenig davon ab, welche Technologie Du einsetzen möchtest.
    .NET kennt mittlerweile einige:

    Typisierte DataSets bringen mit ihren TableAdapter eine Datenzugriffsschicht mit.
    Microsoft favorisiert jedoch mittlerweile das Entity Framework.

    In Data Access Practices Using Microsoft .Net: A Nerdly Comparison werden die verschiedenen Techniken
    anhand des Repository Musters gezeigt (wobei es eine leichtgewichtige Interpretation des DDD Musters ist).
    Die Beispiele sind zwar in C#, der Aufbau ist in Visual Basic identisch.

    Für den Anfang darfst Du es Dir auch einfacher machen. Ich hatte vor kurzem eine einfache
    Datenschicht gezeigt in Problem mit LINQtoSQL. Das kann jede der obigen Technologien sein
    und ist den Bedürfnissen nach erweiterungsfähig.

    Gruß Elmar

     

     

     

    Freitag, 5. August 2011 18:45
  • Hallo Elmar,

    vielen Dank für Deine Antwort mit den Lösungsmöglichkeiten. Würdest Du nun eine Klasse für alle Datenbankoperationen schreiben oder für jede Operation eine?

    Gruß

    Montag, 8. August 2011 06:54
  • Hallo,

    Übertreiben sollte man es mit der Klassenbildung auch nicht.
    Funktional zusammengehöriges sollte in einer Klasse zusammen gefasst werden -
    das gilt nicht nur für Datenbankoperationen.

    Schau Dir mal Martin Fowler's:Catalog of Patterns of Enterprise Application Architecture an
    Dort kann man viele gängige Muster ableiten, auch wenn sie in den wenigsten Fällen
    in Reinkultur existieren. Das klassische CRUD wäre dort das Table Data Gateway

    Gruß Elmar

    Montag, 8. August 2011 08:04
  • Hallo,

    ja so sah ich das eben auch. Ich kenne halt einige die der Meinung sind, dass alle Datenbankoperationen ihre eigene Klasse bekommen müssten.

    Dann werd ich mein Projekt ersteinmal angehen.

    DANKE  

    Montag, 8. August 2011 08:43
  • Hallo,

    wie angedeutet, da gibt es reichlich Meinungen zu dem Thema.

    Je nach verwendeter Schnittstelle und Umgebung (Desktop vs. Web - statuslos)
    ändert sich das zudem.

    Aber zu viel den Kopf sollte man sich darüber auch nicht zerbrechen,
    da kommt meist nicht sehr viel Besseres bei raus.

    Wenn Du einen ersten Entwurf hast, kannst Du ihn gerne posten.

    Gruß Elmar

    Montag, 8. August 2011 16:06
  • Hallo Elmar,

    werde ich tun. Es kommen 100%ig noch Fragen meínerseits.

     

    Gruß

    Dienstag, 9. August 2011 06:44