Hello,
wir müssen für ein Wahlpflichtfach (Studium der Tech. Informatik) eine Homepage (wir programmieren einen Vokabeltrainer) erstellen. Dabei sollen wir Datenbankabstraktion verwenden. Es gibt die Möglichkeit eine Klasse zu schreiben die die Anfragen weiterleitet. Nur stehen dabei die SQL-Befehle direkt im Quellcode. Mann kann die SQL-Befehle aber auch irgendwie auslagern, wie wird dies gemacht? Hat mir da jemand ne Beschreibung?
hmh, da fallen mir unter ASP.NET schon mehrere Punkt ein, an denen Datenabstraktion greifen könnte.
Verwende Objekte statt die Ergebnisse von SQL-Abfragen, d.h. bau dir ein einfaches Datenverwaltungsobjekt, das Wort und Übersetzung enthält. Wenn du dies nutzt ist für alle nachgelagerten Instanzen irrelevant, ob das Wort aus einer SQL-Abfrage oder einer Textdatei stammt.
Das ist aber wohl nicht der Hintergrund deiner Frage.
Kapsele _komplett_ die Datenzugriffslogik. ASP.NET hat verschiedene Zugriffsobjekte, die auf bestimmte Datenbanken zugeschnitten sind, anders herum gibt es Wrapper, die herstellerunabhängig sind - siehe hierzu MSDN: Writing Provider-Independent Code in ADO.NET, dort insbesondere das ganze Factories-Kapitel
Man kann anstatt SQL-Statements zu verwenden auf StoredProcedures ausweichen. Eine StoredProcedure wird direkt in der Datenbank abgelegt und ist von außen durch ihren Namen ansprechbar. Für die Datenbank hat dies den Vorteil, dass sie die Zugriffspfade schon im Voraus bestimmen kann, für die Anwendung hat es den Vorteil, dass eine Änderung an der Abfrage keine Änderung der Anwendung erfordert. Man ruft einfach die Procedure mit dem Namen auf. Nachteil: man kann nicht ohne weiteres die Anwendung schnappen und auf einen anderen Server werfen, man muss dort auch die Procedures erst anlegen. Aber, nachdem man das ja mit den Tabellen sowieso muss, ist der Nachteil vernachlässigbar.
Nochwas das für SP spricht ist der Umstand, dass auch SQL Dialekte kennt und man über StoredProcedures ggf. besser die Eigenheiten der Datenbank abfedern kann.
Du könntest die SQL-Befehle in eine Text- oder XML-Datei auslagern. Wenn du das entsprechend geschickt machst, dann stellt dir ASP.NET bereits sehr komfortable Zugriffsmethoden zur Verfügung, vgl. z.B. ConfigurationManager, wobei es sicherlich noch bessere gibt, Stichworte PropertyManager oder so, da bin ich gerade auf dünnem Eis.
MfG
Rouven
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
"I wish it need not have happened in my time" - "So do I, and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us." -- J.R.R. Tolkien: "The Lord Of The Rings: The Fellowship Of The Ring"