SlideShare a Scribd company logo
1 of 21
Download to read offline
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

More Related Content

More from 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
 

More from 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
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
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
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
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
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

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