Web Application Development with ColdFusion
Download
Report
Transcript Web Application Development with ColdFusion
CF101:
Welcome to
ColdFusion
Simon Horwith
CIO, AboutWeb LLC
CFUNITED – The premier ColdFusion conference
www.cfunited.com
Who Am I?
CIO, AboutWeb LLC
Adobe Certified Expert
Adobe Certified Master Instructor
Frequent CFUG and Conference
Speaker
Editor-in-Chief, CFDJ Magazine
Contributing Author of Several Books
June 28th – July 1st 2006
Who Are You?
Web site developer
Looking to add more interactivity to your site
Web application developer or development
manager who’s heard of ColdFusion
Wondering how it works, how easy it is to use,
how scalable it is for enterprise apps
June 28th – July 1st 2006
What We’ll Cover
We’ll show:
How easy it is to use and how it works
How CF can be used to add interactivity to your
site
The basics of CF programming: no previous CF
experience required
How the features of CF make it an ideal platform
solution for meeting complex business
requirements
June 28th – July 1st 2006
Topics
Introduction to ColdFusion
Code Basics
Database Integration
ColdFusion Features
Q&A
June 28th – July 1st 2006
Introduction to ColdFusion
ColdFusion is:
A leading Server-Side Web Application
Development System
The leading rapid development platform for the
web
Very easy to learn and to use
OS platform independent
A key part of Macromedia’s MX product line
June 28th – July 1st 2006
Introduction to ColdFusion cont’d
On the web there are 2 classes of web
technologies: server-side and client-side
Client-side technologies run in a users
browser – Flash, JavaScript, Java
Applets, etc.
Server-side runs on a central server –
ColdFusion, .NET, Perl, Ruby, PHP, etc.
June 28th – July 1st 2006
Introduction to ColdFusion cont’d
Static Web Architecture – user sends an
HTTP request to a web server which then
returns HTML (along with any client-side
technology code) back to the browser for
parsing
Dynamic Web Architecture – user sends an
HTTP request for a dynamic page to a web
server. The web server routes the request to
the Application Server which parses the
server-side technology instructions and sends
the resulting text back to the browser for
parsing.
June 28 – July 1 2006
th
st
Introduction to ColdFusion cont’d
ColdFusion files have a .cfm extension
The web server hands any request for a .cfm
page to the ColdFusion server for processing
The ColdFusion server looks through the
contents of the page for instructions and
ignores all other text (text, HTML, and other
client-side technologies may be used in CF
pages as the CF Server ignores them and
they are sent back to the browser along with
the dynamic page output)
ColdFusion Instructions are written in CFML
June 28th – July 1st 2006
Code Basics
ColdFusion pages are written in CFML –
ColdFusion Mark-up Language
CFML is:
Like HTML- it is a tag based language
Used to tell the ColdFusion server to connect with
a database, create a variable, etc.
Processed in place. HTML and CFML are often
interwoven in order to mark-up the output
generated by CF tags
June 28th – July 1st 2006
Code Basics cont’d
CFML tags begin with the letters “CF”
Two very common tags:
<CFSET> creates a variable
<CFOUTPUT> displays a variable
Example:
<CFSET firstName = “Simon”>
<CFOUTPUT> #Variables.firstname#</CFOUTPUT>
June 28th – July 1st 2006
Code Basics cont’d
Variables in CF:
Are case-insensitive
Are typeless
Exist for the duration of a request and are then
destroyed
Have a prefix. A variable prefix tells ColdFusion
where this variable exists in memory. ColdFusion
will search for a variable in many memory scopes
if no prefix is specified. This impacts on
performance and readability.
June 28th – July 1st 2006
Code Basics cont’d
<CFOUTPUT>
Has both an opening and closing tag
Tells ColdFusion to examine the text
between the opening and closing tag and
to evaluate any variable or expression
surrounded with hash marks (“#”)
Any non-CFML text inside <CFOUTPUT>
is ignored, which
June 28th – July 1st 2006
Code Basics cont’d
<cfset fname = “Simon”>
<cfset lname = “Horwith”>
<cfset fullname = variables.fname & “ “ & variables.lname>
<cfset email = [email protected]>
<cfoutput>
Name: <b>#variables.fullname#</b><br>
Email: <a href=“mailto:#variables.email#”>#variables.email#</a>
</cfoutput>
Would display:
Name: Simon Horwith
Email: [email protected]
June 28th – July 1st 2006
Code Basics cont’d
CFML comments are used to comment
code and to prevent code from being
parsed
Example:
<!--- this is a ColdFusion Comment --->
June 28th – July 1st 2006
Code Basics cont’d
CFML not only has tags, but functions as
well. There are over 70 tags and over 200
functions in the CFML language.
A few types of functions:
Date manipulation/formatting
Array/structure manipulation
String manipulation
List manpulation
Mathematic operations
Etc.
June 28th – July 1st 2006
Code Basics cont’d
Example of how to use functions to retrieve
today’s date (now() function) and display it in
“mm/dd/yy” format (dateformat() function)
<cfoutput>
<!--- display today’s date in mm/dd/yy format --->
#dateformat(now(),”mm/dd/yy”)#
</cfoutput>
June 28th – July 1st 2006
Database Integration
CF can communicate with virtually any
database, including:
Microsoft SQL Server
Sybase
Oracle
DB/2
Informix
and many more enterprise DBMS’s, as well as
desktop DBMS’s such as MS Access
June 28th – July 1st 2006
Database Integration cont’d
ColdFusion MX uses Java Database Connectivity
(JDBC) drivers to connect with databases
JDBC drivers translate SQL (Structured Query
Language) commands to native binary code that a
database understands, pass that binary code to a
datasource for execution, and return any returned
resultset to the ColdFusion page that invoked it.
A datasource is a “named connection” (alias) for a
database – it stores the database name, location,
server name, login and password, etc.
June 28th – July 1st 2006
Database Integration cont’d
ColdFusion passes SQL to a datasource
using the <CFQUERY> tag
<CFQUERY> should always have:
Name (assigns a name to the resultset and makes
code more readable)
Datasource (the DataSource name that points at
the database to pass the SQL to)
Example:
<CFQUERY name=“qEmployees” datasource=“myDSN”>
SELECT firstname, lastname
FROM employees
ORDER BY lastname
</CFQUERY>
June 28th – July 1st 2006
Database Integration cont’d
This code produces an ERROR!!
<CFQUERY name=“qEmployees” datasource=“myDSN”>
SELECT firstname, lastname
FROM employees
ORDER BY lastname
</CFQUERY>
<cfoutput>
#firstname# #lastname#
</cfoutput>
June 28th – July 1st 2006
Database Integration cont’d
This code displays only the first row from the recordset
<CFQUERY name=“qEmployees” datasource=“myDSN”>
SELECT firstname, lastname
FROM employees
ORDER BY lastname
</CFQUERY>
<cfoutput>
#qEmployees.firstname# #qEmployees.lastname#
</cfoutput>
June 28th – July 1st 2006
Database Integration cont’d
This code loops over each row from the recordset and
displays it
<CFQUERY name=“qEmployees” datasource=“myDSN”>
SELECT firstname, lastname
FROM employees
ORDER BY lastname
</CFQUERY>
<cfoutput query=“qEmployees”>
#qEmployees.firstname# #qEmployees.lastname# <br>
</cfoutput>
June 28th – July 1st 2006
CF Features: Yes it can do all
this… and SO much more!
Tags and functions for creating, reading, renaming,
moving, renaming, and deleting files and folders from
the local file system
Easy access to LDAP (lightweight directory access
protocol) resources
COM, DCOM, and CORBA support
Easy integration with existing Java Applications
HTTP functionality
Out of the box ease of establishing connections with
MANY RDBMS platforms
Built-in security framework
June 28th – July 1st 2006
CF Features cont’d
Advanced record-set functionality
Robust graphing and reporting functionality
Application architecture that supports persistent
memory scopes
Over 70 tags and 200 functions built-in to the easy to
use and learn CFML programming language
Custom Tags and User-Defined Functions
An object-oriented framework (ColdFusion
Components) that offers OOP features and a layerr of
abstraction between business logic and presentation
June 28th – July 1st 2006
CF Features cont’d
Web services support for consumption and
publication, ,including support for Java, .NET, and
Flash Remoting Applications
XML support
Web based Administrative interface
Platform independent – runs as a standalone server
or J2EE application on many platforms
PDF and FlashPaper Generation
Flash Forms and XML Forms
Event Gateways
Many online and printed resources
June
SO28MUCH
MORE!
– July 1 2006
th
st
Good Luck!
… enjoy ColdFusion!
Q & A time
June 28th – July 1st 2006