AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Sw-Architektur Drei-Schicht Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

Sw-Architektur Drei-Schicht Anwendung

Ein Thema von lowmax_5 · begonnen am 20. Mär 2013 · letzter Beitrag vom 21. Mär 2013
 
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.059 Beiträge
 
Delphi 12 Athens
 
#7

AW: Sw-Architektur Drei-Schicht Anwendung

  Alt 21. Mär 2013, 11:15
Hallo,

ich habe mal eine grundlegende Frage zum Aufbau einer datenbankbasierten Anwendung, die aus drei Schichten bestehen soll. (Darstellung, Anwendungslogik, Datenbankschicht). Ziel ist es z.B. die Darstellungsschicht gegen eine andere Technologie zu tauschen z.B. VCL gegen Html-Darstellung, ohne dass die beiden Anderen Schichten dafür verändert werden müssen.
Es ist schon mal gut wenn sich Leute VORHER solche Gedanken machen!
Wie verhält es sich dann mit der Weiterleitung von Eregnissen, wie z.B. dem Doppelklick, oder rechte Maustaste, etc. ein ein Button, wenn die verwendete dDrstellungstechnik dieses nicht unterstützt?
Wie ist z.B. ein AfterScroll-Event auf der Datenbankschicht zu realisiseren um dieses an die Darstellungsschicht weiterzuleiten?
Sowas gibt es nicht schicht übergreifend. Was ist denn, wenn deine Oberfläche gar kein Scrollen kennt? Was wenn dein UI rein akustisch funktioniert und vielleicht maximal ein paar Wähltöne kennt? Um eine echte Wiederverwendbarkeit der Geschäftslogik zu gewährleisten muss man stark abstrahieren.
Wie seid Ihr dieses Thema angegangen? Ist es schlichtweg notwendig, diese Ereignisse nicht zu verwenden. Welche Lösung bietet sich hier an?
Ich verwende in letzter Zeit öfter ein MVP Pattern (Model View Presenter), aber es sollte auch MVVM oder MVC usw. funktionieren. Der "Richtigste" Ansatz ist aus heutiger Sicht natürlich SOA (Service Oriented Architecture), aber auch SOA muss in UI, Logik und Persistenz Dienste aufgeteilt werde und SOA ist recht aufwendig, dafür spielt es seinen Großen Vorteil nur aus wenn sich die Anforderungen an die Software schnell ändern.

Es gibt verschiedene Möglichkeiten MVP umzusetzen je nach dem was man sich verspricht kann man mehr oder weniger Code in den Presenter packen. Ich bevorzuge einen Presenter der einfach nur UI und Logik miteinander verheiratet und sonnst nichts tut. Man kann auch im Nachhinein in ein bestehendes "RAD"-Projekt neuen Code nach MVP sauber einbinden, Nicht die ganze Anwendung muss sich an so ein Pattern halten.

Die Persistenzschicht ist so eine eigene Geschichte. Viele wollen hier keine Austauschbarkeit, dann muss man das nicht so sehr berücksichtigen.
Je mehr Flexibilität gewünscht wird desto abstrakter sollte der Zugriff sein.
-nur MSSQL Server = Eine eigene und fast unveränderte Ableitung einer beliebigen DB-Zugriffs-bibliothek auf TDataset Basis.
-mehrere SQL Server = So wie oben, aber der Zugriff sollte abstrakter sein so das DB spezifische SQLs nicht teil der Geschäftslogik sind
-verschiedenste medien/Dateiformate/Cloud/Services/Streams/noSQL-DB/SQL-Server = Hoher Abstraktionsgrad notwenig.
Dann gibt es noch die Möglichkeit sich den Scheiß mit der Persistenz vom Hals zu schaffen, in dem man auf ORM-Frameworks setzt.
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty (21. Mär 2013 um 11:17 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz