AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankanwendung und Klassen - sinnvoll?

Datenbankanwendung und Klassen - sinnvoll?

Ein Thema von süden · begonnen am 9. Jan 2014 · letzter Beitrag vom 13. Jan 2014
Antwort Antwort
süden

Registriert seit: 20. Feb 2009
Ort: Lindau (Bodensee)
75 Beiträge
 
Delphi 2007 Professional
 
#1

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 13:59
PS: Ich bin nicht beleidigt, ich fühle mich nur ausgegrenzt und überfordert.
Gruß süden

[Delphi 2007 Pro, WIN 7 Pro, DevEx, Fastreport, TMS]
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 14:10
PS: Ich bin nicht beleidigt, ich fühle mich nur ausgegrenzt und überfordert.
Das geht allen so, die vier Räder an eine Platte schrauben und das Teil sich bewegt, und dann fragen, wie man jetzt einen konkurrenzfägen Formel-1 Rennwagen baut.

Soll heißen, es ist nicht trivial
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.365 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 14:18
Ich kann Deine Überforderung durchaus verstehen.
Deshalb finde ich es ja schade, dass Delphi noch keinen Königsweg für eine andere Art des Arbeitens mit liefert.

Dieser "Königsweg" würde wiederum mehrere Bereiche umfassen, die zusammenspielen müssen um ein einfaches, übersichtliches und flexibles Gesamtkonzept zu erhalten.

Insgesamt ist das schon recht aufwendig und es gibt unterschiedliche Lösungsansätze.
Schön wäre es, wenn es ein fertiges Gesamtpaket mit Demoprojekten gäbe, so dass die Programmierer einen schnellen Zugang finden.

Leider ist das noch nicht gegeben und die Diskussionen sind eher theoretischer Natur bzw. beziehen sich auf unterschiedliche Teilaspekte des Ganzen.


Das Problem hast Du ja in Deinem Eröffnungsbeitrag angesprochen.
Für deren Lösung gibt es unterschiedliche Ansätze. Der eine schwört auf dieses der andere auf jenes.

Der einheitliche Tenor aller Lösungen sollte sein: Trennung von GUI und Businesslogik+Daten.
In einer OnClick-Behandlung sollte man also NIEMALS etwas berechnen oder ändern, das die Projektdaten betrifft (egal ob diese in einer Datenbank oder in Objekten verwaltet werden). Insofern verführt Delphi sehr dazu, ungünstig zu programmieren.
Zum Lernen und für kleine Demoprojekte ist das zwar in Ordnung und bequem, aber wenn Projekte wachsen wird es schnell sehr unübersichtlich und fehleranfällig.

GUI und BL zu trennen macht etwas mehr Aufwand (wenn man kein Framework nutzt das diesen Aufwand wieder minimiert), ist aber langfristig gesehen für größere und wichtige Projekte der bessere Weg.

Versuche einfach mal, auf direkte Datenzugriffe aus dem Formularquelltext zu verzichten. Der Aha-Effekt wird sich sicher einstellen.


Was insgesamt der beste Weg dafür ist musst Du selbst heraus finden. Einen Königsweg gibt es eben leider (noch?) nicht.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 15:55
ich fühle mich nur ausgegrenzt und überfordert.
Kann ich verstehen, allerdings ausgegrenzt, das stimmt jetzt wirklich nicht. Die "Experten" schiessen aber wirklich öfters weit über das Ziel hinaus. Du weisst, was ein Record ist ? Ja, das sind eben Daten, die irgendwo gespeichert werden. Wenn ich jetzt noch da in der Logik die Behandlungsweise dieser Daten reinpacke, dann ist das ein Objekt/Klasse.

Ne, das wird wieder zu theoretisch. Am besten ist immer noch das TP 5.5 Handbuch. Das stammt zwar aus ca. 1990, aber weil keiner damals wusste, was OOP eigentlich ist oder wozu das gut ist, ist es einfach gehalten.

http://edn.embarcadero.com/article/i..._OOP_Guide.pdf
Gruß
Hansa
  Mit Zitat antworten Zitat
süden

Registriert seit: 20. Feb 2009
Ort: Lindau (Bodensee)
75 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 17:09
Danke, Ihr seit so lieb - ich bin wieder dabei.

Bisher habe ich genau das gemacht: Klick -> a + b = c ....
und es hat funktinoniert (!?)

Das Ding ist gewachsen und Anwender melden sich, könnte man ...
... klar, warum nicht ...
und dann häng ich da, bekomme meinen Code nicht mehr gebacken + 10-20 mal so viel Zeit wie geplant (und bezahlt) ... Ihr kennt das sicher.

1) Also - Klassendesign lernen
2) Keine BL im Form
3) Date trennen? Wie? die kommen ja im Form an !!! Und es ist so einfach die da zu lassen!
Gruß süden

[Delphi 2007 Pro, WIN 7 Pro, DevEx, Fastreport, TMS]
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 17:27
3) Date trennen? Wie? die kommen ja im Form an !!!
Welches Date ? Das ist kein deutsches Wort und auf englisch ist 'Date' in Deutsch ein Datum (=Tages-Zeitraum), aber es kann auch die Einzahl von Daten sein. . Wer soll denn das und noch mit nicht mal richtigem Denglisch noch beantworten ? Ich sage nur : Kauderwelsch.
Gruß
Hansa
  Mit Zitat antworten Zitat
süden

Registriert seit: 20. Feb 2009
Ort: Lindau (Bodensee)
75 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 17:53
Tschuldigung, ich wollte DATEN schreiben. Nicht Date = Datum.
Gruß süden

[Delphi 2007 Pro, WIN 7 Pro, DevEx, Fastreport, TMS]
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 18:07
Du kannst also doch Deutsch ? Für Rest gilt : TP 5.5
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.365 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 18:09
So pauschal kann man schlecht sagen, was die beste Herangehensweise ist.

Es ist auch davon abhängig, die Dein bisheriges Projekt aufgebaut ist (eine Datenbank und welche - welche Datenbankkomponenten (DBEdit?)), wie die Daten bisher im Formular eingebunden werden, wie Berechnungen usw erfolgen.

Grundsätzlich könnte man sagen, dass die gesamte BL ohne ein Formular funktionieren sollte.
Dann könnte man sagen: BL.BerechneAlleKundenAlter oder BL.SucheAlleKundenMit('A') oder BL.Kunde(1).AddiereZuKonto(1000).

Vom Formular aus ruft man dann nur noch die definierten Schnittstellen auf.
Das Formular muss die Klasse TKunde und TKonto dann nicht kennen. Es muss nur wissen, wo es die Daten zur Darstellung her bekommt, aber nichts von Berechnungsformeln usw.

"BL" könnte eine Klasse sein, oder ein eigenes Projekt in einer Projektgruppe oder einfach ein DataModule (wobei das dann keine richtige Trennung von der GUI mehr ist) oder sogar eine DLL.

Die Frage ist dann wieder, wie man der GUI beibringt, welche Daten sie anzeigen soll.
Das sollte möglichst einfach und flexibel sein und genau klemmt derzeit noch die Delphi-Säge.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: Datenbankanwendung und Klassen - sinnvoll?

  Alt 12. Jan 2014, 18:16
"BL" könnte eine Klasse sein, oder ein eigenes Projekt in einer Projektgruppe oder einfach ein DataModule (wobei das dann keine richtige Trennung von der GUI mehr ist) oder sogar eine DLL.
Der Business-Layer ist idealerweise eigentlich keine Klasse, sondern eine Schicht: Wenn Du alle Klassen deines Projekts vertikal so anordnest, das die Abhängigkeiten einer Klasse ('Uses Liste') immer nur nach oben zeigen, dann kannst Du diese Hierarchie in einzelne Schichten unterteilen.

Ganz oben ist die UI, also Formulare, Komponenten usw.

Ganz unten die Datenmodule (wenn Du welche hast). Oberhalb der Datenzugriffschicht (also dort, wo mit der Datenbank kommuniziert wird) liegt normalerweise der Business Layer, der Daten von der Datenschicht nimmt, Umformungen der Daten vornimmt (nach Aufforderung von oben) und diese wieder an die Datenschicht zum speichern übergibt.

Die Befehle zur Datenmanipulation kommen aus der UI oder besser noch: Aus einer Schicht dazwischen, dem Viewmodel. Dieses Viewmodel stellt eine 'Fassade' dar (nicht mit dem Pattern gleichen Namens verwechseln), welche die Daten und Operationen der BL-Schicht so maskiert, das die UI diese ohne großartige eigene Logik darstellen kann.

Die Sache mit dem Viewmodel ist nicht sehr weit verbreitet und bei kleineren Projekten auch nicht wirklich nötig, denn es ist schon eine ganze Menge Mehrarbeit.

Geändert von Furtbichler (12. Jan 2014 um 18:28 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:36 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