SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
Advanced
                           ESUG 2012 Ghent
                             Aug 30, 2012



Thursday, August 30, 12
Seaside 2.x


                            Seaside



Thursday, August 30, 12
Seaside 3.x

                          Core        Javascript

                                 JQuery
                                          Session
                      Component

Thursday, August 30, 12
What is Seaside-Core
                     • “Seaside Meta”
                     • Web Framework Framework
                     • HTTP Abstraction
                     • Servlet API
                     • Rack
                     • WSGI
Thursday, August 30, 12
Why Seaside-Core

                     • portable (dialect and server)
                     • battle tested
                     • objects, not strings
                     • familiar objects
                     • negligible overhead

Thursday, August 30, 12
Seaside 3.x

                             Core


                          Component

Thursday, August 30, 12
Seaside 3.x

                               Core


                   Component            REST


Thursday, August 30, 12
Seaside 3.x

                             Core


             Component          REST    …


Thursday, August 30, 12
WARequestHandler

                           Request


                          Response
                                     RH



Thursday, August 30, 12
WARequestHandler

                          /conferences   /esug   /2012


                             RH          RH      RH



Thursday, August 30, 12
WARequestFilter



                                 RH



Thursday, 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 stack


Thursday, August 30, 12
Request Handler Stack

                          1    2       3

                          1     1      1

                                2      2

                                       3




Thursday, August 30, 12
WAPathConsumer
                               /conferences/esug/2012/…




                          RH                RH            RH

                   /esug/2012/…           /2012/…         /…


Thursday, August 30, 12
WADispatcher


                          ‘conferences’ -> aRequestHandler
                             ‘sponsors’ -> aRequestHandler
                                    ‘…’ -> aRequestHanlder




Thursday, 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


                            WARequestContext

Thursday, August 30, 12
Frank
                          a micro framework inspired by Sinatra




Thursday, August 30, 12
Seaside-REST



Thursday, 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 weird




Thursday, 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/html




Thursday, August 30, 12
indexXml
                      <get>
                      <path: ‘index’>
                      <produces: ‘text/xml’>
                      ^ ‘<hello><world/></hello>’

                  Accept: text/xml




Thursday, August 30, 12
uploadXml
                      <post>
                      <consumes: ‘text/xml’>
                      …

                  Content-Type: text/xml




Thursday, August 30, 12
uploadCsv
                      <post>
                      <consumes: ‘text/csv’>
                      …

                  Content-Type: text/csv




Thursday, August 30, 12
getAllStartingAt: start limit: limit named: name
      <get>
      <path: ‘/{name}/_all_docs?start={start}&limit={limit}’>
      ...




Thursday, August 30, 12
#shouldCacheRoutes



Thursday, 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-JSON


Thursday, August 30, 12
Dialects

                     • GemStone
                     • Pharo
                     • VAST


Thursday, August 30, 12
Seaside 3.1



Thursday, 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 balancers


Thursday, August 30, 12
WAMain gone


                     • specify initial continuation
                     • subclass WASessionContinuation if you
                          used to subclass WAMain




Thursday, August 30, 12
WAPluggableActionContinuation



                     • replace WAActionPhaseContinuation
                          subclasses with
                          WACallbackProcessingActionContinuation
                          subclasses




Thursday, August 30, 12
JSON

                     • separate from JavaScript
                      • various subtle bugs fixed
                     • canvas API


Thursday, August 30, 12
Streaming Redone

                     •    on demand flushing

                     •    continuation that flushes after rendering </head>

                     •    better portability to other servers




Thursday, August 30, 12
HTML 5



                     •#multipleValuesCallback:


Thursday, August 30, 12
Document Handlers

                     • stored in session
                      • no longer stored alongside sessions
                     • _d


Thursday, 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
                          escaping


Thursday, August 30, 12
Help Wanted


                     • Morphic Control panel for Pharo 2.0



Thursday, August 30, 12
Seaside Sprint

                     • Friday at Vooruit
                     • Saturday at Camp location
                     • (Sunday)


Thursday, August 30, 12
Seaside Sprint Sponsors


                     • Reza Razavi
                     • 2Rivers


Thursday, 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/SeasideRest




Thursday, August 30, 12

Weitere ähnliche Inhalte

Ähnlich wie Advanced Seaside

UX, UI, WTF
UX, UI, WTFUX, UI, WTF
UX, UI, WTFwcfay
 
Cassandra devoxx 2010
Cassandra devoxx 2010Cassandra devoxx 2010
Cassandra devoxx 2010jbellis
 
Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012Leonardo Borges
 
Python &lt;3 Content systems
Python &lt;3 Content systemsPython &lt;3 Content systems
Python &lt;3 Content systemshenok80
 
Introduction to Vaadin 7
Introduction to Vaadin 7Introduction to Vaadin 7
Introduction to Vaadin 7lastrand
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web DesignZach Leatherman
 

Ähnlich wie Advanced Seaside (8)

UX, UI, WTF
UX, UI, WTFUX, UI, WTF
UX, UI, WTF
 
Node jsworkshop
Node jsworkshopNode jsworkshop
Node jsworkshop
 
Cassandra devoxx 2010
Cassandra devoxx 2010Cassandra devoxx 2010
Cassandra devoxx 2010
 
Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012
 
