SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
SINGLE PAGE

WEB APPLICATION DEVELOPMENT WITH

SiouX AND AppeX



By Jerry Kott

©2015 Cincom Systems Inc. All Rights Reserved.
SiouX

3
• HTTP(s) server based on Xtreams"
• Lightweight, highly configurable, streaming,
secure"
• Integrates easily with Seaside, Web Services,
Servlets"
• Multiple responders, multiple port listeners
©2015 Cincom Systems Inc. All Rights Reserved.
AppeX

4
• Web application framework using SiouX and Xtreams"
• Core Javascript library on the client, seamlessly connects to the
server (Smalltalk)"
• JS code editor integrated in VW IDE"
• Object-Oriented JS with class hierarchy (before ECMAScript 6!)"
• What You Write Is What You Get
©2015 Cincom Systems Inc. All Rights Reserved.
AppeX is NOT...

5
• Smalltalk in the browser (but we have an Amber integration
example)"
• A Smalltalk to JS translator (Smalltalk code lives on the server,
JS code loads unchanged into a web client)"
• Just a Javascript editor (but having one is great!)"
• A multi-page web site development tool (although it’s possible,
and we have code examples for that)
©2015 Cincom Systems Inc. All Rights Reserved.
New in AppeX (Cincom® VisualWorks® 8.1)
6
• RESTful API demos"
• ActiveRecord support (PUT, GET, POST, DELETE)"
• UI Scaffolding - JS classes seamlessly build HTML5 elements
on the client from ActiveRecord objects on the server"
• Scaffolding GUI tool - builds client and server code from an
existing ActiveRecord database
©2015 Cincom Systems Inc. All Rights Reserved.
New in AppeX, cont‘d
7
• Added jsonStream: service type. JSON object serialization now
can be in-memory or directly on the socket stream (e.g., large
objects)"
• ETag support for client resource caching (less bandwidth)"
• CSS Themes"
• LinuxPAM - user authentication
©2015 Cincom Systems Inc. All Rights Reserved.
Let‘s Get Practical!
8
Coming up:"
• Loading SiouX code and configuring servers and responders"
• Code samples"
• Loading AppeX"
• Creating a database backed web application
©2015 Cincom Systems Inc. All Rights Reserved.
Loading SiouX Parcels
9
• SiouX-Server: basic HTTP server & framework"
• SiouX-Http: HTTP protocol on top of Xtreams"
• SiouX-Server-Secure: HTTPS support (SSL/TLS)"
• SiouX-Tools: GUI tools for managing servers"
• SiouX-Examples: examples for study & inspiration
©2015 Cincom Systems Inc. All Rights Reserved.
Demo: Web Servers Tool
10
©2015 Cincom Systems Inc. All Rights Reserved.
Creating a Server
11
server := Server id: 'Demo Server'."
listener := server listenOn: 9999 for: SiouX.HttpConnection."
server start."
server addResponder: (responder := Hello new)."
responder openWebBrowser."
Hello browse."
"
server release.
©2015 Cincom Systems Inc. All Rights Reserved.
From SiouX to AppeX
12
• SiouX provides the transport and dispatching
mechanism"
• Responders are flexible but not very sophisticated"
• Need for an application layer with a tight IDE and web
browser integration"
• Welcome AppeX. ESUG 2014 presentation
©2015 Cincom Systems Inc. All Rights Reserved.
Loading AppeX Parcels
13
• AppeX-Core: framework with both server (Smalltalk)
and client (Javascript) classes"
• AppeX-Tools: IDE integration, JS parser & editor"
• AppeX-Examples-*: aspects like server events,
mobile apps, Seaside integration, etc… Explore!"
• AppeX-ServerMonitor: functional equivalent of
SiouX Web Servers management tool.
©2015 Cincom Systems Inc. All Rights Reserved.
AppeX Parcels, cont‘d
14
• (new) AppeX-ActiveRecord: extensions of AppeX,
Glorp and ActiveRecord classes"
• (new) AppeX-Scaffolding: a framework for
ActiveRecord-backed Web applications"
• (new) AppeX-Scaffolding-Tool: GUI tool to generate
ActiveRecord classes and service methods. Result is a
functional web app.
©2015 Cincom Systems Inc. All Rights Reserved.
Demo: Scaffolding Tool
15
Launcher"
➡ Tools"
‣Create Web 

