Web Application Development with ColdFusion

Download Report

Transcript Web Application Development with ColdFusion

CF101:
Welcome to ColdFusion
Simon Horwith
CTO, Etrilogy Ltd.
Who Am I?
• Macromedia Certified:
– Instructor
– Advanced ColdFusion Developer
– Flash Developer
•
•
•
•
•
•
Member Team Macromedia
CTO, Etrilogy Ltd. (London)
Private Consultant – Web/DB App Dev
Frequent CFUG and Conference Speaker
Monthly Contributor to CFDJ Magazine
Contributing Author of Several Books
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
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
Topics
•
•
•
•
•
Introduction to ColdFusion
Code Basics
Database Integration
ColdFusion Features
Q&A
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
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, ASP, ASP.NET, Perl, PHP, etc.
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.
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
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
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>
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.
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
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]
Code Basics cont’d
• CFML comments are used to comment code
and to prevent code from being parsed
• Example:
<!--- this is a ColdFusion Comment --->
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.
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>
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
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.
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>
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>
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>
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>
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
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
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.
• Many online and printed resources
• SO MUCH MORE!
Good Luck!
• And enjoy ColdFusion!
• Q & A time