Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Package Manager, Automation, REPL, … 
Go Commando!
Who am I? 
•ColdFusion Architect (12 years) 
•Geek 
•Android Lover 
•Blogger (codersrevolution.com) 
•ColdBox Platform Eva...
Agenda 
•How do we work in CF 
•How we SHOULD work 
•What is CommandBox 
•Features 
•Usage 
•Roadmap
How do we work in CF?
IT'S ALIVE!
Cool Kids
How we should work!
Introducing…
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
Who is this for? 
•For any ColdFusion (CFML) Developer 
•Commands For: 
•Operating System Integration 
•Executing CFML Cod...
Installation 
Java 1.7+ 
33mb 
Installs to: 
User/.CommandBox
It is POSS 
•GitHub 
•https://github.com/Ortus-Solutions/commandbox 
•Professional Support 
•Training 
•Mentoring 
•Custom...
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
Usage - CLI vs Shell 
Commands Shell
Usage - Commands 
•How you get things done! 
•Built-in Help 
•API Docs 
•Command Namespaces 
•Commands 
•Aliases 
•Paramet...
Usage - Parameters 
•Named 
•Positional 
•Boolean Flags 
•Escaped Input 
•Required Values 
•Completion
Usage - History 
•Command History 
•REPL History 
•Clear History
Usage - OS Integration 
•OS Integration Commands 
•Output Piping 
•| 
•File Redirection 
•> Create 
•>> Append 
•Open 
•Fi...
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
What’s a package? 
•A folder 
•Some code 
•A box.json
What’s a module? 
A “smart” package 
Has a ModuleConfig.cfc 
Has optional conventions 
Auto-registers itself with ColdBox
box.json 
•Package Descriptor 
•Declares package metadata 
•Name 
•Slug 
•Version 
•Author 
•Dependencies 
•DevDependencie...
box.json 
{ 
"name" : "Weather By IP", 
"author" : "Brad Wood <brad@bradwood.com>", 
"version" : "1.0.0", 
"slug" : "weath...
Where do they come from? 
•ForgeBox 
•File zip/tar 
•Directory 
•Git 
•SVN 
•Github 
•Bitbucket 
•Custom
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
ForgeBox 
•Cloud package repository 
•Web GUI 
•Community driven 
•ForgeBox Commands 
•150+ packages 
•Help us out! 
•www....
Package Commands 
•forgebox 
•install 
•uninstall 
•search 
•show 
•artifacts 
•remove, list, clean 
•package 
•show, init...
Packaging Features 
•Choose version to install 
•Automatically installs dependencies 
•Development/Production dependencies...
Packaging Features
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
Read - Eval - Print - Loop 
REPL 
•Executes code 
•Support CFML or CFScript 
•History 
•Multi-line Statements 
•Declare cl...
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
Integrated Server 
•Lightweight servlet container: undertow 
•Startup ad-hoc servers in any folder 
•Keeps track of server...
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
Scaffolding 
•ColdBox Applications 
•ContentBox Applications 
•TestBox Integration 
•Custom For Any Framework or Flow
Scaffolding 
init 
coldbox create app “MyApp” —installColdBoxBE 
coldbox create handler contacts index,save,delete 
coldbo...
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
Automation 
•run 
•Any OS binary 
•Link to grunt/gulp/ant 
•execute 
•Execute any CFML template 
•recipe 
•Like a “Batch” ...
my-recipe.boxr 
# Init a repository 
mkdir $name 
init $name 
run git init 
# Create ColdBox App 
coldbox create app $1 —i...
What is CommandBox? 
CLI Package 
Manager 
REPL 
Read-Eval 
Print-Loop 
Integrated 
Server 
CFML 
ForgeBox Scaffolding 
Co...
ColdFusion Extensibility 
CFML 
•Commands are CFML 
•Create custom commands 
•Register in ForgeBox 
•DI/AOP Capabilities 
...
Roadmap 
Automation/Async 
More Generators 
ForgeBox Enterprise 
ForgeBox 2.0 
Adobe CF Engine 
Task Runners
Resources 
•Official Site 
•http://ortussolutions.com/products/commandbox 
•Documentation 
•http://apidocs.ortussolutions....
Q & A 
Thanks!
Upcoming SlideShare
Loading in …5
×

Command box, Package Manager, Automation, REPL

655 views

Published on

Command box, Package Manager, Automation, REPL

Published in: Software
  • Hey Jeff, I never saw your comments since these slides are posted under a conference account. Thanks for pointing that out. $name would only work if you were using named arguments for your recipe call. I can edit this posting, but I've updated my slide deck for dev.Objective() :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • error in slide 39 in use of recipe, second and third lines reference $name, which is undefined. Should be $1, which is the name for the App and directory passed in with the example call to the recipe. Otherwise creates a directory named "$name" which doesn't get populated, and puts the subdirectories at the same level! Still, this is the first example recipe I've seen, and it very well demonstrates the power of this wonderful new tool. Thanks, dudes!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Command box, Package Manager, Automation, REPL

  1. 1. Package Manager, Automation, REPL, … Go Commando!
  2. 2. Who am I? •ColdFusion Architect (12 years) •Geek •Android Lover •Blogger (codersrevolution.com) •ColdBox Platform Evangelist •Musician •Shade-Tree Mechanic •Husband (11 years) •Dad (3 beautiful girls)
  3. 3. Agenda •How do we work in CF •How we SHOULD work •What is CommandBox •Features •Usage •Roadmap
  4. 4. How do we work in CF?
  5. 5. IT'S ALIVE!
  6. 6. Cool Kids
  7. 7. How we should work!
  8. 8. Introducing…
  9. 9. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  10. 10. Who is this for? •For any ColdFusion (CFML) Developer •Commands For: •Operating System Integration •Executing CFML Code •ColdBox Developers •TestBox BDD/TDD •ContentBox Developers •Custom
  11. 11. Installation Java 1.7+ 33mb Installs to: User/.CommandBox
  12. 12. It is POSS •GitHub •https://github.com/Ortus-Solutions/commandbox •Professional Support •Training •Mentoring •Custom Commands •Support
  13. 13. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  14. 14. Usage - CLI vs Shell Commands Shell
  15. 15. Usage - Commands •How you get things done! •Built-in Help •API Docs •Command Namespaces •Commands •Aliases •Parameters/Arguments •Tab-Completion •Commands, Parameters, Paths, Custom
  16. 16. Usage - Parameters •Named •Positional •Boolean Flags •Escaped Input •Required Values •Completion
  17. 17. Usage - History •Command History •REPL History •Clear History
  18. 18. Usage - OS Integration •OS Integration Commands •Output Piping •| •File Redirection •> Create •>> Append •Open •Files/Directories •Browser •Run OS Binaries
  19. 19. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  20. 20. What’s a package? •A folder •Some code •A box.json
  21. 21. What’s a module? A “smart” package Has a ModuleConfig.cfc Has optional conventions Auto-registers itself with ColdBox
  22. 22. box.json •Package Descriptor •Declares package metadata •Name •Slug •Version •Author •Dependencies •DevDependencies •Installation Details •Custom Metadata
  23. 23. box.json { "name" : "Weather By IP", "author" : "Brad Wood <brad@bradwood.com>", "version" : "1.0.0", "slug" : "weather-lookup-by-ip", "shortDescription" : "Look up local weather.", "type" : "modules", "dependencies" : { "geolocation-lookup-by-ip" : "2.0.0" } }
  24. 24. Where do they come from? •ForgeBox •File zip/tar •Directory •Git •SVN •Github •Bitbucket •Custom
  25. 25. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  26. 26. ForgeBox •Cloud package repository •Web GUI •Community driven •ForgeBox Commands •150+ packages •Help us out! •www.forgebox.org coming soon!
  27. 27. Package Commands •forgebox •install •uninstall •search •show •artifacts •remove, list, clean •package •show, init, clear, set
  28. 28. Packaging Features •Choose version to install •Automatically installs dependencies •Development/Production dependencies •Distribute without dependencies • “install” initializes a project •Dependency Inception
  29. 29. Packaging Features
  30. 30. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  31. 31. Read - Eval - Print - Loop REPL •Executes code •Support CFML or CFScript •History •Multi-line Statements •Declare closures, functions, etc •Keeps state
  32. 32. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  33. 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 •status •log •open •forget
  34. 34. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  35. 35. Scaffolding •ColdBox Applications •ContentBox Applications •TestBox Integration •Custom For Any Framework or Flow
  36. 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” start testbox run
  37. 37. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  38. 38. Automation •run •Any OS binary •Link to grunt/gulp/ant •execute •Execute any CFML template •recipe •Like a “Batch” file •Runs multiple commands •Can accept parameters •my-recipe.boxr
  39. 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 myHandler myModule 8081
  40. 40. What is CommandBox? CLI Package Manager REPL Read-Eval Print-Loop Integrated Server CFML ForgeBox Scaffolding ColdFusion Automation
  41. 41. ColdFusion Extensibility CFML •Commands are CFML •Create custom commands •Register in ForgeBox •DI/AOP Capabilities •Favorite Command •CommandBox-Chuck-Norris
  42. 42. Roadmap Automation/Async More Generators ForgeBox Enterprise ForgeBox 2.0 Adobe CF Engine Task Runners
  43. 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
  44. 44. Q & A Thanks!

×