Frage

Ich bin ein Neuling und wenn Herumspielen mit dem Erstellen von Datenbankanwendungen ich immer nur meine Formulare erstellt und setzen Sie den gesamten Code und Bindungen dort. Anstelle von Arrays und Listen mit Informationen, die hielt ich Änderungen an die Datenbank direkt.

Nun, da ich ein wenig weiterentwickelt haben lassen Sie uns sagen, dass ich Widgets an Kunden verkauft und hielt die Verkaufsinformationen in einer Datenbank. Wenn ich ein Programm schreiben, die Datenbank zuzugreifen, würde nicht ich möchte eine Klasse des Typs ‚Kunde‘ erstellen und ‚Widget‘ mit diesen Unternehmen zu arbeiten?

Wenn ich mich nicht irre, was ist dann der geeignete Ansatz zur Programmierung von Datenbankanwendungen?

War es hilfreich?

Lösung

Ja.

Sie wollen schauen Sie in n-tier Programmierung.

Grundsätzlich Sie ermöglicht es Ihnen, Front-End (Presentation Layer) nur Zugriff auf Ihre Klassenbibliothek (Business Layer). Ihre Klassenbibliothek greift dann auf Sie Datenbank.

Dies gibt Ihnen eine weniger eng gekoppelte Lösung und ermöglicht mehr wartbaren Code. Auch von Ebenen Sie erlauben Änderungen an DB ohne die Notwendigkeit, neu zu schreiben Code in Ihrem Frontend, solange die Schnittstelle mit dem Business Layer Einführung muss nicht geändert werden.

Was Bindung betrifft, wenn Sie Visual Studio Windows Forms verwenden (ab 2005) sollten Sie uns Lage sein, ein Binding , dass Sie dann Ihre Steuerelemente zu binden, verwenden können. Wenn Sie ASP.NET verwenden, dann Ihre Steuerung auf eine Liste von Objekten ohne Probleme binden sollte.

Für ASP.Net die Object könnte einen Blick wert sein in . Ich habe es selbst nicht benutzt, aber es gibt viele Proben auf dem Netz. Versuchen Sie hier oder hier .

Andere Tipps

Ja.

Sie möchten genau unter objekt-relationales Mapping .

Ihre realen Business-Entitäten, die von Objekten modelliert werden, die auf relationalen Tabellen abzubilden.

Sie wollen nicht Ihre Präsentationsschicht auf Ihrer Datenbankstruktur direkt abhängig ist; das Problem mit diesem ist, wenn Ihre Datenbankstruktur ändert überhaupt müssen, Ihre Präsentationsschicht ändern, und auf lange Sicht, dass die Tendenz, Probleme zu verursachen. Darüber hinaus gibt es Sicherheitsprobleme beteiligt mit Ihrer Präsentationsschicht direkt mit der Datenbank interagieren müssen.

Die grobe Analogie ist hier zu Märkten; wenn Sie in den Laden gehen, um einen Laib Brot zu kaufen, brauchen Sie nicht zu wissen, wie Weizen anzubauen; alles, was Sie wissen müssen, ist, dass Sie Geld haben, und sie haben Brot, und dass sie eine bestimmte Menge an Brot für einen bestimmten Geldbetrag auszutauschen. Sie brauchen nicht zu wissen, was Zeit des Jahres, die Weizen zu pflanzen, oder wie die Spreu zu entfernen, oder irgendetwas davon, weil die Trägerschicht für Sie, dass kümmert. Ebenso hat der Landwirt nicht wissen müssen, wie man Brot eine ganze Reihe von Menschen zu verkaufen, oder sogar, wie Brot zu machen; alles, was er zu tun hat, wird wissen, wie Weizen anzubauen.

Modern Design-Philosophie empfiehlt, eine Zwischenschicht verwenden zwischen Präsentationsschicht und Ihre Datenbankschicht zu interagieren; das ist, wo Sie Ihre Geschäftslogik setzen. So zum Beispiel, sagen wir mal, dass Sie Widgets auf Ihrer Website zu verkaufen. Statt Ihre Präsentation Code mit Abfrage der Datenbank für Widgets und angezeigt werden, können Sie ein Business-Objekt haben, die Ihre Widgets behandelt. Auf diese Weise, Ihr Business-Objekt muss wissen, was Ihre Datenbank-Struktur ist, aber Ihre Präsentationsschicht muss nur wissen, wie eine Liste von Widgets Ihr Business-Objekt fragen anzuzeigen. Noch wichtiger ist, können Sie in Ihrem Business-Objekt der Regeln setzen, die aufgerufen werden sollen, wenn bestimmte Dinge passieren. Anstatt also Ihre Präsentationsschicht direkt Änderungen an die Datenbank für die Inventarisierung und die Herstellung von Aufträgen, wenn eine Bestellung gemacht wird, Ihr Business-Objekt weiß, wie die Änderungen vornehmen und welche Tabellen zu ändern, wenn Sie Ihre Präsentationsschicht-Anforderungen, die ein Verkauf durchgeführt wird.

Auf diese Weise trennen Sie die Anzeige Ihrer Informationen aus der Persistenz und der Logik der Website zugrunde liegen. Es handelt sich um eine gute Planung; Insbesondere müssen Sie herausfinden, was Ihre Website wird zu einem bestimmten Zeitpunkt tun, und was das bedeutet in Hinblick darauf, was Schnittstellen Ihre Business-Objekte zur Verfügung stellen. Dann implementieren Sie Ihre Business-Objekte aus der Basis dieser Anforderungen; diese Business-Objekte sind, wo Sie die Kenntnisse der Datenbankstruktur und Ihre spezifische Geschäftslogik setzen ( „wenn A passiert, tut B und dann C“, usw.).

Dies scheint eine Menge zusätzlicher Arbeit am Anfang, aber es ist wirklich lohnt sich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top