Autor Thema: Größere Notes-Anwendung planen?  (Gelesen 8597 mal)

Offline Simon Dotschuweit

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Größere Notes-Anwendung planen?
« Antwort #20 am: 30.06.05 - 11:45:38 »
In der cp view hab ich das gefunden:

@Trim(@Trim(@Trim((@If (ViewSecondEntry="";ViewMainEntry;ViewSecondEntry)))+ViewEntryExtension))

Heißt das, dass er erst schaut ob es eine alternative kategorisierung gibt und wenn nicht, dann nimmt
er die main. In jedem Fall aber wird eine Extension dazu geadded, wenn die also nicht leer ist, dann gäbe es quasi für jedes dokument das zwar den gleichen main / second entry aber unterschiedliche extension hat jedes mal eine neue Kategorie.

Jetzt würde mich nur noch der Hintergrund interessieren, warum du es so implementiert hast und nicht z.B. einfach ein Array genommen hast, in der alle ViewEntries drinstehen, dann könnte man doch beliebig viele vers. kategorisierungen mit absteigender prio haben, oder hab ich mich da vertan?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Größere Notes-Anwendung planen?
« Antwort #21 am: 30.06.05 - 12:02:36 »
Du fragst mich etwas, was interessant wäre zu beantworten ....  ;D

Was da genau dahinter steckte, weiss ich tatsächlich nicht mehr auswendig. Gegen einen Array hat irgendwas mit der N zu N Verlinkung zu tun gehabt. Wobei natürlich auch die verbessert werden könnte. Ich glaube mal, die Sache wird dann extrem schwierig, wenn wir Dokumente in Ebene 3 haben. Das Problem ist hier, dass wenn ein Mutterdokument - egal ob in Ebene 1 oder Ebene 2 - den Schlüsselwert (Kategorie) verändert, muss das in allen abhängigen Dokumenten nachgezogen werden. Aus der Natur der Ansichten heraus reicht es auch nicht, dass das Dokument in der 3. Ebene nur sein Mutterdokument kennt, es muss auch das Hauptdokument kennen. Irgendwo in der Ecke gibt es dann Probleme - die aber bestimmt nicht unlösbar sind - wenn man mit Arrays/Multivalue arbeiten möchte. Wie gesagt, das ist jetzt nur aus dem hohlen Bauch heraus und könnte auch von einer anderen Ueberlegung herstammen.

Ah, offenbar ist in dieser View die Version drin, die nur den Kurznamen anzeigt, wenn der definiert ist und nicht der Hauptname. War ein Kundenwunsch. Hier die bessere Formel, die versteht man auch leichter:

@Trim(@Trim(@Trim((ViewMainEntry:ViewSecondEntry))+ViewEntryExtension))
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Größere Notes-Anwendung planen?
« Antwort #22 am: 30.06.05 - 12:09:19 »
Code
@Trim(@Trim(@Trim((ViewMainEntry:ViewSecondEntry))+ViewEntryExtension))

Ist das nicht ein wenig Overkill .. äh, Overtrim ?  ;D  Neben der Klammerninflation.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Größere Notes-Anwendung planen?
« Antwort #23 am: 30.06.05 - 12:13:55 »
Genau den Gedanken hatte ich auch. Das Ding ist uralt und da ist wohl etwas an Leichen drin hängen geblieben von früheren Versuchen. Bevor die ViewEntries in den Dokumenten vorberechnet abgelegt wurden, wurde die Ansicht echt kompliziert berechnet und mit wachsenden Bedürfnissen und Ausnahmen ist die Formel gewachsen wie wild. Da ist dann beim Vereinfachen der "Optimizer" nicht mehr ganz fertig geworden ....... ;)
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Größere Notes-Anwendung planen?
« Antwort #24 am: 30.06.05 - 12:23:57 »
Kenn ich  ;D Nach geraumer Zeit fragt man sich dann beim Studium des eigenen Codes: "Was wollte uns der Programmierer denn damit sagen ?" ...

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Größere Notes-Anwendung planen?
« Antwort #25 am: 30.06.05 - 12:24:47 »
Ach, ich hab immer geglaubt, das passiert nur mir .....  ;D
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Simon Dotschuweit

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Größere Notes-Anwendung planen?
« Antwort #26 am: 01.07.05 - 20:03:29 »
Hi, ich hab mal wieder was ;)

Also, ich versuche gerade meine Dokumenten Klassen in Front- und Backend zu trennen. Ich hab gesehn, das du in der Service App das so machst, das du ein BaseDokument hast und von dem erbt dann SomeDokument und dann gibt es da noch das SomeDokumentUI, welches das SomeDokument integriert.

Jetzt würd ich gerne das Modell um ein BaseDocumentUI ergänzen, in das dann alle z.b. alle UI bezogenen standard events wie querysave implementiert werden können. Aber irgentwie kommen da meine Gehirnwendungen nicht mehr mit, wie wäre denn dann die Beziehung der 4 untereinander?

Weil so wie ich es mir überlegt hab, kanns ned funktionieren(siehe anhang), denn wenn ich bei der SomeDocumentUI das Querysave aufrufe, dann führt es die vom BaseDocumentUI vererbte Methode aus und hat ja keinen zugriff auf das somedoc der SomeDocumentUI.  :-:

Oder wäre es vieleicht sinnvoll, dass ich basdoc und somedoc einen festen varnamen gebe und den Typ auf variant setzte? Weil dann müsste die querysave doch eigentlich auf das aktuelle doc zugreifen und SomeDocumentUI  hätte ja  die doc des BaseDocumentUI mit seinem eigenen überschrieben, right?

