Ich habe kürzlich eine Webanwendung in Seaside + Squeak entwickelt, und ich fand es eine wunderbare Erfahrung. Seaside ist wirklich über alle anderen Frameworks hinweg, und ich habe das Gefühl, dass ich auf einer höheren Abstraktionsebene arbeite (über dem HTTP-Request/Response-Zyklus und dem HTML-Templating, mit dem andere Frameworks umgehen).Wann sollten Seaside-Komponenten verwendet und wann einfache Renderobjekte verwendet werden?
Das heißt, ich bin etwas verwirrt über Seaside-Komponenten. Ich musste vor kurzem eine Liste von Objekten auf einer Komponente anzeigen (ähnlich der stackoverflow Titelseite). Zuerst machte ich jedes Objekt zu einer Komponente (eine Unterklasse von WAComponent), aber das erwies sich als wirklich verschwenderisch, und ich musste # children dynamisch in der Elternkomponente setzen, damit es überhaupt funktionierte. Ich habe dann versucht, sie Objekte render (Objekte, die keine Unterklassen von WAComponent sind, und Rendern mit RenderOn: anstelle von renderContentOn:, wie Komponenten tun). Dies funktionierte, aber jetzt konnten sie nicht mehr auf den globalen Status im Session-Objekt zugreifen, wie es Komponenten können (mit #session). Dann entdeckte ich "WACurrentSession value", was jedem Objekt Zugriff auf das aktuelle Seaside-Session-Objekt gibt. Ich konnte sie nun dazu bringen, Objekte zu rendern. Außerdem entdeckte ich, dass ich viele meiner kleineren Komponenten auch als Renderobjekte umschreiben konnte.
Welche weiteren Gründe gibt es für die Verwendung von Komponenten über Renderobjekte neben dem Aufruf/Antwort- oder Backtracking-Status?
Vielen Dank für die ausführliche Antwort! –