2. WHO AM I?
• Luis Majano - Computer Engineer
• Born in El Salvador ------------------>
• Architecture + Software Design
• CEO of Ortus Solutions
• Adobe Community Professional
• Creator of all things Box:
ColdBox, ContentBox, WireBox....
3. AGENDA
• How do we work in CF
• A better way to work in CF
• What is CommandBox
• Features
• Usage
• Roadmap
4. HOW DO WE WORK IN CF?
Code% App%
Code
Code
Code
Code
Code
Code
Code
10. What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-Loop
Integrated
Server
CFML
ColdFusion Automation
ForgeBox Scaffolding
11. Who is this for?
• For any ColdFusion (CFML) Developer
• Commands For:
• Operating System Integration
• Executing CFML Code
• ColdBox Developers
• TestBox BDD/TDD
• ContentBox Developers
• Any framework/app developer
13. We are POSS
• GitHub
• https://github.com/Ortus-Solutions/commandbox
• Professional Support
• Training + Mentoring
• Development
• Support
• Salsa Lessons are Optional
Brad Wood
Salsa King
14. What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-Loop
Integrated
Server
CFML
ColdFusion Automation
ForgeBox Scaffolding
29. Packaging Features
• Can distribute without dependencies
• Can have development dependencies
• Dependencies Inception
• “install” to initialize a project
• “update” to update dependencies
30. What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-Loop
Integrated
Server
CFML
ColdFusion Automation
ForgeBox Scaffolding
31. Read - Eval - Print - Loop
REPL
• Executes code
• Support Tags or CFScript
• History
• Multi-line Statements
• Declare closures, functions, etc
• Keeps state
32. What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-Loop
Integrated
Server
CFML
ColdFusion Automation
ForgeBox Scaffolding
33. Integrated Server
• Lightweight servlet container: undertow
• Startup ad-hoc servers in any folder
• Keeps track of servers, no WEB-INF needed
• Server
• start
• stop
• restart
• status
• log
• open
• forget
• Railo + Adobe CF
34. What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-Loop
Integrated
Server
CFML
ColdFusion Automation
ForgeBox Scaffolding
35. Scaffolding
• ColdBox Applications
• ContentBox Applications
• TestBox Integration
• Available For Any Framework or Application
• Preside CMS
36. Scaffolding
init
coldbox create app “MyApp” —-installColdBoxBE
coldbox create handler contacts index,save,delete
coldbox create module MyModule
install testbox-be
package set defaultPort=“90001”
package set testbox.runner=“localhost:90001/tests/runner”
testbox run
37. What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-Loop
Integrated
Server
CFML
ColdFusion Automation
ForgeBox Scaffolding
38. Automation Commands
• run
• Execute any OS binary
• Integrate with grunt/gulp/ant
• execute
• Enhanced execution
• Can accept parameters
• recipe
• Like a “Batch” file: !#/usr/bin/box
• Runs multiple commands
• Can accept parameters
• my-recipe.boxr
39. my-recipe.boxr
# Init a repository
mkdir $name
init $name
run git init
# Create ColdBox App
coldbox create app $1 —installColdBoxBE
coldbox create handler $2 index,save,delete
coldbox create module $3
# Prepare for Testing
install testbox-be
package set defaultPort=“$4”
package set testbox.runner=“localhost:$4/tests/runner”
recipe my-recipe.boxr MyApp
40. What is CommandBox?
CLI Package
Manager
REPL
Read-Eval
Print-Loop
Integrated
Server
CFML
ColdFusion Automation
ForgeBox Scaffolding
43. Resources
• Official Site
• http://ortussolutions.com/products/commandbox
• Documentation
• http://apidocs.ortussolutions.com/commandbox/1.0.0/
• https://ortussolutions.com/products/commandbox/docs/current
• Google Group
• https://groups.google.com/a/ortussolutions.com/forum/#!forum/commandbox
• Training
• http://ortussolutions.com/services/training
• Professional Support
• http://ortussolutions.com/services/support