Ich hoffe ihr konntet mir folgen und könnt mir mein Kopf etwas entknoten ;)


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Größere Notes-Anwendung planen?
« Antwort #27 am: 01.07.05 - 20:40:27 »
Ich bin kein OO-Spezialist.

Trotzdem eine Frage (nicht nur an Dich):

UIBaseDocument <-> UISomeDocument:

Brauchst Du diese Beziehung überhaupt direkt? Reicht es nicht, über die Backend-Dokumente zu gehen?
Vermutlich macht man doch größtenteils eh fast alles über's Backend?
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Größere Notes-Anwendung planen?
« Antwort #28 am: 01.07.05 - 22:46:57 »
Also zuerst melde ich mal Zweifel an den UI-Klassen an. Die Events werden zwar vom UI aus getriggert, ihre Verarbeitung gehört imho aber in die Business Logic, also in deine Dokument-Klasse.

Abgesehen davon: die Beziehung von BaseDocument zu BaseDocumentUI bedeutet, dass das BaseDocument das BaseDocumentUI kennt und umgekehrt. Das Attribut baseDoc in BaseDocumentUI ist also überflüssig.

Die Beziehung übersetzt in Code sieht so aus (Rollennamen nehme ich einfach welche an)

Class BaseDocument
   Private uiDocument As BaseDocumentUI
End Class

Class BaseDocumentUI
   Private document As BaseDocument
End Class


Die Beziehung zwischen den speziellen Klassen würde ich weglassen.
SomeDocument erbt die Beziehung zu einem BaseDocumentUI ja von BaseDocument.
BaseDocumentUI ist ja eine abstrakte Klasse und du kannst dann in der speziellen Klasse festlegen, welche spezielle Implementierung benutzt wird

Class SomeDocument

   Sub init()
      Set uiDocument = new SomeDocumentUI
   End Sub

End Class
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Größere Notes-Anwendung planen?
« Antwort #29 am: 01.07.05 - 23:02:30 »
Thomas hat das wesentliche schon gesagt, von meiner Seite vielleicht noch eine Ueberlegung in eine etwas andere Richtung.

Vorweg, Simon, ein solches Modell würde sich eventuell anbieten, wenn LS Mehrfachvererbung kennen würde, das ist aber nicht der Fall. Und ist deswegen nicht wirklich wichtig, weil wie Thomas schon gesagt hat, in den UI-Klassen darf keine Logik stecken. Die UI-Klassen sind Interface zwischen Darstellung und Logik und damit in der Regel tendenziell mit "wenig Inhalt". Ich weiss jetzt nicht auswendig, ob das in der Service-App konsequent durchgeführt ist, da haben aber neben mir auch andere Leute noch die Finger drin gehabt.

In einer einer aktuellen Applikation von mir sieht das Modell kurz gefasst etwa so aus:

BaseDocumentClass -- SomeDocumentClass -- SomeDocumentUIClass

im Falle, dass da etwas erweitert werden sollte, könnte es dann so aussehen:

BaseDocumentClass -- SomeDocumentClass -- SomeExtendedDocClass -- SomeExtendedDocUIClass

Alternativ kann man natürlich auch Verbindungen über Attribute machen, so wie es Thomas und auch Notes macht, die zweiwege-Verbindung zwischen Frontend und Backend ist da nicht in jedem Fall notwendig (bei mir aktuell brauch ich sie nicht, was nicht heisst, dass es nicht nützlich sein könnte).

Anders ausgedrückt, das abstrakte BaseUIDoc ist in einem solchen Fall nicht nötig, sämtliche Basislogik, inklusive Event-Handling wie QuerySave steckt in der BaseDocumentClass


Uebrigens, genau diese Ueberlegungen sind ein wesentlicher Bestandteil davon, ob ein OO-Ansatz erfolgreich durchgeführt wird oder nicht.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Größere Notes-Anwendung planen?
« Antwort #30 am: 02.07.05 - 07:39:23 »
Welche Funktionalität kapseln den diese UI-Klassen bei euch?
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Größere Notes-Anwendung planen?
« Antwort #31 am: 02.07.05 - 08:39:21 »
Ob dafür "Kapseln" der richtige Ausdruck ist, sei dahingestellt :)

Alles, was in der Funktionalität der Maske User-Interaktion erfordert, also sämtliche zusätzlichen Dialogboxen (bzw. deren Steuerung) oder komplexere Auswahlverfahren, bei denen der Inhalt der Auswahlliste vorberechnet werden kann und man den Code nicht unbedingt in die Maske packen will.

Einverstanden, es ist Geschmackssache, ob man das alles mit in die Maske packen will oder nicht, sobald man dann aber solche Funktionalitäten auch für das Bearbeiten mehrerer Dokumente benötigt, heisst über eine Auswahl in einer View oder so hast Du sonst keinen naheliegenden Platz, den Code abzulegen. Abgesehen davon lässt sich so UI-Code sowohl in Forms wie in Views/Folders einsetzen (reusability war doch mal so ein Schlagwort :) ).

Nur so als Schtichworte ohne jetzt tiefgreifend darüber nachzudenken. Es hat sich jedenfalls für mich bewährt, aber Du weisst ja, es gibt viele Wege nach Rom.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Größere Notes-Anwendung planen?
« Antwort #32 am: 02.07.05 - 08:43:00 »
Ach, da kann ich dann auch gleich dazu sagen, dass es bei mir normalerweise auch keine Custom-Classes zu den Views gibt. In der Biz-Logik braucht es das in der Regel nicht, und im UI packe ich das alles in die dazu passende UIDoc-Klasse, da diese sowieso in der Regel recht übersichtlich bleibt.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz