Advanced Seaside
Upcoming SlideShare
Loading in...5
×
 

Advanced Seaside

on

  • 1,074 views

ESUG 2012, Ghent

ESUG 2012, Ghent

Statistics

Views

Total Views
1,074
Views on SlideShare
1,074
Embed Views
0

Actions

Likes
0
Downloads
11
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Advanced Seaside Advanced Seaside Presentation Transcript

  • Advanced ESUG 2012 Ghent Aug 30, 2012Thursday, August 30, 12
  • Seaside 2.x SeasideThursday, August 30, 12
  • Seaside 3.x Core Javascript JQuery Session ComponentThursday, August 30, 12
  • What is Seaside-Core • “Seaside Meta” • Web Framework Framework • HTTP Abstraction • Servlet API • Rack • WSGIThursday, August 30, 12
  • Why Seaside-Core • portable (dialect and server) • battle tested • objects, not strings • familiar objects • negligible overheadThursday, August 30, 12
  • Seaside 3.x Core ComponentThursday, August 30, 12
  • Seaside 3.x Core Component RESTThursday, August 30, 12
  • Seaside 3.x Core Component REST …Thursday, August 30, 12
  • WARequestHandler Request Response RHThursday, August 30, 12
  • WARequestHandler /conferences /esug /2012 RH RH RHThursday, August 30, 12
  • WARequestFilter RHThursday, August 30, 12
  • WASession 2.8 • current request • jump to • last continuation • continuations • monitor •…Thursday, August 30, 12
  • WASession 3.x • continuations • properties • (document handlers)Thursday, August 30, 12
  • WARequestContext • request • response • handler stackThursday, August 30, 12
  • Request Handler Stack 1 2 3 1 1 1 2 2 3Thursday, August 30, 12
  • WAPathConsumer /conferences/esug/2012/… RH RH RH /esug/2012/… /2012/… /…Thursday, August 30, 12
  • WADispatcher ‘conferences’ -> aRequestHandler ‘sponsors’ -> aRequestHandler ‘…’ -> aRequestHanlderThursday, August 30, 12
  • WASeverAdapter provides template methods for converting provides start and stop hooks provides easy integration with ser ver manager UI you don’t have to use it sets up request context XXRequest WARequest SA RH XXRespone WARespone WARequestContextThursday, August 30, 12
  • Frank a micro framework inspired by SinatraThursday, August 30, 12
  • Seaside-RESTThursday, August 30, 12
  • Disclaimer • REST in this context simply means “pretty URLs” • pretty URLs for web services, not web applications • this will feel a little weirdThursday, August 30, 12
  • index <get> ^ ‘Hello World’Thursday, August 30, 12
  • index <get> <path: ‘index.html’> ^ ‘Hello World’Thursday, August 30, 12
  • indexHtml <get> <path: ‘index’> <produces: ‘text/html’> ^ ‘<h1>Hello World</h1>’ Accept: text/htmlThursday, August 30, 12
  • indexXml <get> <path: ‘index’> <produces: ‘text/xml’> ^ ‘<hello><world/></hello>’ Accept: text/xmlThursday, August 30, 12
  • uploadXml <post> <consumes: ‘text/xml’> … Content-Type: text/xmlThursday, August 30, 12
  • uploadCsv <post> <consumes: ‘text/csv’> … Content-Type: text/csvThursday, August 30, 12
  • getAllStartingAt: start limit: limit named: name <get> <path: ‘/{name}/_all_docs?start={start}&limit={limit}’> ...Thursday, August 30, 12
  • #shouldCacheRoutesThursday, August 30, 12
  • WARestfulComponentFilter count: count <get> <path: /{count}> self startSessionWithRoot: (WACounter new count: count greaseInteger; yourself)Thursday, August 30, 12
  • Data Binding • XML or JSON canvas • Magritte-XML • Magritte-JSONThursday, August 30, 12
  • Dialects • GemStone • Pharo • VASTThursday, August 30, 12
  • Seaside 3.1Thursday, August 30, 12
  • Session Tracking Fully Customizable • query fields • cookie only • cookie if supported, query field otherwise • cookie for browser, IP for crawler • SSL session id (*) • path parameter (*)Thursday, August 30, 12
  • Path Parameter • /;_s=KAAWl0x3c6KLnN6Q • doesn’t need to be hidden form parameter • required by some load balancersThursday, August 30, 12
  • WAMain gone • specify initial continuation • subclass WASessionContinuation if you used to subclass WAMainThursday, August 30, 12
  • WAPluggableActionContinuation • replace WAActionPhaseContinuation subclasses with WACallbackProcessingActionContinuation subclassesThursday, August 30, 12
  • JSON • separate from JavaScript • various subtle bugs fixed • canvas APIThursday, August 30, 12
  • Streaming Redone • on demand flushing • continuation that flushes after rendering </head> • better portability to other serversThursday, August 30, 12
  • HTML 5 •#multipleValuesCallback:Thursday, August 30, 12
  • Document Handlers • stored in session • no longer stored alongside sessions • _dThursday, August 30, 12
  • Other News • Nick now part of core team • experimental Pharo 2.0 support • walkback should open at correct place in VW • platforms can implement optimized HTML escapingThursday, August 30, 12
  • Help Wanted • Morphic Control panel for Pharo 2.0Thursday, August 30, 12
  • Seaside Sprint • Friday at Vooruit • Saturday at Camp location • (Sunday)Thursday, August 30, 12
  • Seaside Sprint Sponsors • Reza Razavi • 2RiversThursday, August 30, 12
  • Links • https://github.com/marschall/esug-2012-presentation • http://ss3.gemstone.com/ss/frank • http://code.google.com/p/seaside/wiki/Seaside310Changelog • http://book.seaside.st/book/advanced/restful • http://code.google.com/p/seaside/wiki/SeasideRestThursday, August 30, 12