SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
CommandBox 
● CFML CLI, REPL, 
and Package Manager
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)
Professional Open Source 
Company backing and funding 
Professional Training Courses 
Books 
Support & Mentoring Plans 
Architecture & Design Sessions 
Server Tuning & Optimizations 
Code Reviews & Sanity Checks 
Dancing lessons
How Do We Work? 
● Tools! 
– IDE 
– RIAForge 
– Copy/paste 
– Scribble page/site 
– Ant 
– Grunt/Gulp
How Should We Work? 
● Better! 
– Automation 
– Share code with community 
– Manage external libs 
– Powerful and expressive tools 
– Easily test out code 
– Scaffolding
Introducing CommandBox! 
● Command Line Interface (CLI) 
● Package Manager 
● Read, Eval, Print, Loop (REPL)
Introducing CommandBox! 
● Native executable for Windows, Mac, Linux 
● First of its kind for CFML devs 
● Fills in the missing tooling gaps
Introducing CommandBox! 
● For ANY CF dev, not just *Box users 
● Operation System integration for executing 
commands 
● ForgeBox integration for cloud package 
management and installations 
● ColdBox Platform, TestBox, and ContentBox CMS 
Integrations
Introducing CommandBox! 
● Embedded CFML server 
● Ability to create command recipes and execution 
● Built-in Help system 
● Ability to create and execute commands built using 
ColdFusion (CFML)
Let's Get Started! 
● Usage Docs: 
https://www.ortussolutions.com/products/commandbox/docs/current 
● Command API Docs: 
http://apidocs.ortussolutions.com/commandbox/current
Installation 
● Download from Ortus Solutions site 
● Only 33MB and comes with CF server embedded! 
● Simply download and run executable 
● Optionally put “box” binary in your system path 
● Update later from CLI via “upgrade” command
Usage - General 
● Multiple commands inside the Box shell 
● “One-off” commands from OS shell 
● Current Working Directory 
● Work with output with grep, more, and file 
redirection
Usage – Commands 
● Help 
● Namespaces 
● Aliases
Usage - Parameters 
● Named parameters 
● Positional parameters 
● Boolean flags 
● Escaping input 
● Required values 
● File paths
Usage – Tab Completion 
● Command 
● Parameter 
● Custom 
● Files path
Usage – History 
● Command 
● REPL 
● Managing history
REPL 
● Run CF code from the command line 
● Supports CFML or CFScript 
● REPL has its own history
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
Conventions Are Good! 
● A common way of doing things 
● Makes everyone's code compatible 
● Standardizes extension points 
● Most all current languages enforce 
conventions 
● Increases automatability 
● 91,000 Node modules can't be wrong!
What is box.json 
● A standard package descriptor 
● Declares common package meta data 
● Name 
● Slug 
● Version 
● Author 
● Dependencies 
● Installation details
What is box.json 
{ 
"name" : "Weather By IP", 
"author" : "Brad Wood <brad@codersrevolution.com.com", 
"version" : "1.0.0", 
"slug" : "weather-lookup-by-ip", 
"shortDescription" : "Look up local weather by IP address.", 
"type" : "modules", 
"engines" : [ 
{ "type" : "railo", "version" : ">3.1" }, 
{ "type" : "adobe", "version" : ">9.0" }, 
{ "type" : "coldbox", "version" : ">4.0" } 
], 
"dependencies" : { 
"geolocation-lookup-by-ip" : "2.0.0" 
} 
}
What is ModuleConfig.cfc? 
● Tells the ColdBox app how to load the module 
● Settings 
● auto-map CFCs with WireBox 
● Auto-create app-specific mappings 
● Add SES routes 
● Add menu contributions (ContentBox)
What is ModuleConfig.cfc? 
component { 
this.title = "Weather By IP"; 
this.author = "Brad Wood"; 
this.description = "Look up local weather by IP address."; 
this.version = "1.0.0"; 
this.autoMapModels = true; 
this.modelNamespace = "Weather"; 
this.cfmapping = "/weather"; 
function configure(){ 
settings = { 
}; 
} 
function onLoad(){} 
function onUnLoad(){} 
}
ForgeBox 
● Web GUI 
● Online code repo for ANY package 
● Searchable 
● User-maintained 
● ForgeBox commands 
● Install packages 
● Save dependencies to box.json 
● Uninstall packages
Artifacts Cache 
● Local storage for packages 
● Download only necessary if not in cache 
● Cache location 
● “artifacts” commands to manage
Generators 
● Ability scaffold out entire apps 
● Quickly create app bits and pieces 
● Interactive commands collect info 
● Completely scriptable 
● Generators built for ColdBox and TestBox 
● More to come (contributions welcome!)
Let's Build An App! 
● init 
● coldbox create app 
● coldbox create handler 
● coldbox create module 
● install testbox 
● package show/set 
● testbox run
Recipes – Yummy! 
● Like a “batch” file 
● Runs multiple commands at once 
● Can accept parameters 
● Great for automation 
● myRecipe.boxr
Packaging with box.json 
● Dependencies are stored in box.json when 
installed 
● You can distribute your app without its 
dependencies 
● Dependencies can have dependencies 
(inception) 
● Use “install” to install them
Packaging with box.json 
● Weather sample app depends on ColdBox 
● Also depends on weather lookup 
● Weather lookup depends on GeoLocation 
● Developing on the app depeds on TestBox 
● https://github.com/bdw429s/ColdBox-Dependency-Sample-App
Packaging with box.json
Coming Soon! 
● Task Runners/build tools (Ant, Grunt, Gulp) 
● Install repo adapters (Git, RIAForge, Corporate, etc) 
● ForgeBox 2.0 
● More generators and integrations (fw/1 CFWheels) 
● ContentBox integrations 
● More embedded servers supported 
● Multi-version dependencies
Multi-Version Dependencies
Developing Commands 
● CommandBox commands are just CFCs 
● Extend BaseCommand 
● Implement “run()” method 
● Print object for output 
● Managed by WireBox for DI
Snake throwdown 
● Nothing like old school ASCII games 
● Stress reliever 
● Don't let your boss see 
● Can you beat my high score? (141)
Preso Links 
Download CommandBox 
– http://www.ortussolutions.com/products/commandbox 
Source Code 
– https://github.com/Ortus-Solutions/commandbox 
Forgebox 
– http://www.coldbox.org/forgeBox 
Sample App w/Dependencies 
– https://github.com/bdw429s/ColdBox-Dependency-Sample-App
CommandBox Resources 
Official Site 
http://www.ortussolutions.com/products/commandbox 
Documentation 
http://apidocs.ortussolutions.com/commandbox/1.0.0/index.html 
https://www.ortussolutions.com/products/commandbox/docs/current 
Google Group 
https://groups.google.com/a/ortussolutions.com/forum/#!forum/commandbox 
Training 
http://www.ortussolutions.com/services/Training 
Professional Support 
http://www.ortussolutions.com/services/support 
Brad Wood & 
Ortus Solutions, Corp 
brad@ortussolutions.com
Q & A

