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