|
|
| What
is Cold Fusion? |
 |
ColdFusion
is a system for rapidly developing and deploying
Web sites, particularly those that involve
interaction with databases and the presentation
of dynamic results. |
 |
In a few short
years, ColdFusion has become one of the
major players in the highly competitive
environment of hosting and delivery (serving)
of Web applications. There are many reasons
for the popularity of ColdFusion, but here
we focus on those that are most important
from a Web developer's point of view. |
 |
From its inception,
ColdFusion (Coldfusion) was designed to integrate
database with Web presentation. Coldfusion hides
a lot of the messy details of interfacing
a database. You don't need to devote your
valuable developer time to understanding
and programming these details. Coldfusion does that
for you. Instead you focus your attention
on the needs of the application. Here are
a few ColdFusion benefits for our drill-down
example: |
 |
With a single
command (cfquery), Coldfusion will query a database
and store the results in an array. An option
to the cfquery tag causes the query results
to be cached in memory so you can reference
the data multiple times without overloading
the db server. |
 |
Coldfusion provides
a simple, yet powerful, mechanism for maintaining
the state of each visitor to the site. You
keep track using a unique set of "Session"
variables for each visitor. Each visitor
(and the associated "Session Variables:"
is tied to a cookie or a token (provided
by Coldfusion) that gets passed with each page.
|
 |
Once the data
is retrieved and cached, it's broken into
digestible chunks. Another Coldfusion tag makes
it easy to iterate over the array (created
by the cfquery) and extract only those items
requested for presentation (as defined by
the visitor's Session variables").
|
 |
Paging through
the information is just a re-execution of
the iteration process with a different starting
point for the next (or other) group. |
 |
All these
things are built into ColdFusion and designed
to work together. They make it easy to accomplish
drill-down presentation of dynamic data.
So, from a developer's point of view, it's
much easier to write complex programs with
Cold Fusion than with other programming
languages. |
 |
| Application
Program Maintenance |
 |
The Web changes
rapidly, and the sites that don't keep up
with the changes will likely languish. An
often-ignored part of Web development is
the cost of maintaining a Web application
over time -- usually by several different
people. |
 |
ColdFusion
programming uses English-language tags such
as cfquery, cffile, cfmail, and so on. These
are easy to read and understand. Coldfusion Programs
also tend to be self-documenting. This means
that anyone who knows ColdFusion can look
at the program, understand what's going
on, and even modify it. Sites implemented
in ColdFusion can realize significant savings
in program maintenance costs over the life
of the application. |
 |
| Prototyping
and Rapid Development |
 |
When a developer
interacts with a potential client, the client
may have only a general idea of what he
or she wants from the Web site. The power
and compactness of the Coldfusion language make
it ideal for quickly prototyping the "look
and feel" of the site to show to the
client. Using Coldfusion, the developer can easily:
|
 |
|
 |
Design, create, and populate
prototype databases if none exist. |
|
 |
| |
 |
Interface, extract, and manipulate existing
legacy databases to build prototype versions.
|
 |
| |
 |
Build dynamic-content Web pages using drill-down
or other techniques. |
 |
It's a simple
matter to put together such a prototype,
deploy it, then demonstrate it in the client's
office, or even over the phone. So, from
a developer's point of view, Coldfusion helps to
determine the clients' needs and demonstrate
a prototype solution without investing a
lot of time and dollars. And you, as the
potential developer, get to "Strut
your stuff". |
 |
| ColdFusion
MX |
 |
Since my introduction
to version 3.0 (ages ago, in 1997-98), Cold
Fusion has gone through several major releases,
each with its own set of new features that
often setting the pace for others to follow.
|
 |
The latest
version of ColdFusion is part of the MX
family and includes some exciting new features.
For an overview, you might want to visit
Macromedia's site. Some of the main new
features are : |
 |
|
 |
XML integration -- ColdfusionMX
includes tools for manipulating XML data.
Prior releases relied on the Web server
or custom tags to process XML. New XML functions
make it easier to create, manipulate, and
exchange XML data from within a ColdfusionMX program.
|
 |
| |
 |
Flash integration -- With
ColdfusionMX it is easier to develop sites that
provide "Rich Content" such as
complex data, graphics, animation, and sound.
By designing the new versions of Flash and
ColdFusion to work together, Macromedia
has streamlined the communication between
client and server. |
 |
| |
 |
Web Services -- Earlier
releases of Coldfusion had the capability to harvest
information such as stock quotes, flight
schedules, shipping rates, and so on, from
other Web sites. But, the process was tedious
and inefficient. The interface was problematical
in that it would likely break if the target
site changed its format or structure. A
growing trend is to formalize the interface
for inter-site communication as Web services.
ColdfusionMX provides the ability to easily and
efficiently publish and consume Web services.
|
 |
| |
 |
Java Interface -- ColdfusionMX
makes it possible for ColdFusion programs
to coexist with, interact with, and share
data with Java programs. |
 |
You can develop
parts of an application with ColdFusion,
and other parts with Java. So, this environment
can serve as a gentle introduction to Java
programming. ColdfusionMX is a self-contained representation
of the Web server environment (everything
you need) that can be installed on a local
machine with a free developer license. |
 |
In our ColdfusionMX/Java
world, all the services are written in Java,
or are a Java program interface to an external
program written in Java or some other language.
The Application Server environment is provided
by JRun, which is distributed with ColdfusionMX
and also available as a separate product.
JRun is written in Java. It consists of
a kernel and a set of services. |
 |
We can write
our own functions and business logic as
Java programs and add them as new services,
or write our application in Java and use
the other services through the JRun kernel.
|
 |
| ColdFusion
Web Application Server environment |
 |
We may choose
to write our Web application programs in
ColdFusion -- the advantages of doing so
have already been discussed. We write the
program in ColdFusion Markup Language (ColdfusionML),
then save it with a special suffix (.cfm)
in a place that is accessible to JRun. |
 |
When the Web
Server service receives a request from a
browser for a .cfm template, it passes the
request through JRun to the Coldfusion MX service
-- we'll call this the Web Application Server
service. |
 |
The
Coldfusion MX Web Application Server service reads
the .cfm template, interprets the Coldfusion instructions,
and passes the results back through JRun.
Now, we can modularize our CFML code, too.
We can have separate templates and functions
that can be used by making requests through
JRun. |
 |
We can also
use the other services available to JRun
by invoking them with a Coldfusion tag, for example,
a cfquery tag will be interpreted to pass
a request for db services through JRun.
In this context, Coldfusion MX is just another specialized
service available to JRun -- a service that
interprets CFML. |
| |
| Whether you need
a cool Cold Fusion dynamic web site, an ASP
auction portal, a PHP shopping cart or a Lotus
Notes-Domino application or your MS SQL database
needs optimization we have the necessary skills.
Call us ! |
| |