Weitere ähnliche Inhalte

Was ist angesagt?

Managing your SaltStack Minions with Foreman
Managing your SaltStack Minions with ForemanManaging your SaltStack Minions with Foreman
Managing your SaltStack Minions with ForemanStephen Benjamin
 
Open shift intro for Philly PUG
Open shift intro for Philly PUGOpen shift intro for Philly PUG
Open shift intro for Philly PUGSteven Pousty
 
Docker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopDocker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopChris Tankersley
 
Extending Foreman the easy way with foreman_hooks
Extending Foreman the easy way with foreman_hooksExtending Foreman the easy way with foreman_hooks
Extending Foreman the easy way with foreman_hooksDominic Cleal
 
Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016Chris Tankersley
 
PuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster EnvironmentPuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster EnvironmentGreg Cockburn
 
Leveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsLeveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsMark Niebergall
 
Indexing BackPAN
Indexing BackPANIndexing BackPAN
Indexing BackPANbrian d foy
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenterlzap
 
Configuration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needsConfiguration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needsSaltStack
 
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013Puppet
 
faastRuby - Building a FaaS platform with Redis (RedisConf19)
faastRuby - Building a FaaS platform with Redis (RedisConf19)faastRuby - Building a FaaS platform with Redis (RedisConf19)
faastRuby - Building a FaaS platform with Redis (RedisConf19)Paulo Arruda
 
Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)
Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)
Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)Cliff Seal
 
