| Feature | ASP w/ IIS 3.0 | Cold Fusion 4.0 | Comments |
| Syntax |
script-based, developer friendly; supports VB syntax. |
tag-based, html author friendly. Supports JS
style scripting as well. |
ASP has support for multiple, extensible scripting languages. CF's tag syntax is simpler and easier |
| DB connectivity |
Database connectivity through ADO COM object -
ODBC |
Database connectivity through tags - ODBC,
Native drivers, OLE DB, ADO COM objects, etc. |
the CF DB tags are somewhat easier to use than ASP ADO objects. |
| Data manipulation |
direct, through ADO objects |
implicit, through tag usage |
ASP's recordset objects instead of tag parameter is more flexible, powerful |
| Architecture |
ISAPI filter |
ISAPI, WSAPI, NSAPI filters and Apache Modules |
both products run as
ISAPI filters in IIS's address space for excellent performance and integration with IIS. CF also runs on the other 'standard' servers. |
| Extendibility |
Server components can be created in any tool that produces COM objects (OLE servers), like VB, VC++, etc. |
extension tags can be produced using the CF language itself, or C++ API, any COM
objects usable in ASP can also be used here. CF 4 adds in CORBA functionality as well. Java Class usage added through outside tag. |
CF wins, it can use any ASP components, plus you can write your own tags |
| Pre-built functionality |
VB library functions and Server objects, components |
function library and Server objects |
both have excellent support here |
| Application framework |
dynamic, using server side objects and event programming |
dynamic and/or static, using an automatically included application file |
ASP's model is event based, whereas CF's is include based, but both are capable of the same things |
| State Management |
dynamic, using a temporary cookie to identify a server side object with configurable expiration |
static across user sessions, using a permanent cookie with storage in the Windows registry/database, or dynamic just like ASP's |
CF will do state management just like ASP, or it can preserve state across browser sessions making it more flexible. |
| Debugging |
error message sent to browser upon runtime errors, or not. On/Off switch, no customization. |
configurable debugging information (including SQL debugging info) sent to browser upon runtime errors, can be restricted to certain IP addresses |
CF has by far the better debugging |
| Error Handling |
Default error screens are ugly, roll your own if you don't like them. You can trap and handle errors in script, although the process is ugly and limited. |
Allows specification of a default error handling HTML template, into which error information is plugged, much easier to display consistent and complete error information. Ability to trap errors in script and take conditional action. |
CF has much better support for customizable error messages. |
| Web Server Support |
IIS only, possibly others w/ non-MS add-ons (like ChileASP) |
any CGI compliant web server, a number of servers using native APIs (ISAPI, NSAPI, WSAPI, etc) |
CF wins hands down |
| Maturity |
rough around the edges |
polished, 4.0 product |
CF has been around longer and is more polished, complete, and easy to use product; but ASP has made huge strides quickly |