What if you were to find out that there were things out there that could make your CF coding life easier? There’s no need to create CFML projects without the use of some pretty useful tools by your side. One of the leading companies developing these tools is Ortus Solutions. Brad Wood of Ortus will be speaking on this topic at the 2018 CF Summit in Las Vegas. Brad and Ortus have dedicated their time to constructing programs designed to help your CFML projects be the best they can be. Let’s take a look at some of these tools that can help you at a business and local development level.
“The expectations of life depend upon diligence; the mechanic that would perfect his work must first sharpen his tools.”– Confucius
What You Need to Know as CIO
Every CIO should know the benefits of using open source and other associated tools to help manage their technological needs. These tools can help improve your IT department’s quality of life and in turn, your business. Let’s take a look at 5 reasons why you should consider third party CFML tools.
Quality Code Production
- Your developers will be drawn to the benefits provided by third party tools. These can be flexibility, the capability to customize the underlying code, their high quality, and the willingness of the open-source community. They all help with implementation and development problems. On top of this, many third party tool providers give their services at a fraction of the cost of some commercial tools. You will be able to save money while increasing your code quality. Win-Win.
Smorgasbord of Helpful Tools
- Third party tools can offer a wide range of available options to help when developing new code and CFML applications. This will definitely increase the quality of life for your developers. Automated tools not only provide a QOL boost, but also save you precious time and resources.
- Using third party tools can help you to establish standards when it comes to your code and application quality. For instance, running your program or code through security software prior to deployment can help make sure your code is up to snuff. Many third party tools are now supported via commercial applications –such as Adobe ColdFusion and Lucee. This creates a supported quality standard through which you can develop quality code.
Try Before You Buy
- Many third party companies offer free period trials for their tools. Some are completely free. Take advantage of these. Find out whether these tools are right for you and your company’s needs.
- Most importantly, third party tools are sure to increase your IT and development teams’ productivity. By having access to tools, developers can more easily create quality code much faster.
Adobe ColdFusion and CFML is no stranger to its very own external tools. Ortus Solutions is a company that is dedicated to QOL improvements for CFML developers. Two of their products are particularly helpful throughout the entire development process– CommandBox and CFConfig.
- CommandBox is a standalone tool that boasts a Command Line Interface (CLI) for developer productivity, tool interaction, package management, embedded CFML server, application scaffolding, and much more. CommandBox also acts as a basis for many other Ortus Solutions tools.
- CFConfig is a CommandBox module that can be easily installed via a single command line in CommandBox. It has the power to set, show, import, export, and diff configuration on Adobe ColdFusion and Lucee servers.
Another great option for CIOs to streamline their IT operations is the idea of containerization. The leading company and program in this field is Docker. Companies that manage their digital economies properly outperform their competition through innovation and controlling their applications as business critical assets. Containerization can play a huge role in that process. Docker can offer businesses planning to optimize their applications a containerization strategy with their Enterprise package.
Getting down to brass tacks, open source tools will lead to a better, more streamlined business operation. Consider your options and give them a try.
CFer Tech Talk
The three aforementioned tools can greatly improve your CFML lifestyle. Let’s take a closer look at what these tools can actually do.
According to the 2018 State of the CF Union, a whopping 80% percent of CF developers polled use CommandBox. So, what’s the fuss all about? Let’s take a look.
What the heck is a package? And why should you care about managing them? Packages are step away from the old legacy way of keeping up with versions, plugins, etc. They create a more modern and modular approach to keep up with current transitions. CommandBox helps you to manage these. Use CommandBox to perform package management functions such as:
Installing New Packages
Determine Outdated Packages
Create New Packages
Determine Package Dependencies
Local Artifact Tracking
And Much More!
The Package Management system offers by CommandBox integrates seamlessly with ForgeBox. ForgeBox is another of Ortus Solutions products. It also happens to be one of the greatest tools developed for those in the ColdFusion community. It is a software repository and directory that you can either use manually or with CommandBox. On ForgeBox, you can find user created software packages. These packages include:
From CF Alive episode, “023 Modules Make Your Projects Have Superpowers, with Eric Peterson“
According to Brad Wood (lead developer of the CommandBox CLI), CommandBox’s server management is better than any other platform out there bar none. CommandBox allows you to directly manage many parts of your ColdFusion servers. Perhaps, the strongest point for CommandBox’s server management system is the ability to startup a new ad-hoc server quickly and easily. It allows any folder on your hard drive to become the web root of a server. To start up the server, cd into a directory containing some CFML code, and run the start command. Ortus gives a great example on its website.
CommandBox> cd C:\sites\test
Stopping the server is just as easy as well.
This particular feature can be extremely useful in teaching new developers or in streamlining existing server creation.
“…the honest easiest way I can introduce a new developer, is I say, ‘Okay, bring me your computer, let's look for content on CommandBox.’ They download it, and I just show them how to get a site set up with CommandBox. It is the drop dead simplest way to get a developer started. I think we need to introduce more people to CommandBox. I think we need to get more ColdFusion developers aware of it. When they look at it, and they spin up a server that fast and that easy.” – John Farrar, CEO, SOSensible Group
From CF Alive episode, “018 VUE More With Less, with John Farrar“
Native Scripting for CFML
One of the most interesting things about CommandBox is that it is written and coded entirely in CFML itself! It is running on CFML powered by WireBox. You can actually extend CommandBox to do all of your tasks all va CFML.
These are just a few features and functions of CommandBox. It is the most commonly used tool amongst CF’ers and for good reason.
This next Ortus program is perfect for developers who prefer a more hands on approach when it comes to server management. CFConfig is a command line tool that allows you to manage any CF server’s configuration in simple automated fashion. With CFConfig you have the ability to control almost every setting that shows up in web administrator, but do so on a line by line basis. CFConfig manages the following attributes and more:
Request, Session, or Application Timeouts
Licensing Information (for Adobe)
Template Caching Settings
One of the best things about CFConfig is the restrictions it places on managing CF servers. There are none! CFConfig will work on any CF server regardless of where it was installed. In fact, the server does not even need to be running or installed. It can be used to write config files before a CommandBox server is even created. Although CFConfig is part of the Box series, CFConfig does not require a CommandBox server. All that is needed is the folder path to the CF home in your server installation. This means CFConfig can be used for syncing config across existing servers, standing up docker containers, or provisioning Vagrant VMs.
So, how does CFConfig actually manage your server’s configuration. It interacts directly with the XML and property files used by your CF to store its configuration. CFConfig also creates a standard when it comes to server configuration. You can use the same commands regardless of what engine you’re managing the config for. CFConfig also detects what CFML platform you are using whether it is Adobe ColdFusion or Lucee. Along with your platform, CFConfig automatically detects changes you have made to the server and implements them without having to reboot the server.
CFConfig works in two layers.
- A service layer which reads, writes, and stores configurations for all CF engines.
- A set of scriptable commands built on top of the CommandBox CLI.
CFConfig Service Layer
This is a standalone module that provides a set of models and services for interacting with config files for CF engines. The CFConfig service layer provides many features, all of which do not require CommandBox. The services just need permission to access the installation folder to the designated server. These features are as follows:
- Generic JSON storage of any CF engine's settings
- Engine-specific mappings for all major engines to convert their config to and from the generic JSON format
- Export config from a server as a backup
- Import config to a server to speed/automate setup
- Copy config from one server to another. Servers could be different engines– i.e. copy config from Adobe CF11 to Lucee 5.
- Merge config from multiple servers together. Ex: combine several Lucee web contexts into a single config (mappings, data sources, etc)
The Command Line Interface transforms the service layer into a usable CommandBox module that provides access to the Server Layer’s features. This is all accomplished through your native OS, bash scripts, automations, or containerization/VM provisioners. These are the features unique to the CFConfig CLI:
- Provide a Native CLI Tool for managing Server Config
- Scriptable for Automated Server Setup
- Provides Complete Command Built-in Help
- Tight Integration with CommandBox Servers
Containerization is one of several new exciting features in the world of tech. Containerization makes apps much more portable by allowing these apps to run on any machine without requiring their own VM. Along with portability, containerization is much less resource intensive. Think of the resource comparison between an entire VM and smaller kernels. By sharing kernels, you can easily place more applications on a single server. Containerized apps also launch much faster than VM-based apps. Containerized apps may launch in less than one second compared to the several minutes required to start of VMs.
At the head of the containerization charge is Docker. As of now, it is the only program able to manage every app across the hybrid cloud. Docker relies on modernized apps. So, in order to use it, you must first modernize your apps. Fortunately, Docker’s kit automatically converts your legacy code and apps into a more modern solution. Docker then packages your apps into isolated containers portable to any infrastructure. This eliminates the “won’t work on my machine” problem.
Some CF developers use Vagrant for VM use. But, there are several advantages of using Docker over Vagrant.
|Low Overhead–Fast Boot Up||High Overhead–Slow Boot-Up|
|Relies on Security of Container- easier to secure||Relies on Security of VM- more difficult to secure|
|Containers are launched directly from kernel space.||VM’s must be launched on the existing host’s OS|
Getting started with Docker is extremely simple especially if going through CommandBox. CommandBox has an official Docker image to help you get up and running quick.
All in all, open source tools such as CommandBox, CFConfig, and Docker can help you tremendously. They can expedite your development process and help you produce better quality CFML applications. Your productivity is sure to increase through the proper use of these tools. Don’t make your ColdFusion programming life harder. Check out these tools today!
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
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.