On Feb 5, 2008 2:06 PM, Janko Mivšek &lt;<a href="mailto:janko.mivsek@eranova.si">janko.mivsek@eranova.si</a>&gt; wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Rob,<br><div class="Ih2E3d"><br></div>Besides domain objects which are accessible by any user, any session (if<br>security allows) you have the instances of an App, one per each session<br>per domain object. You can put session specific (temporary!) data here.<br>
Temporary because this state is usually cleared, each night for<br>instance. But you can use WebSession userValues or WebUser userValues<br>for permanent session/user specific data.</blockquote><div><br>Maybe a more concrete example will help, because I am obviously missing something!<br>

<br>
Using Squeak, if I create domain object:<br>
<br>
Object subclass: #MyObject<br>
&nbsp;&nbsp;&nbsp; instanceVariableNames: &#39;textInput&#39;<br>
&nbsp;&nbsp;&nbsp; classVariableNames: &#39;&#39;<br>
&nbsp;&nbsp;&nbsp; poolDictionaries: &#39;&#39;<br>
&nbsp;&nbsp;&nbsp; category: &#39;FMC-Model&#39;<br><br>
And a WebApplication:<br>
<br>
WebApplication subclass: #MyObjectApp<br>
&nbsp;&nbsp;&nbsp; instanceVariableNames: &#39;&#39;<br>
&nbsp;&nbsp;&nbsp; classVariableNames: &#39;&#39;<br>
&nbsp;&nbsp;&nbsp; poolDictionaries: &#39;&#39;<br>
&nbsp;&nbsp;&nbsp; category: &#39;FMC-View&#39;<br>
<br>
with a main view:<br>
<br>
viewMain<br>
&nbsp;&nbsp;&nbsp; |e|<br>
&nbsp;&nbsp;&nbsp; e := WebElement new.<br>
&nbsp;&nbsp;&nbsp; e addTextH1: &#39;My Application&#39;. e addBreak.<br>
&nbsp;&nbsp;&nbsp; e addText: self observee textInput. e addBreak.<br>
&nbsp;&nbsp;&nbsp; e addInputFieldAspect: #textInput for: self observee.<br>
&nbsp;&nbsp;&nbsp; self add: e.<br>
<br>
and create the site in a workspace with:<br>
<br>
SwazooAida startOn: 8890.<br>
obj := MyObject new.<br>
(AIDASite named: &#39;aidaOn8890&#39;) urlResolver defaultURL: &#39;/myapplication.html&#39; forObject: obj.<br>
<br>
And then open the site (<a href="http://localhost:8890/myapplication.html">http://localhost:8890/myapplication.html</a>), I
will see &quot;nil&quot; displayed on the screen the first time I enter the site
right below the header.&nbsp; Once I enter &quot;some text&quot; into the input field,
I will see &quot;some text,&quot; and if I go to another computer and enter the
site (<a href="http://mynetworkaddress:8890/myapplication.html">http://mynetworkaddress:8890/myapplication.html</a>), I will ALSO see
&quot;some text&quot; displayed at the top of the screen.<br><br>Furthermore, if I enter the site from the same computer in two different browsers and add &quot;self inspect&quot; at the top of MyObjectApp&gt;&gt;viewMain, I the app instance seems to be the same.<br>
<br>Does it matter that I have &quot;logged in&quot; as admin in both cases?<br><br>Where can I store data (and what methods do I use to
access it) so that entering text on one computer does NOT affect what
displays on another computer?<br><br>Sorry...there is something fundamental I don&#39;t understand yet.<br>
<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Session is shared only among App instances for different domain objects.<br>But you have never more than one app instance for the same domain object<br>
per session. That&#39;s obvious if you know the rule: a new App instances<br>for every new session, per domain object. So if you have say 10 domain<br>objects and 10 session, you have up to 100 App objects, one for each<br>
session:domain object combination.</blockquote><div><br>So Sessions let different applications share objects?<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><div class="Ih2E3d"><br></div>Let we look at Aida tutorial: AddressBook with Addresses. That&#39;s a<br>domain model with anAddressBook as root domain object. Is your question<br>(translated to a tutorial case) how to add a new address to address book?<br>
</blockquote></div><br>No...it would be more like, how can two users have two DIFFERENT address books?&nbsp; Or, for something even more temporary (to use a common web analogy), how can two sessions have two different shopping carts?<br>