OOP Code

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von miles1980.

    Hallo zusammen,

    ich will meine Programme mehr und mehr in OOP umschreiben und würde gerne mal von euch wissen wie ihr das macht allgemein einfach mal.

    Ein Plan ist Zugriff auf die Datenbank eine Routine schreibe die ich immer wieder verwenden kann.

    Kopiert ihr für jedes Project dann die Funktion oder Routine?

    Danke für das Feedback!
    Ich arbeite gerne mit dem 3 Schichten Modell.

    1. Schicht: GUI
    2. Schicht: Datenverarbeitung
    3. Schicht: Zugriffen auf die Datenbank (Speichern, Laden, Löschen)

    Zusätzlich abe ich diverse "Helper Klassen" welche (Thematisch getrennt) verschiedene Methoden beinhaltet, die ich häufig an verschiedenen Stellen benötige. Z.B. Dateiverarbeitung.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Schaust du in Wikipedia wegen dem Schichten Modell.
    Die Helpers könnte man in eine DLL auslagern, brauch ich aber nicht weil ich primär in einem Projekt arbeite. Sollte ich was brauchen, kopiere ich den Part.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ich gehe üblicherweise etwas anders vor.
    Bei mir gibts eine Gui-Schicht, ja.
    Dann gibts ein Datenmodell, und zwar in Form eines typisierten Datasets.
    Von diesem Dataset erstelle ich genau eine Instanz, die von überall inne Anwendung zugreifbar ist.
    In diesem Dataset lege ich auch die Datenverarbeitung an, falls da was zu tun ist.
    Meine Daten-Zugriffs-Schicht besteht aus einer einzigen Klasse, mit allen notwendigen Methoden, um das Dataset zu befüllen oder Änderungen rückzuspeichern.
    Die Methoden sind Public Shared, also im Grunde besteht die komplette "Schicht" einfach aus einer Zusammenstellung von ein paar Methoden.

    Die Verbindung zwischen Datenmodell und Gui erfolgt zu 95% über Databinding.

    Hingegen mein "Helpers"-Bereich ist sehr sehr umfangreich, und ist sogar in zwei Projekte aufgeteilt, die ich in ungefähr jedem Projekt einbinde: GeneralHelpers und WinFormHelpers.
    Dank der Helpers-Infrastruktur fallen bei mir tatsächlich kaum jemals nennenswerte Mengen an Datenzugriffs-Code an, weil zu 95% ist das bereits durch die Helpers abgedeckt.

    Ebenso Datenverarbeitung: Meist ist einfach nix zu tun, aber wenns sein muss, kann ich da auch höchst anspruchsvolle Probleme lösen.
    Wenn wolle guck mal AdvancedPainting

    Dieses mein System habe ich in Auseinandersetzung mit MVC, MVP, 3-Schichtenmodell und Kram entwickelt, weil keiner dieser Ansätze konnte mich überzeugen.
    Ich erwarte von einem Pattern, dass er mir hilft, und dass durch ihn kein "BoilerPlate-Code" entsteht, also Code, der nur iwelche Sachen "durchreicht", ohne wirklich was zu tun.

    Insbesondere Databinding ist ein ganz ausgezeichnetes Mittel, ohne BoilerPlate zu coden. Tja, und grad Databinding kommt in diese dolle Patterns nicht vor (und deshalb halte ich sie auch für ziemlich untauglich).

    Ma abgesehen davon, dass "3-Schichten" fast immer nur abstrakt erklärt wird, und dabei gut aussieht, aber wenns an konkreten Code geht, dann 1) wirds ziemlich hässlich 2) setzt jeder es anders um.

    Also nochmal der "Erfinder-Pattern":
    1. Gui und Datenmodell, verknüpft via Databinding
    2. Businesslogik in Erweiterungs-Klassen des Datenmodells
    3. Datenzugriff: ein paar shared Methoden, in einer Klasse zusammengefasst
    4. umfangreiche Helpers-Infrastruktur

    Die Begrifflichkeit eines Schichtenmodells passt nicht gut dazu - nichtsdestotrotz ist aber alles sehr gut aufgeräumt und verortet, nahezu BoilerPlate-frei und somit ausgezeichnet wartbar.