Migration Solutions for ColdFusion Applications to ASP.NET
      
Vince Bonfanti's Weblog

ColdFusion Markup Language (CFML) on Windows Azure!

We've just achieved the first "Hello World" CFML page running on Windows Azure via BlueDragon.NET, New Atlanta's ColdFusion-compatible CFML server. Click the link below to see it yourself:

Hello from BlueDragon on Windows Azure!
There's still a bit of work to do before we can officially release BlueDragon.NET for Windows Azure, but we're very excited to have achieved this milestone so quickly after completing the port from Visual J# to C#.

Let me know if you're interested in getting early access to a technology preview release of BlueDragon.NET for Windows Azure, which we plan to make available to selected customers within the next few months.

BlueDragon.NET port to C# complete -- new opportunites for ColdFusion Markup Language (CFML)

BlueDragon, New Atlanta's ColdFusion-compatible CFML server, was originally written in the Java programming language. The BlueDragon.NET edition--which was released almost five years ago and powers MySpace.com, the world's largest CFML web site--was originally created using Microsoft's Visual J#. Using Visual J#, which compiles Java-language source code directly to .NET Common Language Runtime (CLR) byte code, allowed us to rapidly port the very large BlueDragon code base from Java to .NET; and, it allowed us to share a significant percentage of code between the Java and .NET editions of BlueDragon (about 80% of the code in BlueDragon.NET 7.1 is shared Java-language source code--the rest is written in C#).

However, in January 2007 Microsoft announced plans to retire the Visual J# product, which meant that we needed a new strategy for BlueDragon.NET. There wasn't an immediate urgency to address this issue because Microsoft will continue supporting Visual J# through 2017; and, both Visual J# and BlueDragon.NET 7.1 are fully supported on the recently released Windows 7 and Windows Server 2008 R2 operating systems. But, the fact that Visual J# will not be supported by Visual Studio 2010 or .NET Framework 4.0 meant that it had become obstacle to future development of BlueDragon.NET.

Earlier this year New Atlanta engineers began the effort to port BlueDragon.NET to a pure C# code base and I'm happy to announce that this effort has been completed. We now have a version of BlueDragon.NET in-house that's written completely in C# and passes all of our regression testcases. Having achieved this major milestone, we can now move forward with several projects that we had either started or planned, but were blocked due to the dependency on Visual J#.

While I can't yet forecast when these will be delivered in commercial product releases, here are some of the BlueDragon.NET projects we're working on or have planned related to various Microsoft products and technologies:

  • Windows Azure. Cloud computing is one of the most exciting and important technology trends to emerge in recent years. Our goal is to provide complete support for developing and deploying ColdFusion Markup Language (CFML) applications on Microsoft's cloud computing platform via BlueDragon.NET.
  • SharePoint. Microsoft's business collaboration platform has become one of its most successful and popular server-based products. Our goal is to allow developers--via BlueDragon.NET--to create fully-integrated SharePoint content written in ColdFusion Markup Language (CFML).
  • ASP.NET MVC. Microsoft's new web application model-view-controller (MVC) framework supports content (views) that are created using technologies other than ASP.NET WebForms. We currently have a working prototype of a custom view engine based on BlueDragon.NET that allows fully-integrated ASP.NET MVC content to be developed using ColdFusion Markup Language (CFML).
  • Visual Studio. Key to integrating ColdFusion Markup Language (CFML) with other Microsoft products and technologies--such as Azure, SharePoint, and ASP.NET MVC--is the ability to develop and debug CFML within Visual Studio.
  • Dynamic Language Runtime (DLR). Visual Studio 2010 and .NET Framework 4.0 implement significant enhancements for integrating dynamic scripting languages with the .NET Common Language Runtime (CLR). We are already exploring ways to take advantage of these enhancements in the BlueDragon.NET implementation of ColdFusion Markup Language (CFML).
  • Linux/Mono. An "open source, cross-platform implementation of C# and the .NET Common Language Runtime (CLR) that is binary compatible with Microsoft.NET," the Mono project allows C# applications to be deployed on Linux operating systems. Now that Visual J#--which isn't supported on Mono--is no longer required, it should be possible to deploy BlueDragon.NET (and CFML applications) with little or no changes on Linux via Mono.

We're very excited by all of these new opportunities, and I look forward to providing more details about each of these new projects, and to technology preview releases that we plan to make available starting in 2010.

As it has been since we first announced BlueDragon.NET almost seven years ago, it remains our goal to provide BlueDragon.NET customers with the best possible solutions for integrating ColdFusion Markup Language (CFML) with Microsoft products and technologies.

New Atlanta and BlueDragon continue strong sales growth in Q2'09

