Am I the only one who gets excited when sitting down to hash out some new CFML code?
You know. one of the best parts about using ColdFusion (or Lucee for that matter) is the ease of use. CFML is a language that is capable of many things, but it’s simple to use. Ever stop and wonder why?
It’s because of a state-of-the-art tool and third-party support integration.
Whether it’s containerization, source control, IDEs, or monitoring solutions, there are many great tools that fill those positions. These are pivotal to making ColdFusion modern and alive. By further integration of third-party tools, we are witnessing ColdFusion develop into a rising star in the world of web development.
Let’s take a look at a handful of these awesome tools now.
Containerization is one of several key new state-of-the-art development techniques. Jumping on board now would help keep CF alive and become more modern. By opting for conterization, you will achieve maximum reliability, scalability and portability for your applications. This process also saves you a considerable amount of resources.
All of this is accomplished by allowing containerized apps to run on any machine without requiring their own VM.
- Docker is driving the modern container movement. It is the only program (as of now) to be able to manage every app across the hybrid cloud. The first step to using Docker is to modernize your legacy apps.
- Portainer is an open source Docker management UI. It is specifically designed for use with Docker.
- CommandBox Images and Containers
- CommandBox has developed Docker container images for Adobe ColdFusion or Lucee CFML from ACF 9 and up and Lucee 4 and up. According to Ortus CEO Luis Majano, there’s no excuse for people not to be leveraging containers with ColdFusion these days.
Source Control Tools
A Source control tool lets you create and maintain an archive of what source code has been created, changed or edited and by who and when. In the event of your laptop or server crashing, it allows you to retrieve your original source code that existed before the crash. It also lets you get your code back if you edit it by mistake – or if a teammate does.
You can use source code control on any files in your CF project, such as:
- ColdFusion Source Code
- Docker Containers Config
- Plain Text Documentation
The best source control tool is the open source Git. Git is a distributed version control system that handles everything for all size projects with maximum speed and efficiency.
Benefits of Using Git
- Allows branches to be created to test code with. Once the branch has been properly tested it may be moved into the main code.
- Allows all changes to be saved. Reverting back to a previous version has never been easier.
- Allows you to compare changed files among versions.
There are other Git tools that can be used with ColdFusion as well.
- GitHub offers all the source control and version control features of Git. It even has its own added features such as social networking functions.
- A Git client designed to help you master the source control of Git. With Tower, you are able to access all of the functions of Git easily with its own array of performance boosting processes.
- BitBucket offers support for distributed version control to allow easy collaboration of code for your team. It gives teams a one stop shop to plan projects, code, test and deploy. A key benefit to using BitBucket over Git is the privacy that you will receive.
- It is a Windows shell interface to Git. It is fully open-sourced and can be rebuilt with free software if you want to customize it.
- SourceTree is a free Git client for Windows and Mac that simplifies how you interact with your Git repositories. It’s very simple for beginners to use it.
Code Tools and IDEs
Using IDEs helps keep CF alive by maintaining a friendly work environment. This can encourage new developers to work with CF. They also save time when coding.
IDEs (Integrated Development Environments) are software applications that provide developers with the ability for comprehensive software development in one program. They normally have a source code editor, automation tools, and a debugger. Modern IDEs have intelligent code completion that save you many keystrokes when typing code. Some even have compilers, interpreters, or both. Version control systems are often integrated. Many ColdFusion developers take advantage of IDEs.
Here are some of the most popular IDEs used by CFers:
- It is a cross-platform source code editor and IDE with a Python API. It natively supports many programming and markup languages including CFML.
- CF Builder
- CF Builder is Adobe’s flagship IDE for ColdFusion. Released for CF 2016, it was designed to help you develop, debug, test, and deploy applications faster.
In the new CF 2018 version, many new features have been implemented such as:
- Intelligent Code Assist
- Professional Coding Support
- Security Code Analyzer
- Improved Integrated Debugger
- Another IDE by Adobe geared to graphic designers and HTML site developers. It was created in 1997. It’s almost as old as ColdFusion, and many CFers started out with it.
- Syntax Highlighting
- Code Completion
- Code Collapsing
- Real-Time Syntax Checking
- Code Introspection
- Visual Studio Code
Some developers minimize their use of newly created code. Instead, they simply change parameters and call it from other parts of the app. This allows for tried and true code to be used to save time.
This is not a direct copy/paste method though. That would duplicate code and make for maintenance headaches.
Code is reused using CFC functions or even the old fashioned CFINCLUDE. Any of the MVC frameworks such as FW/1, ColdBox or FuseBox make code reuse and code organization easy. This increases your productivity and saves on maintenance time.
CF Server Monitoring tools can help maintain CF alive by giving you the best chance of early detection of performance issues, failures, and security issues. The number one monitoring tool to use for CF is FusionReactor.
CF 2018 comes with a built in server monitoring tool, but it doesn’t have all the features of FusionReactor.
A major measure of performance for the Web is how fast content is delivered to users. As web traffic increases, data delivery times usually increase too. Caching is a strategy used to minimize slow pages.
The number one solution for ColdFusion users is EHCache.
EHCache is actually built into ColdFusion. It is used primarily for
- CFCache Tags
- Cache Get
- Cache Put
It is notable to mention that Lucee has a bit more than that. They have a caching mechanism that creates multiple named caches that point to an internal or external data storage.
Build REST APIs and Microservices
Many developers are now building REST APIs. There should be no reason CF devs cannot do the same.
A REST (Representational State Transfer) API defines a set of functions where requests can be performed and responses received via HTTP protocol. They are compatible with CFML and very easy to test.
Previously, the main reason ColdFusion developers used to construct REST APIs was if they wanted to integrate with a third party code.
Now, CFers can make applications that any technological platform can touch via full-bodied traditional apps. However, most CFers who develop REST APIs do it from homegrown sources and only for their own websites.
New applications such as ColdBox allow for a great leap forward when it comes to REST APIs. Pretty much all CFers are using REST APIs now with some form of application. These are normally much better than anything you can write on your own.
Related Podcast: The Best REST You’ve ever Had: ColdBox REST with Nathaniel Francis
According to the State of the CF Union 2018, CommandBox is used by 80% of CFers polled.
With all this fuss, what is CommandBox?
CommandBox is a standalone tool for the three major OS’s– Windows, Mac, and Linux, designed by Ortus Solutions. It is doing its part in keeping CF alive by providing a base that many other Box tools can operate with. It utilizes a CLI (Command Line Interface) designed for many purposes including:
- Developer Productivity
- CommandBox has a Docker image for productivity and portability. This allows you to orchestrate live servers in multi-tier deployments.
- Tool Interaction
- CommandBox has a REPL (Read-Evaluate-Print-Loop) console for immediate CFML interaction.
- Package Management
- CommandBox also functions as a Package Management tool and integrates with ForgeBox, CommandBox’s community of CF projects.
- Embedded CFML Servers
- CommandBox has the ability to construct lightweight CFML servers (Adobe ColdFusion and Lucee) in any directory from the command line.
- Application Scaffolding
- CommandBox has a huge amount of commands for quickly constructing ColdBox/CommandBox/TestBox applications
It is integrated to work with any other Box product. CommandBox is great for CFML as well. In fact, it is extensible to any ColdFusion product. CommandBox is a true ColdFusion tool. CommandBox is ever-changing and evolving. It is continuously adding more developments to its platform.
“I'm proud to develop in ColdFusion, because it has the combination. Specifically, being a part of the ColdBox and a lot of the open source community as part of ColdFusion, because we have three things.
One, we have a great tradition. We have been a part of some of the greatest highs and a few of the lows of the web development history.
Second, we've got some tenacity in there. A lot of the people who are very strong in the CFML community are people who have been doing this for a while and they've been doing it well. That's tenacity to not go from one thing, to the next thing, to the next thing, but really craft something solidly and well.
Third, we've got some of the most forward-thinking, and highly developed, and amazing tools that we could imagine. We're going to be hanging out and Into The Box with the guy that invented CommandBox, as well as the guy that invented ColdBox itself. These are some just amazing tools that the CFML community has been blessed with.
I think we have the key parts that I would want in any community, tradition. We've got time-honored tenacity and we've got some innovation, and forward thinking. That's exactly what I want to be a part of.”- Nathaniel Francis, Computer Know How
From CF Alive episode, “008 The Best REST You’ve ever Had: ColdBox REST with Nathaniel Francis“
What modern CF tools are you using in your projects? How are you keeping your ColdFusion skills modern and vibrant?
Join the discussion in the comments section below.
Join the CF Alive revolutionDiscover how we can all make CF more alive, modern and secure this year. Join other ColdFusion developers and managers in the CF Alive Inner Circle today.
- Get early access to the CF Alive book and videos
- Be part of a new movement for improving CF's perception in the world.
- Contribute to the CF Alive revolution
- Connect with other CF developers and managers
- There is no cost to membership.