BlueDragon Blog
Here you'll find tips and information about making the most of BlueDragon, which offers several compelling implementation alternatives for your CFML applications. This blog was created originally by Charlie Arehart, who was New Atlanta CTO from 2003-2006.,He has since moved on to become an independent consultant but continues to answer comments raised in existing blog entries. BlueDragon continues, and you should look to the newer BlueDragon blog, from New Atlanta president, Vince Bonfanti, for more updated information.

What are some BlueDragon advantages? Here are 40+ of them...

posted Friday, 17 March 2006

When we get the chance to talk with folks about BlueDragon, after laying out why it exists, he problems it solves, etc, one of the questions they want to ask is, "What are some BlueDragon advantages?"  While these are all listed and discussed in greater depth in our BlueDragon CFML Enhancements Guide, available free on our web site, I thought I'd list them here to help more people learn about them. Again, see the manual for more. It's available online at http://www.newatlanta.com/products/bluedragon/self_help/docs/index.cfm

There are at least 4 categories of enhancements we could describe. This isn't an all-inclusive list, but with more then 40 of them it should be enough to help most get a sense for the many ways that BlueDragon can help solve problems that CF does not.

Some of the compelling enhancements that should appeal to all CFML developers are:

  • CFCs enhancements (they can be serialized, duplicated, and more)
  • Application-level path mapping with CFMAPPING
  • Site spidering via CFINDEX or admin console
  • Support for CFQUERYPARAM within a Cached Query
  • Enhanced query caching and cache management (see CFQUERY)
  • Enhanced page content caching (including caching to disk, see CFCACHECONTENT)
  • Ability to render CFML dynamically from a variable or query (see Render())
  • Ability to send CFCONTENT data from a variable (like a database image column)
  • Easy include of JSP or ASP.NET page output with CFINCLUDE PAGE
  • Easy transfer of control to another CFML, JSP, or ASP.NET page via CFFORWARD
  • Error logging and processing (see CFERROR)
  • Available CFML execution tracing with CFDEBUGGER
  • Various CFDUMP enhancements
  • Support for assertions (see CFASSERT and Assert())

Still other enhancements might appeal to other developers include:

  • Support for request throttling (see CFTHROTTLE)
  • Image processing via CFIMAGE
  • Zip file creation and extraction using CFZIP
  • IMAP mail processing with CFIMAP
  • XMLRPC request processing using CFXMLRPC
  • Enhanced page buffering via CFFLUSH
  • Enhanced mail file attachments via CFMAILPARAM
  • Enhanced control over CFSEARCH, enhanced metadata in returned results
  • Freedom to use relative paths in many tags, URIDIRECTORY attribute
  • Ability to continue a CFLOOP with CFCONTINUE
  • Ability to temporarily halt page execution with CFPAUSE
  • Ability to sort query results with QuerySort()
  • Ability to delete rows from a query resultset using QueryDeleteRow()
  • Ability to remove duplicate list entries with ListRemoveDuplicates()
  • Ability to pass in XSTL arguments on XMLTransform()
  • Ability to process Application.cfm even when a requested file is not present

 And while the most significant advantages of BlueDragon.NET are about those enabled by .NET and through .NET integration (see my other blog entries this week on the MS Webcasts that cover that in more depth), there are also a handful of advantages that are CFML specific and enabled only on BD.NET, not our Java versions of BlueDragon:

  • Support for DSN-less connections in database tags like CFQUERY, CFSTOREDPROC
  • Extension of CFOBJECT, createObject() to call .NET objects
  • Support of TIMEOUT on CFINVOKE of Web Services
  • Support of DBVARNAME on CFSTOREDPROC to support/validate named arguments
  • Available GetHttpContext function to provide additional request metadata

Finally, there are some advantages we have long have that we technically can't call advantages any more, since CFMX 7 or 7.01 now includes them. Nice to see them catch up. :-)

  • Sourceless deployment
  • Standard WAR file deployment (in J2EE edition)
  • Multiple instances (available in BD.NET)
  • Option to pass XSLT arguments into XMLTransform()
  • Corrected meaning of cgi.path_info to match http spec
  • Specifying variable on CFCONTENT

Yes, yes. I realize that there are features in CFMX 7 that BD still doesn't have. We've discussed those and our plans for them both here and in our FAQs. But for many people those advantages aren't as important as some of the other things we bring to them in BlueDragon.




1. Jeff Houser left...
Tuesday, 21 March 2006 6:23 pm :: http://www.jeffryhouser.com

I thought that multiple instances were also available in the "BlueDragon for J2EE Application server"? ( You had only specified them being availble in BD.NET ).

  • Am I wrong?


2. Charlie Arehart left...
Wednesday, 22 March 2006 6:53 am

Hi Jeffry, no, you're not wrong. It's just that we have some more specific support for them in .NET that we don't in the J2EE edition. (We have a central BlueDragon.xml file from which all instances inherit in the .NET edition. It may be that this implementing this in the J2EE edition is challenging because of the differences in implementation that the J2EE spec leaves open to J2EE server vendors.) But, technically, yes you're right that one can certainly do multiple instances in J2EE. Thanks.


3. Chad left...
Thursday, 18 May 2006 1:08 pm :: http://www.overit.com

How about the syntax that BlueDragon uses? CFMX 6.1 spit out invalid code according to w3c's XHTML 1.0 transitional standards. Is BlueDragon's better?