Following up on strong sales in Q1'09, New Atlanta had a very good second quarter, April through June 2009 (Q2'09). While we weren't quite able to match the first quarter results, highlights of Q2'09 are:

  • New Atlanta total sales for Q2'09 were 25% higher than the same quarter last year (Q2'08)
  • BlueDragon sales for Q1'09 were more than 65% higher than the same quarter last year (Q2'08)
  • sales growth was once again primarily driven by the BlueDragon product line, both Java and .NET editions
These two quarters combined resulted in an unexpectedly strong first half of 2009, considering the overall economic environment. Some highlights:
  • Total sales for New Atlanta for the first half of 2009 were 45% higher than our original budget forecast at the beginning of the year; put another way, we achieved 145% of our sales forecast
  • In just the first half of 2009, New Atlanta has already achieved 75% of our total sales forecast for the entire year
  • Four of the all-time top ten BlueDragon customers--as measured in total sales--made their first BlueDragon purchases during the first half of 2009; two of these are BlueDragon.NET customers and two are running BlueDragon for Java EE
These results put us in a very strong financial position as we enter the second half of 2009. We're currently working with several major prospects and are hopeful that the first half results represent the beginning of a trend that will continue for the rest of this year and beyond.

Once again, I'd like to thank our customers who continue to demonstrate their confidence in our company and products in the most tangible way possible. We look forward to continuing to serve you with innovative, high-quality products and responsive, expert technical support for many years into the future.

Thoughts on CFML tags, CFSCRIPT, Custom Tags and CFML2009

I've been following with some interest the work of the CFML Advisory Committee on the CFML2009 specification, particularly the proposed enhancements to CFSCRIPT. The question of being able to call Custom Tags from CFSCRIPT has helped crystalize thoughts I've been forming for some time regarding the relationship between CFML tags and CFSCRIPT, and how to write better CFML applications.

The thing that makes CFML great is its tag-based syntax when used to generate dynamic HTML content. CFML is simply unmatched by any other web application development language in this regard. In fact, you could argue that JSP tag libraries (including the JSP Standard Tag Library) and ASP.NET server controls are nothing more than attempts to mimic CFML tag-based syntax.

However, CFML tag-based syntax is awkward and verbose when writing lengthy computational or business logic that isn't generating HTML output. CFML suffers in comparison to other programming languages in this regard. But, this is where CFSCRIPT shines. It's unfortunate that many (most?) people only know about CFML's tag-based syntax and are completely unaware of CFSCRIPT; and, that CFSCRIPT has often been treated as secondary to the tag-based syntax by both CFML developers and CFML server vendors. Conversely, while CFSCRIPT is good for computational or business logic, you would not want to use CFSCRIPT and the writeOutput() function to generate large amounts of HTML content.

In summary:

CFML tags. Good (great!) for generating dynamic HTML content. Bad for writing computational or business logic.
CFSCRIPT. Good for writing computational or business logic. Bad for generating dynamic HTML content.
If you accept this view, then the answer to the question of calling Custom Tags from CFSCRIPT is simple: don't do it. Custom Tags are an extension mechanism for CFML tag-based syntax. Custom Tags are intended to generate dynamic HTML content, not to contain computational or business logic. CFSCRIPT should be used for computational or business logic, not to generate HTML content. Calling Custom Tags from CFSCRIPT makes no sense.

Following on these thoughts, user-defined functions and components are extension mechanisms for adding computational or business logic to CFML, not for generating HTML content. In retrospect--and I'm not being critical here--the CFFUNCTION and CFCOMPONENT tags were probably a mistake. It might have been better for the CFML language and CFML developers if these features had originally been introduced and/or remained CFSCRIPT-only enhancements.

I welcome the proposed enhancements to CFSCRIPT, and have these suggestions for the CFML Advisory Committee and CFML developers:

  • Don't add support for calling Custom Tags from CFSCRIPT to the CFML2009 specification. If it is added, CFML developers shouldn't use it.
  • As soon as your favorite CFML server supports CFML2009 and the CFSCRIPT enhancements, ban the use of the CFFUNCTION and CFCOMPONENT tags. Require that user-defined functions and components be implemented using CFSCRIPT.
  • Immediately ban the use of the writeOutput() function and require that all HTML content be generated using tag-base syntax.
Following these suggestions will take maximum advantage of the respective benefits of CFML tags and CFSCRIPT, and encourage separatation of presentation layer (CFML tags) and business layer (CFSCRIPT) logic within your applications. The result will be better organized CFML applications that are easier to enhance and maintain.

BlueDragon 7.1 released!

