If you're a Microsoft shop; if you're running Windows, IIS, and SQL Server as your web application platform, then you should be running your CFML on .NET instead of Java/J2EE. Here are the advantages you'll gain and the reasons why companies such as MySpace, eAutoClaims, and others (that you'll hear about in the future) are choosing to deploy their CFML on .NET:
- Platform integration with Windows and .NET
(If you're not a Microsoft shop, then this discussion doesn't apply to you. If you're running UNIX/Linux as your web application platform then your best--and only--choice is to run your CFML on Java/J2EE. I am *not* advocating that you switch to Windows; this discussion is for people who have already chosen to run Windows).
In order to understand why .NET offers the advantages listed above, it's important to understand the architectural differences between CFML-on-.NET and CFML-on-Java/J2EE on Windows. All of the advantages of .NET flow directly from these architectural differences. First, let's take a look at the CFML-on-Java/J2EE architecture, which is illustrated in the following diagram; this architecture applies equally to the Java/J2EE editions of BlueDragon and to CFMX:
The color coding indicates which pieces of the software stack are provided by different vendors. In the CFML-on-Java/J2EE architecture, significant portions of the software stack are provided by a minimum of four different software vendors. Windows, IIS, and SQL Server are provided by Microsoft; the Java VM is provided by Sun; the J2EE Server and CFML Runtime are provided by New Atlanta or Macromedia; and, the JDBC Driver is provided by DataDirect (at least it is in the case of CFMX; for BlueDragon, the JDBC Driver is also provided by New Atlanta, so only three vendors are involved; this is a good reason to consider using BlueDragon if you're running Java/J2EE, but that's a topic for another day).
The above diagram assumes you're running BlueDragon Server or CFMX Server; if you're running the J2EE edition of either product then the situation is even more complicated since the J2EE Server portion could be provided by yet a fifth software vendor (IBM or BEA, for example).
The results of having multiple (up to five!) different software vendors providing major system components are increased complexity of the system and reduced integration among the components, which leads directly to inherent problems with performance and reliability.
Now, let's take a look at the CFML-on-.NET architecture, which is illustrated in the following diagram:
The first thing to immediately notice is that nearly all of the major system components are provided by a single software vendor--Microsoft. Only the CFML runtime--BlueDragon.NET--is provided by New Atlanta.
Also, BlueDragon.NET has been certified by Microsoft for Windows Server 2003 (the only CFML server to receive such certification) and New Atlanta is a Microsoft Gold Certified Partner (the only CFML server vendor to attain this status), which insures the highest level of compatibility and integration between BlueDragon.NET and the Microsoft-provided components.
The result of the CFML-on-.NET architecture is reduced complexity of the system and increased integration among the components, which leads directly to inherent advantages in performance and reliability.
The level of integration of the CFML-on-.NET architecture will increase in the near future. SQL Server 2005, which is planned for release on November 7, 2005, is built on the .NET Framework. If you attended Microsoft's keynote address on IIS 7 at CFUNITED-05, then you know that IIS 7 is also being built on top of the .NET Framework. When Longhorn ships with IIS 7 in 2006, the CFML-on-.NET architecture will look like this:
The advantages of the CFML-on-.NET architecture will only increase in the future. In follow-up blog entries I'll elaborate on each of the individual points of performance, reliability, and scalability and explain how the differences in architecture described here give a clear and ongoing advantage to CFML-on-.NET.
(This blog entry and the ones to follow are based on my presentation at CFUNITED-05 entitled, "CFML on Windows Server 2003 and IIS 6.0: the .NET Advantage." Click here to download the original PowerPoint presentation.)