Writing a WordPress Plugin
Writing a WordPress PluginWriting a WordPress Plugin
Writing a WordPress PluginCurtiss Grymala
 
Building dynamic websites with Mod perl and apache
Building dynamic websites with Mod perl and apacheBuilding dynamic websites with Mod perl and apache
Building dynamic websites with Mod perl and apacheKamal Nayan
 
Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016David Brattoli
 
Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Andrei Savu
 
Setting up a local WordPress development environment
Setting up a local WordPress development environmentSetting up a local WordPress development environment
Setting up a local WordPress development environmentZero Point Development
 

Was ist angesagt? (20)

Managing your SaltStack Minions with Foreman
Managing your SaltStack Minions with ForemanManaging your SaltStack Minions with Foreman
Managing your SaltStack Minions with Foreman
 
Open shift intro for Philly PUG
Open shift intro for Philly PUGOpen shift intro for Philly PUG
Open shift intro for Philly PUG
 
Docker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopDocker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 Workshop
 
Extending Foreman the easy way with foreman_hooks
Extending Foreman the easy way with foreman_hooksExtending Foreman the easy way with foreman_hooks
Extending Foreman the easy way with foreman_hooks
 
Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016
 
PuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster EnvironmentPuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster Environment
 
Leveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsLeveraging Composer in Existing Projects
Leveraging Composer in Existing Projects
 
Indexing BackPAN
Indexing BackPANIndexing BackPAN
Indexing BackPAN
 
CPAN Training
CPAN TrainingCPAN Training
CPAN Training
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
 
Configuration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needsConfiguration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needs
 
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
 
faastRuby - Building a FaaS platform with Redis (RedisConf19)
faastRuby - Building a FaaS platform with Redis (RedisConf19)faastRuby - Building a FaaS platform with Redis (RedisConf19)
faastRuby - Building a FaaS platform with Redis (RedisConf19)
 
Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)
Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)
Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)
 
Writing a WordPress Plugin
Writing a WordPress PluginWriting a WordPress Plugin
Writing a WordPress Plugin
 
Building dynamic websites with Mod perl and apache
Building dynamic websites with Mod perl and apacheBuilding dynamic websites with Mod perl and apache
Building dynamic websites with Mod perl and apache
 
Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016
 
Wt vs phalcon
Wt vs phalconWt vs phalcon
Wt vs phalcon
 
Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10Apache Provisionr (incubating) - Bucharest JUG 10
Apache Provisionr (incubating) - Bucharest JUG 10
 
Setting up a local WordPress development environment
Setting up a local WordPress development environmentSetting up a local WordPress development environment
Setting up a local WordPress development environment
 

Andere mochten auch

Andere mochten auch (20)

Mood boards
Mood boards Mood boards
Mood boards
 
Administrative specialist
Administrative specialistAdministrative specialist
Administrative specialist
 
Planning booklet
Planning bookletPlanning booklet
Planning booklet
 
Administrative director
Administrative directorAdministrative director
Administrative director
 
Conquering ORM with DataBoss
Conquering ORM with DataBossConquering ORM with DataBoss
Conquering ORM with DataBoss
 
Album artwork
Album artwork Album artwork
Album artwork
 
Проблеми комп’ютероманії
Проблеми комп’ютероманіїПроблеми комп’ютероманії
Проблеми комп’ютероманії
 
Tugas trigger
Tugas triggerTugas trigger
Tugas trigger
 
Into The Box 2015 Keynote
Into The Box 2015 KeynoteInto The Box 2015 Keynote
Into The Box 2015 Keynote
 
Sitcom quiz!
Sitcom quiz!Sitcom quiz!
Sitcom quiz!
 
Story book
Story bookStory book
Story book
 
과제
과제과제
과제
 
Description and Critique of Slideshare
Description and Critique of SlideshareDescription and Critique of Slideshare
Description and Critique of Slideshare
 
CBDW2014 - ColdBox 4 Modules
CBDW2014 - ColdBox 4 ModulesCBDW2014 - ColdBox 4 Modules
CBDW2014 - ColdBox 4 Modules
 
Саші Хортів
Саші ХортівСаші Хортів
Саші Хортів
 
ITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are notITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are not
 
Олі Мельник
Олі МельникОлі Мельник
Олі Мельник
 
Fc, cp, dps
Fc, cp, dpsFc, cp, dps
Fc, cp, dps
 
Social Media Strategy: Exploring the Basics
Social Media Strategy: Exploring the Basics Social Media Strategy: Exploring the Basics
Social Media Strategy: Exploring the Basics
 
ARS MARKETING _ PROFILE
ARS MARKETING _ PROFILEARS MARKETING _ PROFILE
ARS MARKETING _ PROFILE
 

Ähnlich wie CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL Tool!

Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLColdFusionConference
 
CommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package ManagerCommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package Managerbdw429s
 
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Ortus Solutions, Corp
 
Brad Wood 5 command box modules you should be using
Brad Wood   5 command box modules you should be usingBrad Wood   5 command box modules you should be using
Brad Wood 5 command box modules you should be usingOrtus Solutions, Corp
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3sHaggai Philip Zagury
 
ITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLIITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLIOrtus Solutions, Corp
 
From airflow to google cloud composer
From airflow to google cloud composerFrom airflow to google cloud composer
From airflow to google cloud composerBruce Kuo
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsMichael Lange
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development PipelineGlobalLogic Ukraine
 
Command Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationCommand Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationColdFusionConference
 
ITB2019 Scaling with CommandBox in Production! - Brad Wood
ITB2019 Scaling with CommandBox in Production! - Brad WoodITB2019 Scaling with CommandBox in Production! - Brad Wood
ITB2019 Scaling with CommandBox in Production! - Brad WoodOrtus Solutions, Corp
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroEPAM
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesJérôme Petazzoni
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Runwesley chun
 
Infrastructure as code with Terraform
Infrastructure as code with TerraformInfrastructure as code with Terraform
Infrastructure as code with TerraformSam Bashton
 

Ähnlich wie CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL Tool! (20)

Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPL
 
CommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package ManagerCommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package Manager
 
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
 
Brad Wood 5 command box modules you should be using
Brad Wood   5 command box modules you should be usingBrad Wood   5 command box modules you should be using
Brad Wood 5 command box modules you should be using
 
Command box
Command boxCommand box
Command box
 
Command box
Command boxCommand box
Command box
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3s
 
ITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLIITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLI
 
From airflow to google cloud composer
From airflow to google cloud composerFrom airflow to google cloud composer
From airflow to google cloud composer
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
 
CommandBox : Free CFML
CommandBox : Free CFMLCommandBox : Free CFML
CommandBox : Free CFML
 
CommandBox at CFCamp 2014
CommandBox at CFCamp 2014CommandBox at CFCamp 2014
CommandBox at CFCamp 2014
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
Command Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, AutomationCommand Box ColdFusion Package Manager, Automation
Command Box ColdFusion Package Manager, Automation
 
ITB2019 Scaling with CommandBox in Production! - Brad Wood
ITB2019 Scaling with CommandBox in Production! - Brad WoodITB2019 Scaling with CommandBox in Production! - Brad Wood
ITB2019 Scaling with CommandBox in Production! - Brad Wood
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
ITB2017 - Keynote
ITB2017 - KeynoteITB2017 - Keynote
ITB2017 - Keynote
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
 
Infrastructure as code with Terraform
Infrastructure as code with TerraformInfrastructure as code with Terraform
Infrastructure as code with Terraform
 

