Front-End und Back-End sind Begriffe, die sich auf die herkömmliche Client-Server-Konfiguration beziehen. Das Back-End ist die Datenbank selbst, die auf einem Server liegt. Front-End bezieht sich auf die Sammlung von Client-Applikationen, welche die fragliche Datenbank ansprechen. Das können Applikationen sein, die in jeder der verbreiteten Programmiersprachen geschrieben sind (zum Beispiel Visual Basic, C++ oder PHP). Wenn man über das Front-End spricht, muss man auch Applikationen wie Microsoft Access, Excel und Word einbeziehen.
In einem kleinen Unternehmen mit weniger als 100 Computern mögen diese Unterscheidungen rein theoretisch erscheinen, aber das Motto sollte heißen: „Für den Erfolg entwickeln, um keine Fehler einzubauen“. Darum sollte so viel Logik wie möglich im Back-End statt im Front-End angesiedelt werden. Angenommen, man hat eine Prozedur oder Funktion, die einen Datensatz erzeugt, die Auswahl mit einem oder mehr Parametern bestimmt und sie dann in eine oder mehrere Spalten ordnet. Wenn man die Logik dieser Prozedur in das Front-End verlagert, muss man sie in jedes neue Front-End duplizieren, das man nächste Woche oder nächsten Monat hinzufügt. Auch wenn man gerne denkt, dass Logik unabhängig von der Sprache ist, ist das in der Praxis nicht der Fall.
Die Entwicklung hat sich von der klassischen Client-Server-Struktur zu verschiedenen Formen von 3-Schicht-Architekturen weiterentwickelt (DLL-Hölle, SOAP und so weiter). Bei diesen Architekturen spricht das Front-End eine mittlere Schicht an, die eine Menge Code enthält und die von allen entsprechenden Front-Ends angesprochen werden kann. Die mittlere Schicht spricht ihrerseits die entsprechende Datenbank an. Wie man diese Kommunikation erzielt, variiert mit der Sprache des Front-Ends und der Implementierung der mittleren Schicht, jedoch genügt es zu sagen, dass diese mittlere Schicht mit dem Datenbankserver kommuniziert und dass das Front-End sich nur darum kümmern muss, mit der mittleren Schicht zu sprechen. Man kann daher den Begriff Back-End ausdehnen, so dass er diese Architektur ebenfalls einschließt. Der Punkt ist hier, dass das Front-End so wenig wie möglich tun soll. Wenn man eine mittlere Schicht verwendet, verlagert man so viel Logik wie möglich in diese Schicht, denkt dann noch einmal über das Design nach und verlagert so viel Logik wie möglich zum Back-End.
Neueste Kommentare
3 Kommentare zu Ist LINQ die Zukunft der Datenbank-Entwicklung?
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
Auf die Anwendung schauen
auf die ewige Frage, wo die Anwendungslogik am besten plaziert werden sollte helfen auch die Dogmen des Autors nicht. Schließlich gibt es zahlreiche Anwendungen, die auf bestehende Datenbanken in Unternehmen Rücksicht nehmen müssen. Hier bestimmt letztendlich der Anwender welche Datenbank eingesetzt wird und die Anwendung muss mit unterschiedlichen existierenden Datenbanken zusammenarbeiten. Nach 15 Jahren Datenbankentwicklung bin ich sicher, dass es keinen Stein der Weisen gibt. Die Anwendung und deren voraussichtliche Entwicklung bestimmt, wo ich die Logik plaziere, sonst gar nichts.
AW: Auf die Anwendung schauen
Ist super alt; aber bei den alten News kann man am besten die Idee dahinter verstehen.
Merkwürdiger Artikel
Schon alt, aber dennoch:
Ich kann das Problem des Authors nicht nachvollziehen? BackEnd? FrontEnd? Was soll diese künstlich herbeigeredete Begründung?
Es ist m.E. unerheblich, ob man seine SQLs z.B. via ADO.NET direkt gegen die Datenbank schickt oder ein integriertes Sprachkonstrukt verwendet. Die Prinzipien ändern sich damit nicht!
Kernpunkt ist wie die resultierenden Daten weitergegeben werden. Und da ist natürlich jedem Entwickler, der zumindest eine 3-tier Anwendungen entwickelt hat klar, daß es ohne Probleme möglich ist LINQ in eine 3-tier Umgebung zu integrieren.
Inzwischen gibt es auch einige LINQ erweiterungen z.B. auf codeplex.com welche die Ausführung von LINQ auf Remotemaschinen und deren Parallelisierung ermöglichen. Auch ein nettes Tool – über den Sinn lässt sich streiten.