Application
©2015 Cincom Systems Inc. All Rights Reserved.
Funcational App - Zero Coding
16
©2015 Cincom Systems Inc. All Rights Reserved.
Customized Web Apps
17
Customize by subclassing Scaffolding classes:"
• ListPresenter"
• DetailPresenter"
• EditPresenter"
• SelectionPresenter
©2015 Cincom Systems Inc. All Rights Reserved.
Custom App Demo
18
©2015 Cincom Systems Inc. All Rights Reserved.
19
Questions?
©2015 Cincom Systems Inc. All Rights Reserved.
20
Star Team (Smalltalk Strategic Resources)"
""
– Suzanne Fortman (sfortman@cincom.com)"
Cincom Smalltalk Program Director!
– Arden Thomas (athomas@cincom.com)"
Cincom Smalltalk Product Manager"
– Jeremy Jordan (jjordan@cincom.com)
Cincom Smalltalk
Marketing Manager!
– Suzanne Fortman (sfortman@cincom.com)"
Cincom Smalltalk Engineering Manager
Contact Information
©2015 Cincom Systems Inc. All Rights Reserved.
21
Evaluate Cincom Smalltalk:

" try.cincomsmalltalk.com"
"
	
Join our Cincom Smalltalk Developer Program:



" develop.cincomsmalltalk.com"
"
"
Try Cincom Smalltalk

Contenu connexe

Plus de ESUG

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
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalkESUG
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social MediaESUG
 

Plus de ESUG (20)

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
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalk
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Media
 

Dernier