Mehr von Ortus Solutions, Corp

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionOrtus Solutions, Corp
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Ortus Solutions, Corp
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfOrtus Solutions, Corp
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfOrtus Solutions, Corp
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfOrtus Solutions, Corp
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfOrtus Solutions, Corp
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfOrtus Solutions, Corp
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfOrtus Solutions, Corp
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfOrtus Solutions, Corp
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfOrtus Solutions, Corp
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfOrtus Solutions, Corp
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfOrtus Solutions, Corp
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfOrtus Solutions, Corp
 
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfOrtus Solutions, Corp
 
ITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfOrtus Solutions, Corp
 

Mehr von Ortus Solutions, Corp (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Ortus Government.pdf
Ortus Government.pdfOrtus Government.pdf
Ortus Government.pdf
 
Luis Majano The Battlefield ORM
Luis Majano The Battlefield ORMLuis Majano The Battlefield ORM
Luis Majano The Battlefield ORM
 
Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusion
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
 
ITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdfITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdf
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
 
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
 
ITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdf
 

Kürzlich hochgeladen

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL Tool!

  • 1. CommandBox ● CFML CLI, REPL, and Package Manager
  • 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. Professional Open Source Company backing and funding Professional Training Courses Books Support & Mentoring Plans Architecture & Design Sessions Server Tuning & Optimizations Code Reviews & Sanity Checks Dancing lessons
  • 4. How Do We Work? ● Tools! – IDE – RIAForge – Copy/paste – Scribble page/site – Ant – Grunt/Gulp
  • 5. How Should We Work? ● Better! – Automation – Share code with community – Manage external libs – Powerful and expressive tools – Easily test out code – Scaffolding
  • 6. Introducing CommandBox! ● Command Line Interface (CLI) ● Package Manager ● Read, Eval, Print, Loop (REPL)
  • 7. Introducing CommandBox! ● Native executable for Windows, Mac, Linux ● First of its kind for CFML devs ● Fills in the missing tooling gaps
  • 8. Introducing CommandBox! ● For ANY CF dev, not just *Box users ● Operation System integration for executing commands ● ForgeBox integration for cloud package management and installations ● ColdBox Platform, TestBox, and ContentBox CMS Integrations
  • 9. Introducing CommandBox! ● Embedded CFML server ● Ability to create command recipes and execution ● Built-in Help system ● Ability to create and execute commands built using ColdFusion (CFML)
  • 10. Let's Get Started! ● Usage Docs: https://www.ortussolutions.com/products/commandbox/docs/current ● Command API Docs: http://apidocs.ortussolutions.com/commandbox/current
  • 11. Installation ● Download from Ortus Solutions site ● Only 33MB and comes with CF server embedded! ● Simply download and run executable ● Optionally put “box” binary in your system path ● Update later from CLI via “upgrade” command
  • 12. Usage - General ● Multiple commands inside the Box shell ● “One-off” commands from OS shell ● Current Working Directory ● Work with output with grep, more, and file redirection
  • 13. Usage – Commands ● Help ● Namespaces ● Aliases
  • 14. Usage - Parameters ● Named parameters ● Positional parameters ● Boolean flags ● Escaping input ● Required values ● File paths
  • 15. Usage – Tab Completion ● Command ● Parameter ● Custom ● Files path
  • 16. Usage – History ● Command ● REPL ● Managing history
  • 17. REPL ● Run CF code from the command line ● Supports CFML or CFScript ● REPL has its own history
  • 18. What's A Package? ● A folder ● Some code ● A box.json
  • 19. What's A Module? ● A “smart” package ● Has a ModuleConfig.cfc ● Has optional conventions ● Auto-registers itself with ColdBox
  • 20. Conventions Are Good! ● A common way of doing things ● Makes everyone's code compatible ● Standardizes extension points ● Most all current languages enforce conventions ● Increases automatability ● 91,000 Node modules can't be wrong!
  • 21. What is box.json ● A standard package descriptor ● Declares common package meta data ● Name ● Slug ● Version ● Author ● Dependencies ● Installation details
  • 22. What is box.json { "name" : "Weather By IP", "author" : "Brad Wood <brad@codersrevolution.com.com", "version" : "1.0.0", "slug" : "weather-lookup-by-ip", "shortDescription" : "Look up local weather by IP address.", "type" : "modules", "engines" : [ { "type" : "railo", "version" : ">3.1" }, { "type" : "adobe", "version" : ">9.0" }, { "type" : "coldbox", "version" : ">4.0" } ], "dependencies" : { "geolocation-lookup-by-ip" : "2.0.0" } }
  • 23. What is ModuleConfig.cfc? ● Tells the ColdBox app how to load the module ● Settings ● auto-map CFCs with WireBox ● Auto-create app-specific mappings ● Add SES routes ● Add menu contributions (ContentBox)
  • 24. What is ModuleConfig.cfc? component { this.title = "Weather By IP"; this.author = "Brad Wood"; this.description = "Look up local weather by IP address."; this.version = "1.0.0"; this.autoMapModels = true; this.modelNamespace = "Weather"; this.cfmapping = "/weather"; function configure(){ settings = { }; } function onLoad(){} function onUnLoad(){} }
  • 25. ForgeBox ● Web GUI ● Online code repo for ANY package ● Searchable ● User-maintained ● ForgeBox commands ● Install packages ● Save dependencies to box.json ● Uninstall packages
  • 26. Artifacts Cache ● Local storage for packages ● Download only necessary if not in cache ● Cache location ● “artifacts” commands to manage
  • 27. Generators ● Ability scaffold out entire apps ● Quickly create app bits and pieces ● Interactive commands collect info ● Completely scriptable ● Generators built for ColdBox and TestBox ● More to come (contributions welcome!)
  • 28. Let's Build An App! ● init ● coldbox create app ● coldbox create handler ● coldbox create module ● install testbox ● package show/set ● testbox run
  • 29. Recipes – Yummy! ● Like a “batch” file ● Runs multiple commands at once ● Can accept parameters ● Great for automation ● myRecipe.boxr
  • 30. Packaging with box.json ● Dependencies are stored in box.json when installed ● You can distribute your app without its dependencies ● Dependencies can have dependencies (inception) ● Use “install” to install them
  • 31. Packaging with box.json ● Weather sample app depends on ColdBox ● Also depends on weather lookup ● Weather lookup depends on GeoLocation ● Developing on the app depeds on TestBox ● https://github.com/bdw429s/ColdBox-Dependency-Sample-App
  • 33. Coming Soon! ● Task Runners/build tools (Ant, Grunt, Gulp) ● Install repo adapters (Git, RIAForge, Corporate, etc) ● ForgeBox 2.0 ● More generators and integrations (fw/1 CFWheels) ● ContentBox integrations ● More embedded servers supported ● Multi-version dependencies
  • 35. Developing Commands ● CommandBox commands are just CFCs ● Extend BaseCommand ● Implement “run()” method ● Print object for output ● Managed by WireBox for DI
  • 36. Snake throwdown ● Nothing like old school ASCII games ● Stress reliever ● Don't let your boss see ● Can you beat my high score? (141)
  • 37. Preso Links Download CommandBox – http://www.ortussolutions.com/products/commandbox Source Code – https://github.com/Ortus-Solutions/commandbox Forgebox – http://www.coldbox.org/forgeBox Sample App w/Dependencies – https://github.com/bdw429s/ColdBox-Dependency-Sample-App
  • 38. CommandBox Resources Official Site http://www.ortussolutions.com/products/commandbox Documentation http://apidocs.ortussolutions.com/commandbox/1.0.0/index.html https://www.ortussolutions.com/products/commandbox/docs/current Google Group https://groups.google.com/a/ortussolutions.com/forum/#!forum/commandbox Training http://www.ortussolutions.com/services/Training Professional Support http://www.ortussolutions.com/services/support Brad Wood & Ortus Solutions, Corp brad@ortussolutions.com
  • 39. Q & A