New Atlanta is pleased to announce the immediate availability of BlueDragon 7.1 for download and purchase. For details of new features in BlueDragon 7.1, see the What's New in BlueDragon 7.1 document.

BlueDragon 7.1 is a free upgrade for customers with BlueDragon 7.0 or 7.0.1 licenses; your existing 7.0 or 7.0.1 license key will work with BlueDragon 7.1 and you do not need a new license key.

The installers for BlueDragon Server JX 7.1 and BlueDragon.NET 7.1 can be used to upgrade existing 7.0 and 7.0.1 installations. See the appropriate installation guide for further details.

The following summarizes new features and licensing changes in BlueDragon 7.1.

NEW FEATURES

The following new features are included in all BlueDragon 7.1 editions (Java and .NET):

  • ColdFusion 8 (CF8) compatibility enhancements
    • CFTHREAD compatibility
    • onMissingMethod event handler for CFCs
    • CFQUERY added result variables to specify the ID of an inserted row
    • MonthAsString() function added the "locale" parameter
    • added "component" as a supported value for the CFARGUMENT TYPE and CFFUNCTION RETURNTYPE attributes
  • CFIMAGE added the ability to crop, rotate, add border, adjust brightness and constrast, and apply gray scale filter
  • added the "Generate UUID as CFTOKEN value" configuration option
  • support for IIS 7.5 on Windows 7
  • support for IIS 7.5 on Window Server 2008 R2
  • performance enhancements
  • bug fixes
The following new features are available in BlueDragon.NET 7.1:
  • IIS 7.0 integrated request pipeline
  • IIS 7.0 integrated configuration and administration
  • Added the ability to create CFCs within ASP.NET pages without inheriting from the NewAtlanta.BlueDragon.CfmPage class
  • Added the NewAtlanta.BlueDragon.CfmUserControl class
  • Added support for ASP.NET connection strings
  • Added support for the Oracle Data Provider for .NET (ODP.NET)
  • Added support for the IBM DB2 provider for .NET
The following new features are available in BlueDragon Server JX 7.1:
  • Upgraded embedded servlet engine to ServletExec 6.0
  • IIS 7.0 managed .NET module replaces native C/C++ web server adapter
  • Added the CFCProxy class for invoking CFCs from Java/JSP
LICENSING CHANGES

The following licensing changes are being made with the release of BlueDragon 7.1:

  • BlueDragon.NET Standard edition is now supported on both x86 (32-bit) and x64 (64-bit) servers
  • BlueDragon Server JX now comes in Standard and Enterprise editions
  • BlueDragon .NET Standard edition and BlueDragon Server JX Standard edition are licensed for either a single physical server or a single Virtual Machine (VM) instance
  • BlueDragon Server JX Enterprise edition is licensed per physical server for unlimited Virtual Machine (VM) instances
  • BlueDragon .NET Enterprise edition and BlueDragon for Java EE Servers continue to be licensed on a per-CPU basis for unlimited Virtual Machine (VM) instances
  • BlueDragon .NET Enterprise edition and BlueDragon for Java EE Servers are no longer licensed for 1-CPU servers (you must puchase a minimum 2-CPU license)
  • Support for BlueDragon Server JX on Mac OS X has been discontinued (BlueDragon for Java EE Servers continues to be supported on Mac OS X)

Google App Engine is the coolest thing since Java Servlets

Imagine an "infinite computer" with the following characteristics:

  • unlimited processing capacity, memory, and bandwidth to be able to handle any traffic load
  • unlimited database storage capacity
  • 100% reliability -- it never fails
What would the benefits of such a computer be? Consider that:
  • you'd never have to purchase, maintain, or upgrade any hardware ever again
  • you'd never have to purchase, patch, or upgrade any operating system or database software ever again
  • you'd never have to worry about capacity planning and scalability, about having enough servers to handle peak traffic loads (servers that sit idle at other times, wasting your money)
  • you'd never have to worry about clustering and fail-over protection
  • you'd never have to worry about backups or recovery of your server or database
Now, imagine that this computer is free to use to get started, and that after you exceed the free quotas you only pay for the resources--CPU time, bandwidth, stored data--that you actually use? Think of all the money you could save on capital (hardware) costs, and on personnel to manage and maintain your infrastructure.

Such a computer actually exists--today, right now--it's called Google App Engine.

Google App Engine (GAE) is the most exciting new web application server technology since the Java Servlet API was introduced in 1997. To emphasize the significance of that statement, consider that New Atlanta has been built around the Java Servlet API, which has been the core technology of our company's products for the past twelve years.

Other cloud computing offerings, such as Amazon EC2, implement only an intermediate level of virtualization. With Amazon EC2 you're still worried about "machines", only now they're virtual machines instead of physical machines. You want scalability? figure out how many virtual machines you need. You want reliability? configure a virtual machine cluster, and make sure they're in different physical data centers (Amazon calls them Availability Zones). And don't forget to apply the latest patches to your operating system and database software--and plan for upgrades when the next versions are released.

Yes, there are benefits to Amazon EC2 and other virtual machine (VM)-based offerings over existing physical environments. Also, because they are conceptually similar to the current physical model, and because they allow you to run existing software unmodified (assuming your software vendors have figured out appropriate licensing models), they make possible an easy migration to a cloud computing environment. However, I can't help but view VM-based solutions as being merely transitional steps on the way to GAE-like models--including Microsoft's Windows Azure--where the proper unit of virtualization is your web application.

Now, imagine that you could deploy ColdFusion (CFML) applications on top of the Google App Engine "infinite computer"...

New Atlanta and BlueDragon achieve strong sales growth for Q1'09

As a privately held company, New Atlanta does not regularly discuss sales figures in public. However, in spite of these overall tough economic times, we have some good news to share. New Atlanta sales for the first quarter, January through March 2009 (Q1'09), achieved strong year-over-year and quarter-over-quarter growth. Specifically:

  • sales for Q1'09 were 35% higher than the same quarter last year (Q1'08)
  • sales for Q1'09 were 70% higher than the immediately preceding quarter, October through December 2008 (Q4'08)
  • Q1'09 was New Atlanta's strongest sales quarter since the beginning of the global economic recession in Q4'07
  • sales growth was primarily driven by BlueDragon, both .NET and Java editions, but we also achieved sales growth across nearly all product lines

We're hopeful that these results for the first quarter represent the beginning of a trend that will continue throughout 2009 and beyond. We're grateful to our customers who continue to demonstrate their confidence in our company and products, and we look forward to serving you for many years into the future. Thank you.

Web Application Server Market Trends and BlueDragon

After drafting the following blog entry, I realized it was quite lengthy and could benefit from an introductory paragraph. In summary, this blog entry is intended to answer the following questions that are regularly posed to us by BlueDragon customers and prospects:

  • Why should we migrate to BlueDragon.NET?
  • Why did New Atlanta create the Open BlueDragon project?
  • What is the future of BlueDragon and New Atlanta?
The main message is that the dominant trends in the web application server market over the past several years present considerable challenges to ColdFusion/CFML developers, and that BlueDragon is uniquely positioned to help CFML developers respond to those challenges.

[More]

BlueDragon visit to the UK, March 9-13, 2009

I have a trip to the UK planned for the week of March 9-13, 2009 to visit BlueDragon customers and prospects. My schedule currently includes dates in Dublin, Gloucester, and London, and is filling quickly. Drop me a note if you're interested in having me stop by your office to discuss how you can use BlueDragon.NET to:

  • migrate existing ColdFusion applications to ASP.NET without rewriting code
  • improve the performance and reliability of your ColdFusion applications
  • integrate ColdFusion (CFML) and ASP.NET technologies
Of course, I'm also happy to discuss the Java EE editions of BlueDragon and the advantages they offer over Adobe ColdFusion for deploying CFML applications.

BlueDragon 7.1 beta released!

The first public beta of BlueDragon 7.1 has been released! Enhancements in BlueDragon 7.1 are listed below; details can be found in the What's New in BlueDragon 7.1 document.

All BlueDragon 7.1 Editions

The following enhancments are available in all BlueDragon editions:

  • CFIMAGE: added the ability to crop, rotate, add border, adjust brightness and contrast, and apply gray scale filter
  • ColdFusion 8 (CF8) compatible enhancements
    • CFTHREAD compatibility
    • onMissingMethod event handler for CFCs
    • CFQUERY added result variables to specify the ID of an inserted row
    • MonthAsString() function added the "locale" parameter
  • Added the "Generate UUID as CFTOKEN value" configuration option
  • performance enhancements
  • bug fixes
BlueDragon 7.1 for the Microsoft .NET Framework

The following enhancements are available in BlueDragon.NET:

BlueDragon 7.1 Server JX

The following enhancements are available in BlueDragon Server JX:

  • Upgraded embedded servlet engine to ServletExec 6.0
  • IIS 7.0 .NET module replaces C/C++ web server adapter
  • Added the CFCProxy class for invoking CFCs from Java/JSP

I'll follow-up with separate blog entries on each of these enhancements. Download the BlueDragon 7.1 beta and let us know what you think.

The final release of BlueDragon 7.1 is planned for April 2009.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.2.001. Contact Blog Owner

company media information terms of use privacy policy contact us
This page was dynamically built on the BlueDragon CFML Engine