AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

[ORM] Lazy Loading - Wie implementieren?

Ein Thema von mquadrat · begonnen am 23. Sep 2011 · letzter Beitrag vom 26. Sep 2011
Antwort Antwort
Seite 3 von 3     123
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#21

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 11:15
Ein virtueller Getter mit Interceptor würde sicher funktionieren. Das blöde dabei ist nur, dass man wenig Nutzen hat. Man muss trotzdem einen Getter implementieren, damit etwas zum intercepten da ist. In diesem Fall würde man also ca. drei Zeilen handgeschriebenen Code (manuelle Lazy Initialization) durch eine Zeile handgeschrieben Code + Attribut + Interception + Rtti + ORM Code ersetzen. Nicht wirklich schlank

Kann aber auch daran liegen, dass ich bis jetzt erst einen Kaffee getrunken habe
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 11:21
drei Zeilen handgeschriebenen Code (manuelle Lazy Initialization)
Wie soll diese manuelle lazy initialization ohne dependency denn realisiert werden?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#23

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 11:27
Ohne Dependency auf den ORM natürlich gar nicht Den müsste man injecten.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 11:47
Ohne Dependency auf den ORM natürlich gar nicht Den müsste man injecten.
Genau das gilt es zu verhindern. Denn eine Abhängigkeit auf den ORM in nem PODO ist imo ein no go.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 25. Nov 2005
Ort: München
1.902 Beiträge
 
Delphi 2010 Professional
 
#25

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 12:13
Lazy ist auch unbedingt auf dein einelnen Entitäten nötig.
Denn wenn du einen Customer über den key liest, ihm eine weitere Addresse zuordnest und abspeicherst, müsste der Customer-Datensatz in der Tabelle nie angefasst werden. (so mach das (n)Hibernate zum Bleistift)
Das Implemtieren von Getter/Setter könnte auch durch abstrakte GetteR/Setter reduziert werden, dann müsste der Interceptor halt einen eigenen Store nutzen (e.g. ein Dictionary)
Aber vllt solltet ihr einfach Bolemb mit Liebesentzug drohen, wenn die nicht schleunigst virtuelle und vor allem abstrakte Properties erlauben, ohne explizit Setter angeben zu müssen. (Ähnlich zu Oxygene)

Das Problem, das ich bei den TVirtualInterface oder MethodInterceptor sehe ist, dass da sehr sehr viele Indirektionen im Spiel sind. Das kann schnell ganz schön lahm werden.

Mal schauen wie Embello das löst, also ob die auch weitere Felder für die Proxies zulassen, so dass man nicht auch noch durch ein Dictionary müsste. Ganz zu schweigen von tatsächlich überschrieben Methoden, nicht nur Interceptions. Wenn man für jeden Call erstmal nachkieken muss, was wirklich ausgeführt werden muss, dann tut das doch weh.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 12:49
Mal schauen wie Embello das löst, also ob die auch weitere Felder für die Proxies zulassen, so dass man nicht auch noch durch ein Dictionary müsste. Ganz zu schweigen von tatsächlich überschrieben Methoden, nicht nur Interceptions. Wenn man für jeden Call erstmal nachkieken muss, was wirklich ausgeführt werden muss, dann tut das doch weh.
Wird Emballo noch aktiv weiterentwickelt? Oder ist das Repo auf google code nicht das aktuelle?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 25. Nov 2005
Ort: München
1.902 Beiträge
 
Delphi 2010 Professional
 
#27

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 13:24
Wird Emballo noch aktiv weiterentwickelt? Oder ist das Repo auf google code nicht das aktuelle?
Der Code liegt auf Bitbucket. https://bitbucket.org/magnomp/emballo
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 13:48
Mit DSharp kann man sowas machen. (virtueller Getter mit RTTI vorausgesetzt)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#29

AW: [ORM] Lazy Loading - Wie implementieren?

  Alt 26. Sep 2011, 14:29
Ich schätze mal, ich werd die verschiedenen Möglichkeiten einfach mal ausprobieren müssen. Für in-depth Test hab ich allerdings aktuell wenig Zeit. Messe steht an..
  Mit Zitat antworten Zitat
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 07:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf