AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign MVC -- Daten-Validierung, komplexe Models und deren Darstellung
Thema durchsuchen
Ansicht
Themen-Optionen

MVC -- Daten-Validierung, komplexe Models und deren Darstellung

Ein Thema von s.h.a.r.k · begonnen am 17. Okt 2011 · letzter Beitrag vom 18. Okt 2011
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 17. Okt 2011, 21:48
Aber genau das geht mit DSharp. Das Bindung kann dort auch explizit erfolgen, also nur auf ausdrücklichen Wunsch.
Die Validierung bleibt aber bestehen
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 s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 17. Okt 2011, 22:05
Hm, habe mir das mit den Bindings noch nicht so recht angeschaut. Sollte ich bei Zeit echt mal tun... Befürchte dahingehend aber irgendwie, dass mir Flexibilität bzgl. besonderer GUI-Features, wie z.B. diese Live-Validierung, verloren geht... Aber ich lasse mich gerne eines bessere belehren
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 17. Okt 2011, 22:09
Weil es gerade zum Thema passt: "Refactoring / Variable definieren" löst das ganz hübsch
Angehängte Grafiken
Dateityp: png val.png (57,1 KB, 59x aufgerufen)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 17. Okt 2011, 22:14
Weil es gerade zum Thema passt: "Refactoring / Variable definieren" löst das ganz hübsch
Habs in Eclipse schon wesentlich schöner gesehen Sogar mit passender Fehlerbeschreibung. Unter Visual Studio kannst beim Error Insight sogar Verbesserungsvorschläge auswählen.

Und genau das ist der Grund für die Existenz von Pattern: Sie beschreiben lediglich in einer Art Metasprache die Lösung eines bestimmten Problems, aus der Erfahrung vieler Mannjahre heraus.
Das ist mir ja eben bewusst. Mir ist aber auch bewusst, dass ich entscheidende Dinge einfach noch nicht weiß, und ich denke, dass es hier vielen so geht. Daher habe ich den Thread eröffnet, in der Hoffnung, dass auch andere etwas davon haben Danke für den Hinweis auf das Pattern -- kannte das noch nicht

Was mir nur häufig fehlt ist eben ein konkretes Programmierbeispiel bzw. eigentlich Beispiele, da man ein Pattern ja auf mehrere Arten und Weisen interpretieren und umsetzen kann. Daher bin ich auch gerne offen für Code, über den diskutiert werden kann
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k (17. Okt 2011 um 22:17 Uhr)
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#5

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 18. Okt 2011, 06:01
Das ist mir ja eben bewusst. Mir ist aber auch bewusst, dass ich entscheidende Dinge einfach noch nicht weiß, und ich denke, dass es hier vielen so geht
....
Was mir nur häufig fehlt ist eben ein konkretes Programmierbeispiel bzw. eigentlich Beispiele, da man ein Pattern ja auf mehrere Arten und Weisen interpretieren und umsetzen kann. Daher bin ich auch gerne offen für Code, über den diskutiert werden kann
Kenne ich und ist sehr blöd. Es gibt viele Seiten zu dem Thema, allerdings wenige für Delphi. Einige, die mir geholfen haben:
sourcemaking.com/design_patterns
building-a-composite-application-framework.aspx
model-view-presenter-mvp-design-pattern-close-look-part-2-passive-view.aspx

Danke für den Hinweis auf das Pattern -- kannte das noch nicht
Ist z.B. auch in der unit classes vorhanden. TMemento implementiert dieses Verhalten für TPersistent (Nachfahren).
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.052 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 18. Okt 2011, 07:10
Danke für den Hinweis auf das Pattern -- kannte das noch nicht
Ist z.B. auch in der unit classes vorhanden. TMemento implementiert dieses Verhalten für TPersistent (Nachfahren).
Kann es sein, dass du TRecall meinst? Von TMemento hab ich noch nie was gehört (und ist auch nirgendwo im Delphi Source vorhanden)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#7

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 18. Okt 2011, 07:17
Kann es sein, dass du TRecall meinst? Von TMemento hab ich noch nie was gehört (und ist auch nirgendwo im Delphi Source vorhanden)
Uuups, ja genau, ich meine natürlich TRecall...
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.052 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: MVC -- Daten-Validierung, komplexe Models und deren Darstellung

  Alt 17. Okt 2011, 22:20
Ich geh mal auf DSharp ein:

Es gibt ja unterschiedliche Arten von Validierung, formale (im Sinne von, Name muss mindestens 3 Zeichen lang sein), inhaltliche (Postleitzahl muss gültig sein) und komplexe (wenn ich als Zahlungsmethode Visa auswähle müssen die Kreditkarten Daten stimmen). Die ersten beiden können noch vom Binding selber abgeprüft werden, indem man ne ValidationRule angibt. Komplexe (und teilweise auch inhaltliche) müssen in der Regel vom Viewmodel (ich bleib hier mal MVVM Pattern) durchgeführt werden, weil dort die unterschiedlichen Eigenschaften zusammen kommen, die für eine Validierung notwendig sind.

Das alles ist ohne weiteres möglich (Demo zu einigen unterschiedlichen Validierungsmöglichkeiten gibts im repository). Bei allen Arten der Validierung wird aber auf jeden Fall verhindert, dass irgendwelche nicht validierten Werte in das Viewmodel (und damit ins Model) gelangen (außer du machst es explizit durch den Aufruf der UpdateSource Methode).

Ziel der ganzen Übung ist es ja, die Oberfläche so dumm wie möglich zu gestalten, so dass sie nur als User Interface dient und jegliche Logik in der Schicht darunter steckt. Somit kannst du letzlich ganze Funktionstests automatisiert durchführen (und ich rede nicht von Dingen wie TestComplete oder so) ohne die GUI zu benötigen.

Bei Fragen zu DSharp direkt oder generell zu verwandten Themen steh ich auch gern per PM zur Verfügung.

@Roter Kasten: Memento unterstützt DSharp auch, es gibt eine Basis ViewModel Klasse, in der das direkt implementiert ist.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:23 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