Laden...

Daten - Provider Regelwerk?

Erstellt von elron vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.796 Views
E
elron Themenstarter:in
171 Beiträge seit 2004
vor 18 Jahren
Daten - Provider Regelwerk?

@all
ich habe ne menge Methoden die ich gerne klassifizieren möchte
heißt das ich meine Methode auf der Datenschicht mit einem von selbst erstellten Provider von der Präsentationsschicht trennen möchte.
Beispiel: Methode mach ein SQL Eintrag möchte jetzt aber auch das die
Methode in der Lage ist ein mySQL oder Access Eintrag vorzunehmen!
deswegen möchte ich gerne so eine Art Daten - Provider schreiben kann mir da
jemand ein paar Tipps geben?
ich hoffe ich habe mich nicht zu unglücklich ausgedrückt

Gruß
Elron

I
1.739 Beiträge seit 2005
vor 18 Jahren

Ich glaube du meinst eine ProviderFactory. Schau mal bei codeproject.com vorbei.

E
elron Themenstarter:in
171 Beiträge seit 2004
vor 18 Jahren

danke für dein post zu "Providerfactory" aber ich kann mir nichts drunter vorstelle
und schlau werde ich auch aus den beispielen nicht! hast du mal ein Code beispiel?

gruß
Elron

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo elron!

Also wenn Du es Superelegant und äußerst modular machen möchtest, dann kann ich Dir mal Gentle.NET empfehlen.

Das ist Open-Source, und da kann man sich wirklich abschauen, wie man diese Problematik geschickt lösen kann.

Toll dabei ist es, dass die betreffenden Klassen auch noch so heißen. (also z.B. OracleProvider etc...)

Gentle.NET bei www.sourceforge.net

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

E
elron Themenstarter:in
171 Beiträge seit 2004
vor 18 Jahren

danke für den link!
würde es aber gerne mal selber versuchen will es ja zu 100% mal durchziehen!
nur ist dazu echt zu wenig im netz oder ich stell mich zu blöd an!
also kann mir jemand helfen "ich hoffe 😄"

Gruß
Elron

I
1.739 Beiträge seit 2005
vor 18 Jahren

Also ich versuchs mal.
Für fast jede DB gibt es bereits fertige Provider. Dein DAL muss für die "richtige" DB nur den entsprechenden Provider wählen(Konfiguration bzw. UserInput). Dein DAL hat die von dir unterstützten Provider eingebunden und muss nur noch switchen(per SoftwareFactory, sehr universell bei späteren Erweiterungen) und Einstellungen vornehmen, jedenfalls im LLDAL. Im HLDAL können die Befehlsyntax(SQL) bzw. die Zugriffe auf Stored Procedures geregelt werden(der etwas kompliziertere Teil, wenn man bei Syntaxüberschneidungen schreibfaul bleiben will oder muss), ein Pattern wäre die abstract factory.

Es bleibt dir überlassen ob du diese Funktionalität als Dienstleister(Provider), HelperClass(in jeder Schicht anwendbar aber imo ungesund) oder als Zugriffsschicht/fassade darstellst. Ebenso die Frage ob sich die Splittung in HL und LLDAL lohnt.

Für kleine und überschaubare Anwendungen muss man keine Patterns verwenden, sie schaden jedoch nicht bzw. liefern Freiraum für künftige Erweiterungen.

Im einfachsten Fall implementierst du eine Schicht(oder lose Klassen) zum Lesen, Ändern, Schreiben für jede benötigte Geschäftsfunktion für 2-3 Datenbanken über ein Interface(die Implementationen können erheblich voneinander abweichen), und schaltest über eine if-Abfrage bzw Switchblock um(genaugenommen ist ein Interface nicht nötig).
Später wirst du feststellen, dass bei Änderungen bzw. Erweiterungen dieser Weg eine Falle ist. Das bedeutet: der Weg ist nur bei kleinen und terminierten Anwendungen gangbar(oder es wird teuer).

Glossar:
DAL: DataAccessLayer
HL: HighLevel
LL: LowLevel

Das war alles ein bisschen allgemein, sollte auch nur einen Überblick geben. Du kannst das für dich im Moment einfachste nehmen, oder du arbeitest dich in die Materie tiefer ein(je nach persönlichen Anspruch oder Anspruch am Projekt).