How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
[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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 

Dernier (20)

How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
[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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 

Single Page Web Application Development with SiouX and AppeX

  • 1. SINGLE PAGE
 WEB APPLICATION DEVELOPMENT WITH
 SiouX AND AppeX
 
 By Jerry Kott

  • 2.
  • 3. ©2015 Cincom Systems Inc. All Rights Reserved. SiouX
 3 • HTTP(s) server based on Xtreams" • Lightweight, highly configurable, streaming, secure" • Integrates easily with Seaside, Web Services, Servlets" • Multiple responders, multiple port listeners
  • 4. ©2015 Cincom Systems Inc. All Rights Reserved. AppeX
 4 • Web application framework using SiouX and Xtreams" • Core Javascript library on the client, seamlessly connects to the server (Smalltalk)" • JS code editor integrated in VW IDE" • Object-Oriented JS with class hierarchy (before ECMAScript 6!)" • What You Write Is What You Get
  • 5. ©2015 Cincom Systems Inc. All Rights Reserved. AppeX is NOT...
 5 • Smalltalk in the browser (but we have an Amber integration example)" • A Smalltalk to JS translator (Smalltalk code lives on the server, JS code loads unchanged into a web client)" • Just a Javascript editor (but having one is great!)" • A multi-page web site development tool (although it’s possible, and we have code examples for that)
  • 6. ©2015 Cincom Systems Inc. All Rights Reserved. New in AppeX (Cincom® VisualWorks® 8.1) 6 • RESTful API demos" • ActiveRecord support (PUT, GET, POST, DELETE)" • UI Scaffolding - JS classes seamlessly build HTML5 elements on the client from ActiveRecord objects on the server" • Scaffolding GUI tool - builds client and server code from an existing ActiveRecord database
  • 7. ©2015 Cincom Systems Inc. All Rights Reserved. New in AppeX, cont‘d 7 • Added jsonStream: service type. JSON object serialization now can be in-memory or directly on the socket stream (e.g., large objects)" • ETag support for client resource caching (less bandwidth)" • CSS Themes" • LinuxPAM - user authentication
  • 8. ©2015 Cincom Systems Inc. All Rights Reserved. Let‘s Get Practical! 8 Coming up:" • Loading SiouX code and configuring servers and responders" • Code samples" • Loading AppeX" • Creating a database backed web application
  • 9. ©2015 Cincom Systems Inc. All Rights Reserved. Loading SiouX Parcels 9 • SiouX-Server: basic HTTP server & framework" • SiouX-Http: HTTP protocol on top of Xtreams" • SiouX-Server-Secure: HTTPS support (SSL/TLS)" • SiouX-Tools: GUI tools for managing servers" • SiouX-Examples: examples for study & inspiration
  • 10. ©2015 Cincom Systems Inc. All Rights Reserved. Demo: Web Servers Tool 10
  • 11. ©2015 Cincom Systems Inc. All Rights Reserved. Creating a Server 11 server := Server id: 'Demo Server'." listener := server listenOn: 9999 for: SiouX.HttpConnection." server start." server addResponder: (responder := Hello new)." responder openWebBrowser." Hello browse." " server release.
  • 12. ©2015 Cincom Systems Inc. All Rights Reserved. From SiouX to AppeX 12 • SiouX provides the transport and dispatching mechanism" • Responders are flexible but not very sophisticated" • Need for an application layer with a tight IDE and web browser integration" • Welcome AppeX. ESUG 2014 presentation
  • 13. ©2015 Cincom Systems Inc. All Rights Reserved. Loading AppeX Parcels 13 • AppeX-Core: framework with both server (Smalltalk) and client (Javascript) classes" • AppeX-Tools: IDE integration, JS parser & editor" • AppeX-Examples-*: aspects like server events, mobile apps, Seaside integration, etc… Explore!" • AppeX-ServerMonitor: functional equivalent of SiouX Web Servers management tool.
  • 14. ©2015 Cincom Systems Inc. All Rights Reserved. AppeX Parcels, cont‘d 14 • (new) AppeX-ActiveRecord: extensions of AppeX, Glorp and ActiveRecord classes" • (new) AppeX-Scaffolding: a framework for ActiveRecord-backed Web applications" • (new) AppeX-Scaffolding-Tool: GUI tool to generate ActiveRecord classes and service methods. Result is a functional web app.
  • 15. ©2015 Cincom Systems Inc. All Rights Reserved. Demo: Scaffolding Tool 15 Launcher" ➡ Tools" ‣Create Web 
 Application
  • 16. ©2015 Cincom Systems Inc. All Rights Reserved. Funcational App - Zero Coding 16
  • 17. ©2015 Cincom Systems Inc. All Rights Reserved. Customized Web Apps 17 Customize by subclassing Scaffolding classes:" • ListPresenter" • DetailPresenter" • EditPresenter" • SelectionPresenter
  • 18. ©2015 Cincom Systems Inc. All Rights Reserved. Custom App Demo 18
  • 19. ©2015 Cincom Systems Inc. All Rights Reserved. 19 Questions?
  • 20. ©2015 Cincom Systems Inc. All Rights Reserved. 20 Star Team (Smalltalk Strategic Resources)" "" – Suzanne Fortman (sfortman@cincom.com)" Cincom Smalltalk Program Director! – Arden Thomas (athomas@cincom.com)" Cincom Smalltalk Product Manager" – Jeremy Jordan (jjordan@cincom.com)
Cincom Smalltalk Marketing Manager! – Suzanne Fortman (sfortman@cincom.com)" Cincom Smalltalk Engineering Manager Contact Information
  • 21. ©2015 Cincom Systems Inc. All Rights Reserved. 21 Evaluate Cincom Smalltalk:
 " try.cincomsmalltalk.com" " Join our Cincom Smalltalk Developer Program:
 
 " develop.cincomsmalltalk.com" " " Try Cincom Smalltalk