Your SlideShare is downloading. ×
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Seaside Advanced Topics
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Seaside Advanced Topics


Published on

Title: Seaside Advanced Topics …

Title: Seaside Advanced Topics
Speaker: Johan Brichau
Title: Advanced Seaside
Speaker: Philippe Marshall
Thu, August 21, 2:00pm – 3:30pm


Abstract: If you want to know everything about building sophisticated web applications with Seaside using tightly-integrated client-side libraries and frameworks (jQuery, jQuery++, jQuery-UI, Bootstrap, jQuery-Mobile,...), transparent persistence, RESTful webservices, etc or just about what's new in Seaside, then this tutorial is for you. We will skip the basics (see the excellent online tutorials [1][2] and book [3]) and jump right into the advanced uses of jQuery, the intricate details of ajax callbacks, the extensible framework, the transparent persistence in GemStone Web Edition (GLASS), and much more. We will reserve ample time for Q&A, so bring your questions to the session.

Bio: Philippe Marshall has been part of the core Seaside team for several years. He holds a MSc CompSci from the University of Bern and has previously held talks at ESUG.

Dale Henrich has been working in Smalltalk since 1985 when he developed an internal application on the Tektronix 4404. The internal application was used at Tektronix for at least 20 years and may still be in use today! Since 1985 he has been lucky enough to work in Smalltalk nearly full-time, spending the last 15 years at GemStone (now GemTalk Systems) give or take a couple of years.

Johan Brichau is co-founder and development lead at, a "Seaside under GLASS"-based web application for event management currently used by over 80 cultural organisations in Belgium and The Netherlands.

Published in: Software
1 Comment
  • Video:
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Seaside Advanced Topics
  • 2. Topics • Advanced jQuery and Seaside <-> Javascript! • New since 3.1:! • RESTfulComponentFilter! • SessionTrackingStrategy! • GsDevKit! • Your questions…
  • 3. Getting Started • Download Pharo 3 from! • Download zipfile with pre-loaded image from:
  • 4. Webpage to Webapp • STEP 1: ajaxify the TODO application! WATODO>>renderAddNewTodoOn: WATODOItem>>renderContentOn: ! use jQuery AJAX form serialization use jQuery DOM manipulation to update the client
  • 5. Webpage to Webapp • STEP 2: Reduce requests to the server: combine ajax calls
  • 6. Combining AJAX Callbacks Primary ajax callbacks:! • #callback:! • All response rendering callbacks! #script:, #html:, #json:, #text:, #respond: Secondary ajax callbacks:! • #callback:value:! • Convenience callbacks! • #callback:json:, #callback:passengers, …! • #serialize*: Only 1 per request Multiple per request
  • 7. +200 locations 1 - 2 months
  • 8. title group in-place editing info bubbles group visualization
  • 9. Webpage to Webapp • STEP 3: Scale it by working with delegated events! ! ! Use passengers server-side for each separate element! ! Use top-level event handler doing a passenger lookup
  • 10. Working with JS libraries • Javascript framework calling back to Seaside! • Url! • Function
  • 11. JS calling back into Seaside • Wrap a jQuery ajax callback in a JS function! • Easiest using existing jQuery wrapper code and JS generation! • Not always possible if the library requires a url! • Generate a url to an action callback! • Requires a bit more understanding of how callbacks work! • (Implement once, reuse all the time)