Brad Wood talks about “CommandBox 4 Deep Dive (new version revealed)” in this episode of ColdFusion Alive podcast with host Michaela Light.
He is one of the speakers at Into The Box 2018 conference, a system architect for Ortus Solution and lead developer of the CommandBox CLI.
Contents
- Show notes
- What is CommandBox
- Why all CFers should be using it
- What is new in version 4
- Usage Overview
- Native scripting with CFML
- Server Management
- Package Management and Authoring
- Extending CommandBox
- Exercise Time
- Why are you proud to use CF?
- WWIT for you to make CF more alive this year?
- What are you looking forward to at ITB?
- Workshop Description
- Prerequisites
- Agenda
- Listen to the Audio
- Mentioned in this episode
- Bio
- Links
- Interview transcript
Show notes
What is CommandBox
- Command line utility (CLI)
- Windows, Mac, Linux
- Manage CF apps and servers from command line
- Run CF code from command line
- Written in CFML – open source
- What if CFML compiler was
Why all CFers should be using it
- State of the CF Union survey 70-80% of CFers use
- Productivity especially around managing multiple server versions
- Very fast spin up a new server for testing (< 30 seconds)
- Auto download the install WAR file
- Any dot version
- Free (open source)
What is new in version 4
- In snapshot since Dec 2017 (beta test)
- New underpinnings
- Lucee CFML 5
- Faster Lucee start up times
- Lots of new features from Lucee 5 that you can use in CommandBox now
- Follows JSR 223 standard
- 256 color support (vs 8)
- Bullet Train is now built in (vs module)
- Tab completion – updated JLine – highlight of commands as you type
- REPL syntax highlighting
- Better ^C support – commands are interruptible
- ^D total shell exit
- Better class loading
- Better terminal support – conemu
- Still free
- Paid support
- Private packages via ForgeBox
- Private S3 repository
Usage Overview
- Review help system
- Add Help at end of command to get specific help
- Git book tutorial
- Samples for each command
- Demo REPL and uses
- Learn about scaffolding commands
- Auto generate framework and test code
- Using shell history, tab completion, and config settings
Native scripting with CFML
- Running .cfm files from your CLI as Task Runners
- A CFC with function Run()
- Run from command line or cron job
- Send emails, access files, process data
- Automate Git, Maven etc
- Extend Jenkins continuous integration
- Using a database in a stand-alone cfm script
Server Management
- Start/stop servers
- Multi-engine support (Adobe, Lucee, etc)
- Manage servers
- Handling CF configuration with CFConfig
- Script it
- Version control of server config
- Externalize passwords for datasources and S3 etc
- Server.json between ACF and Lucee and version
- Using CommandBox for cloud deployments (Heroku, Docker)
- What is ForgeBox.io
- Find and install packages
- ColdBox, F/W 1, Mura etc
- Update packages
- Creating a package
- Travis automated testing of packages in multiple CF versions
- Package scripts
- Creating a ForgeBox account
- Publish a package to ForgeBox
- List libraries that I am using
- Outdated command – are any new libraries available
Extending CommandBox
- Creating a Module
- What are modules
- How to use Interceptors
- Hook into key events in CommandBox as they start or end
- Packing a model inside a module
- Distributing your work for the world to see on ForgeBox
Exercise Time
- Let’s build something!
- Work in teams or alone to create a module that does something cool and publish it to ForgeBox and Github.
Why are you proud to use CF?
WWIT for you to make CF more alive this year?
What are you looking forward to at ITB?
- Brad’s sessions
- Integrating MVC into legacy
- Ortus Keynote
- Thinking Modularly
- WireBox Basics (Dependency Injection)
- Take your CF apps from local dev to production with CommandBox and CFConfig and Docker
- CommandBox Deep Dive
- ColdBox Zero to Hero workshop sold out
- More of the basics as well as advanced stuff
Workshop Description
This workshop will start with the basics of using CommandBox CLI in your everyday workflow. We’ll focus on topics like managing servers, package management, and scripting command line tasks using CFML and Task Runners. We’ll also cover extending the CommandBox core with modules to add your own behaviours. We will focus on hands-on exercises and will end the day with each student building their own module and publishing it to ForgeBox.
Prerequisites
- A working knowledge of CommandBox’s shell and basic commands is desirable but not required
- Have the latest stable version of CommandBox installed already
- A GitHub account and Git CLI installed (if you want to follow along with publishing packages)
Agenda
- Introductions/checking prerequisites – 15 mins
- Usage Overview – 45 mins
- Native scripting with CFML – 1 hr
- Server Management – 1 hr
- Lunch – 1 hr
- Package Management and Authoring – 1 hr
- Extending CommandBox – 1 hr
- Break – 30 mins
- Exercise Time – 1.5 hr
Listen to the Audio
Podcast: Play in new window | Download | Embed
Subscribe: RSS
Mentioned in this episode
- CommandBox download
- Into The Box 2018 Conference
- Wirebox
- REPL = Read Eval Print Loop
- Conemu – better Windows terminal
- Other windows terminals
- Jenkins continuous integration
- RaspberryPi
- Travis
- F/W 1
- CFWheels
- Preside CMS
Bio
Brad Wood
Brad grew up in southern Missouri and after high school majored in Computer Science with a music minor at MidAmerica Nazarene University (Olathe, KS). Today he lives in Kansas City with his wife and three girls. Brad enjoys all sorts of international food and the great outdoors.
Brad has been programming ColdFusion since 2001 and has used every version of CF since 4.5. He first fell in love with ColdFusion as a way to easily connect a database to his website for dynamic pages. He enjoys configuring and performance tuning high-availability Windows and Linux ColdFusion environments as well as SQL Server. Brad is the ColdBox Platform developer advocate at Ortus Solutions and lead developer of the CommandBox CLI.
Links
Interview transcript
Michaela 0:01
Welcome back to the show. I'm here with Brad wood. And we're going to talk about the new release of command box for cold fusion. And he's giving a deep dive on that are into the box and all day workshop all about it. And today we'll have a look at what Come on box is and how you use it. And why you use it while cold fusion users using it, how you can write scripts using command box to like create batch files, I guess in effect
will look how you can use it for server management. some really cool things it does. They're automatically downloading different versions of Adobe or Lucy cold fusion.
Also, we'll look at package management and how you can use it for creating things there, and how you can extend command box with your own commands. So welcome, Brad.
Unknown 0:53
Thank you.
Brad Wood 0:54
Glad to be here. And yeah, I haven't seen you for at least a few months.
Read more
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
ColdFusion Alive Best Practices Checklist
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.