CFDJ Editorial — Increase Your Productivity 100%

Usually, when something sounds too good to be true, it probably is. We've all seen the spam - "Increase your <insert body part or bank account here> 100%" e-mails that are clearly nothing more than ridiculous claims with no validity.

Why does this month's editorial title sound like another "too good to be true" gimmick? Recently, I've noticed a trend in the growing popularity of productivity-enhancing software for ColdFusion developers. This is a trend I imagine will continue not only with third-party software but with future releases of ColdFusion as well. After all, rapid development, i.e., increased productivity, is what's made CF popular since its inception.

Before I continue, I will state for the record that I just invented the "100%" number in the title (I'd hate to think I contributed to innumeracy in any way). That said, there are some tools available that can save developers a lot of time and headaches. Some of these tools are relatively new and a few have been around for a little while; those that aren't new have recently been enhanced and all of them have recently been generating quite a buzz within the community I've used all of these utilities and thought I'd give a summary of what these utilities are as well as my experiences with them and an overview of when developers should be implementing them to help with development.

The first piece of software that ColdFusion developers should be aware of is Flex Builder 2. In addition to being a terrific IDE for Flex development, Flex Builder 2 also includes several ColdFusion enhancements for your Eclipse installation. These enhancements include:

For those CF developers who work with Flex, Flex Builder 2 also adds wizards for creating CFCs from ActionScript classes and vice versa (used when passing Transfer Objects between the Flex 2 Gateway), a wizard for creating all of the code necessary for both the Flex UI and server-side logic (CFCs) for a Flex application based on identifying the database tables and data that the application will use, and a wizard for quickly creating CFCs to be used by the Data Management feature in Flex Data Services. These wizards are a big time-saver for developers building Flex applications that talk to ColdFusion, and having the ability to access RDS services from Eclipse is terrific for developers who want to see what resources are available on a remote server. You can find out more about the CF Extensions in Flex Builder 2 at www.adobe.com/products/coldfusion/flex2/.

Another useful piece of software that's getting a lot of attention is FusionDebug, an Eclipse plug-in (it will work with CFEclipse and/or Flex Builder 2) that allows you to:

Other than installing the plug-in to Eclipse, you only need to turn on JVM debugging on the CF Server(s) that you want to debug - these can be local or remote servers. FusionDebug is an excellent tool for developers who are looking to review, optimize, and/or troubleshoot ColdFusion code, and is a very useful testing tool as well. You can find more information about FusionDebug at www.fusion-reactor.com/fusiondebug/.

If FusionDebug is the be-all and end-all for troubleshooting and debugging ColdFusion code, SeeFusion would have to be its counterpart for debugging and troubleshooting your server. SeeFusion is a Java application that "hooks-in" to your ColdFusion server and allows developers and server administrators to view crucial information about server activity (via a Web interface), in real time.

You can "kill" specific requests (threads), force garbage collection, and do a lot more. In a nutshell, SeeFusion shows you pretty much everything you'd want to see about what's happening on your server. It's useful for testing code in a development environment prior to launching (use a stress tool like OpenSTA to generate the load) and for troubleshooting a "live" production server that's experiencing problems. There are both a standard and enterprise version; among other things the enterprise version has a Flex 2 dashboard interface (with nice status bars for resource usage and datagrids for viewing request information) and comes with all of the JDBC driver wrappers for monitoring queries. Like FusionDebug, SeeFusion is easy to install - just tweak a few configuration files on your CF server in order to make SeeFusion work, namely in to "wrap" it around the CF servlet engine and JDBC drivers. Find out more about SeeFusion at www.seefusion.com/.

The bottom line in determining whether you need these products is this: if you're never going to do any Flex 2 development and you don't need or use RDS for browsing CFCs, Web services, the server file system, and the registered data sources on a server, then you don't need Flex Builder 2. If you never troubleshoot or fix ColdFusion server configurations and/or CF server performance/health, you don't need SeeFusion. If you never have performance problems with your code, never review other people's code, and never get any errors in your code (yeah, right), then you don't need FusionDebug. Even if any of that last set of criteria does apply to you, if you feel comfortable debugging CF code or you prefer not to use the typical interactive debugging features that FusionDebug offers, you don't need to use it. If, on the other hand, any of the scenarios I mentioned here do apply to you, then by all means I strongly recommend these tools. If you already have a preferred CF IDE (Dreamweaver, Homesite+, etc.) there's no critical need to make the switch to CFEclipse. That said, if you're comfortable with CFEclipse, using other Eclipse plug-ins will be a walk in the park. Flex Builder 2 and FusionDebug are only two plug-ins - there are literally hundreds of Eclipse plug-ins (many are free) for everything from working with databases to diagramming with UML to integrating with source control systems. Also, CFEclipse is free, so there's no cost involved in giving it a try, other than investing a little of your time to playing with it.

While I have always maintained that better tools will never replace better developers, there's no denying that better tools do help…especially in the hands of better developers. For the first time in a long time, ColdFusion developers can get excited about something other than the cool new features in the latest release of CF. I recommend taking a look at one or more of these software utilities and making them part of your "ColdFusion Developer Arsenal." If nothing else, they will offer a welcome distraction until the anticipated release of ColdFusion 8..

© 2008 SYS-CON Media