Python &lt;3 Content systems
Python &lt;3 Content systemsPython &lt;3 Content systems
Python &lt;3 Content systems
 
Vaadin 7
Vaadin 7Vaadin 7
Vaadin 7
 
Introduction to Vaadin 7
Introduction to Vaadin 7Introduction to Vaadin 7
Introduction to Vaadin 7
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web Design
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Kürzlich hochgeladen (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Advanced Seaside

  • 1. Advanced ESUG 2012 Ghent Aug 30, 2012 Thursday, August 30, 12
  • 2. Seaside 2.x Seaside Thursday, August 30, 12
  • 3. Seaside 3.x Core Javascript JQuery Session Component Thursday, August 30, 12
  • 4. What is Seaside-Core • “Seaside Meta” • Web Framework Framework • HTTP Abstraction • Servlet API • Rack • WSGI Thursday, August 30, 12
  • 5. Why Seaside-Core • portable (dialect and server) • battle tested • objects, not strings • familiar objects • negligible overhead Thursday, August 30, 12
  • 6. Seaside 3.x Core Component Thursday, August 30, 12
  • 7. Seaside 3.x Core Component REST Thursday, August 30, 12
  • 8. Seaside 3.x Core Component REST … Thursday, August 30, 12
  • 9. WARequestHandler Request Response RH Thursday, August 30, 12
  • 10. WARequestHandler /conferences /esug /2012 RH RH RH Thursday, August 30, 12
  • 11. WARequestFilter RH Thursday, August 30, 12
  • 12. WASession 2.8 • current request • jump to • last continuation • continuations • monitor •… Thursday, August 30, 12
  • 13. WASession 3.x • continuations • properties • (document handlers) Thursday, August 30, 12
  • 14. WARequestContext • request • response • handler stack Thursday, August 30, 12
  • 15. Request Handler Stack 1 2 3 1 1 1 2 2 3 Thursday, August 30, 12
  • 16. WAPathConsumer /conferences/esug/2012/… RH RH RH /esug/2012/… /2012/… /… Thursday, August 30, 12
  • 17. WADispatcher ‘conferences’ -> aRequestHandler ‘sponsors’ -> aRequestHandler ‘…’ -> aRequestHanlder Thursday, August 30, 12
  • 18. 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 WARequestContext Thursday, August 30, 12
  • 19. Frank a micro framework inspired by Sinatra Thursday, August 30, 12
  • 21. Disclaimer • REST in this context simply means “pretty URLs” • pretty URLs for web services, not web applications • this will feel a little weird Thursday, August 30, 12
  • 22. index <get> ^ ‘Hello World’ Thursday, August 30, 12
  • 23. index <get> <path: ‘index.html’> ^ ‘Hello World’ Thursday, August 30, 12
  • 24. indexHtml <get> <path: ‘index’> <produces: ‘text/html’> ^ ‘<h1>Hello World</h1>’ Accept: text/html Thursday, August 30, 12
  • 25. indexXml <get> <path: ‘index’> <produces: ‘text/xml’> ^ ‘<hello><world/></hello>’ Accept: text/xml Thursday, August 30, 12
  • 26. uploadXml <post> <consumes: ‘text/xml’> … Content-Type: text/xml Thursday, August 30, 12
  • 27. uploadCsv <post> <consumes: ‘text/csv’> … Content-Type: text/csv Thursday, August 30, 12
  • 28. getAllStartingAt: start limit: limit named: name <get> <path: ‘/{name}/_all_docs?start={start}&limit={limit}’> ... Thursday, August 30, 12
  • 30. WARestfulComponentFilter count: count <get> <path: '/{count}'> self startSessionWithRoot: (WACounter new count: count greaseInteger; yourself) Thursday, August 30, 12
  • 31. Data Binding • XML or JSON canvas • Magritte-XML • Magritte-JSON Thursday, August 30, 12
  • 32. Dialects • GemStone • Pharo • VAST Thursday, August 30, 12
  • 34. 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
  • 35. Path Parameter • /;_s=KAAWl0x3c6KLnN6Q • doesn’t need to be hidden form parameter • required by some load balancers Thursday, August 30, 12
  • 36. WAMain gone • specify initial continuation • subclass WASessionContinuation if you used to subclass WAMain Thursday, August 30, 12
  • 37. WAPluggableActionContinuation • replace WAActionPhaseContinuation subclasses with WACallbackProcessingActionContinuation subclasses Thursday, August 30, 12
  • 38. JSON • separate from JavaScript • various subtle bugs fixed • canvas API Thursday, August 30, 12
  • 39. Streaming Redone • on demand flushing • continuation that flushes after rendering </head> • better portability to other servers Thursday, August 30, 12
  • 40. HTML 5 •#multipleValuesCallback: Thursday, August 30, 12
  • 41. Document Handlers • stored in session • no longer stored alongside sessions • _d Thursday, August 30, 12
  • 42. 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 escaping Thursday, August 30, 12
  • 43. Help Wanted • Morphic Control panel for Pharo 2.0 Thursday, August 30, 12
  • 44. Seaside Sprint • Friday at Vooruit • Saturday at Camp location • (Sunday) Thursday, August 30, 12
  • 45. Seaside Sprint Sponsors • Reza Razavi • 2Rivers Thursday, August 30, 12
  • 46. 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/SeasideRest Thursday, August 30, 12