SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
Rapid Application Development
AppeX
&
Google Chrome Dev Tools


By Jerry Kott

@cincomsmalltalk (Twitter)

#ESUG16
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
We love Smalltalk!
Why?
Many answers:
• Elegant
• Simple
• Productive
• etc…
Excels at:
• Rapid Application Development
2
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
Rapid Application Development
Tools, Methods, Interpretations vary
Smalltalk Favourite:
• Halt
• Change code
• Resume
Can it be done with Web Applications?
3
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
RAD on the Web
Browser capabilities vary
Google Chrome Developer Tools are the most
advanced
Maps a network resource to a local file, e.g.:
• http://localhost/my-script.js
• file:///Users/my-user-id/www/my-script.js
Edit & save my-script.js locally, http server will ‘see’ the
change
Not quite like Smalltalk Debugger - yet?
4
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
JSFile
Allows AppeX to keep JavaScript code synchronized
between a Smalltalk image and the local file system
Cincom® VisualWorks® IDE and web browser
Developer Tools can be used together in round-trip RAD
Key classes in AppeX-Tools parcel:
• JSFileMonitor
• JSFileComposer
• JSFileParserActor
5
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
JSFile
JSFileMonitor
• periodically checks .js file timestamps
• newer versions are parsed into AppeX
• location of files and frequency of updates are
configurable
JSFileComposer
• ensures source code is written from VisualWorks IDE
into the file system
JSFileParserActor
• reads source from the file system back into the IDE
6
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
Setup
7
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
Start a Server instance
8
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
Open your application
9
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
Open Developer Tools
10
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
11
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
Programmatic use
Activation
AppeX.Application scriptDirectory.
AppeX.Application useJSFile.
Deactivation
AppeX.Application useImageCode.
AppeX-Tools parcel
• JSFileComposer
• JSFileMonitor
12
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
Challenges
Platform-specific line-end conventions
Currently only Google Chrome has the capability
Developer Tools are evolving - what works one day
may not work next day after a Chrome update
Still not quite the ‘halt, edit, resume’ workflow
Smalltalkers love.
13
©2016 Cincom Systems Inc. All Rights Reserved.
@cincomsmalltalk #esug16
In closing…
RAD means different things for different people
We Smalltalkers are spoiled
RAD for the Web is especially challenging - the code
generally runs in a different environment than the
IDE (if there is one)
Still evolving, JavaScript is as malleable as Smalltalk
Expect more tools in this field, and AppeX to
continue to evolve to leverage those tools
14
©2016 Cincom Systems Inc. All Rights Reserved.
Questions?
15@cincomsmalltalk #esug16
©2016 Cincom Systems Inc. All Rights Reserved.16
Thank You!
Suzanne Fortman 

Program Director / Engineering Manager

sfortman@cincom.com

@SuzCST (Twitter)
Arden Thomas 

Product Manager

athomas@cincom.com

@ArdenTCST (Twitter)
Jerry Kott

jkott@cincom.com 

@cincomsmalltalk (Twitter)

@cincomsmalltalk #esug16

Más contenido relacionado

Más de 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 programming
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 Roadmap
ESUG
 
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 results
ESUG
 
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
ESUG
 
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
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
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
ESUG
 

Más de 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
 

Último

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Último (20)

%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

Rapid Application Development with AppeX and Google Chrome Developer Tools

  • 1. Rapid Application Development AppeX & Google Chrome Dev Tools 
 By Jerry Kott
 @cincomsmalltalk (Twitter)
 #ESUG16
  • 2. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 We love Smalltalk! Why? Many answers: • Elegant • Simple • Productive • etc… Excels at: • Rapid Application Development 2
  • 3. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 Rapid Application Development Tools, Methods, Interpretations vary Smalltalk Favourite: • Halt • Change code • Resume Can it be done with Web Applications? 3
  • 4. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 RAD on the Web Browser capabilities vary Google Chrome Developer Tools are the most advanced Maps a network resource to a local file, e.g.: • http://localhost/my-script.js • file:///Users/my-user-id/www/my-script.js Edit & save my-script.js locally, http server will ‘see’ the change Not quite like Smalltalk Debugger - yet? 4
  • 5. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 JSFile Allows AppeX to keep JavaScript code synchronized between a Smalltalk image and the local file system Cincom® VisualWorks® IDE and web browser Developer Tools can be used together in round-trip RAD Key classes in AppeX-Tools parcel: • JSFileMonitor • JSFileComposer • JSFileParserActor 5
  • 6. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 JSFile JSFileMonitor • periodically checks .js file timestamps • newer versions are parsed into AppeX • location of files and frequency of updates are configurable JSFileComposer • ensures source code is written from VisualWorks IDE into the file system JSFileParserActor • reads source from the file system back into the IDE 6
  • 7. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 Setup 7
  • 8. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 Start a Server instance 8
  • 9. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 Open your application 9
  • 10. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 Open Developer Tools 10
  • 11. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 11
  • 12. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 Programmatic use Activation AppeX.Application scriptDirectory. AppeX.Application useJSFile. Deactivation AppeX.Application useImageCode. AppeX-Tools parcel • JSFileComposer • JSFileMonitor 12
  • 13. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 Challenges Platform-specific line-end conventions Currently only Google Chrome has the capability Developer Tools are evolving - what works one day may not work next day after a Chrome update Still not quite the ‘halt, edit, resume’ workflow Smalltalkers love. 13
  • 14. ©2016 Cincom Systems Inc. All Rights Reserved. @cincomsmalltalk #esug16 In closing… RAD means different things for different people We Smalltalkers are spoiled RAD for the Web is especially challenging - the code generally runs in a different environment than the IDE (if there is one) Still evolving, JavaScript is as malleable as Smalltalk Expect more tools in this field, and AppeX to continue to evolve to leverage those tools 14
  • 15. ©2016 Cincom Systems Inc. All Rights Reserved. Questions? 15@cincomsmalltalk #esug16
  • 16. ©2016 Cincom Systems Inc. All Rights Reserved.16 Thank You! Suzanne Fortman 
 Program Director / Engineering Manager
 sfortman@cincom.com
 @SuzCST (Twitter) Arden Thomas 
 Product Manager
 athomas@cincom.com
 @ArdenTCST (Twitter) Jerry Kott
 jkott@cincom.com 
 @cincomsmalltalk (Twitter)
 @cincomsmalltalk #esug16