First steps to Aida/Web 
Aida tutorial on ESUG 09 in Brest
(slides, code, oneclicks: Squeak, Pharo, VW, VW parcels)
Below are the notes while preparing this tutorial.
Tutorial goal
Tutorial contents
- Aida basics
- Simple app conventional way
- Ajaxifiying your web app
- Single page web apps, tree-like control flow
- Making it international
Prerequisites
- Squeak and friends or VisualWorks
- Aida 6.0 preinstalled 
 
Notes
 1.domain model
- on Pharo
- new category AidaTutorial
- WeddingBook (persons)             
- initPersons, persons, addPerson:
- class accessing:  #singleton
 
- WPerson (book name surname partner)
- WeddingBook singleton 
 
- addPerson: (WPerson new name: 'Janko' surname: 'Mivsek')
- addPerson female too!
 
2.web presentation
- AIDASite default urlResolver defaultURL: '/book' forObject: WeddingBook singleton            
- WebApplication subclass: WeddingBookApp  (WeddingBook+App) conventions! 
- category views, #viewMain (empty)!          
- check in browser -> login! explain! login admin/password
 
- #viewMain          
- explain WebElement, convinience methods, self style pageFrameWith:
- self observee persons
 
- WPerson preferedUrl ^'/', self name, '-', self surname  (explain)
- adLinkTo: person text: person name, ' ', person title
- WPersonApp, #viewMain       
- e addText: self observee name.  (explain)
- on the start: e addLinkTo: self observee book text: 'Back to book'.   (hierarchy links, no circles)
- e add: self detailsElement  (explanation later!)
 
3.Simple Ajax
- WPersonApp>>statusElement   (explain element composition)
 
- parent isNil ifTrue: Free ifFalse: marriedTo: 
 
- partner selection in detailsElement    
- e addMenuAspect: #name collection: self observee book persons
 selectedToAspect: #partner of: self observee
- check in browser
- (e addMenu...) onChangePostAndUpdate: e. 
- explain WebElement events-ajax, WebFormElement events-ajax
 
 
 
Components, popup
- WebWidget subclass: WPersonEditWidget (person, element)  explain!      
- build (self clear, self registerId! self add...) 
- self addButtonText: action: #save
- self addCloseWindowText: 'Cancel'.
 
- ajaxUpdate (self build)
- class new ^super new method: #ajaxUpdate
 
- WeddingBookApp>>viewMain      
-     (e addNilLinkText: 'Add new person') onClickPopup: (WPersonEditWidget new person: self newPerson; element: e).
- actions: actionMainSave self observee addPerson: self person (explain actions)
 
 
 
Tree-like control flow
Internationalization
- utf-8 on the web <-> Unicode in image
- two things: content and page text
- in-place text translation
 
- on VW ! on Squeak translated class metods not ported!
- find session, self setDevMode
- calendar example
- http: .... &setLanguage=fr