Comprehensive ColdFusion Training (CFM501)
Course Length: 5 days
Delivery Methods:
Available as private class only
Course Overview
In this Comprehensive ColdFusion training course, students will spend the first part of the week learning the basics of ColdFusion and the second part of the week learning advanced ColdFusion techniques.
Course Benefits
- Learn to get data from a database and display it on the page
- Learn to insert, Edit and Delete records from a database
- Learn to pass data from one page and receive it on another using HTML Forms
- Learn to create Dynamic Form Fields including Dynamic Select Lists
- Learn to build a Search Interface
- Learn to use Session Variables to provide Password Protection
- Learn to call ColdFusion Components (CFCs) and Custom Tags
- Learn to create and use complex data objects.
- Learn to write
<cfscript>
code. - Learn to build and use Custom Tags.
- Learn to build and use ColdFusion Components (CFCs).
- Learn to handle errors properly.
- Learn to page through recordsets.
- Learn advanced form validation with regular expressions.
Course Outline
- Introduction to ColdFusion
- Static pages vs. Dynamic pages
- Server-side Web Technologies
- Database Alphabet Soup: ODBC/JDBC, DSNs and SQL
- Course Objectives and Prerequisites
- Introduction to Course Project
- ColdFusion Basics
- Using CFML
- Code Editors
- Tag Updaters / Extensions
- Tag Editing Dialog Boxes
- Embedded Tag Help
- Using ColdFusion Comments
- Creating Variables
<cfset>
and<cfoutput>
- Variable Scope/Prefixes
- Built-in ColdFusion Functions
- Using
<cfinclude>
to reuse code
- Using CFML
- Dynamic Data: Querying the Database
- Database Basics
- Introduction to SQL
- Select Statement
- Update Statement
- Insert Statement
- Delete Statement
- Data Source Name (DSN) / Remote Development Server (RDS)
- The DSN Used in This Class: movieList
- Course Project Database
- Querying the database with
<cfquery>
<cfdump>
for Quick Output
- Customizing Display with
<cfoutput>
- Building Dynamic Tables
- Shortcut:
<cftable>
- Database Basics
- Creating a Drill-down Interface
- Passing Variables between Pages
- "Two-page method"
- Receive Variables through the URL
- Using a WHERE clause in a SQL Statement
- Protecting Against SQL Injection Attacks with
<cfqueryparam>
- Passing Variables between Pages
- Conditional Statements and Forms
- Conditional Statements
<cfif>
,<cfelseif>
and<cfelse>
- Comparison Operators
- Operator
- Description
- Using the
isDefined()
function
- HTML Form Review
- Self-Submitting Forms
- Using the
<cfparam>
tag to set a default value - Quick Examination of a ColdFusion Framework (Methodology): Fusebox
- Using the
- Dynamically Populating Select Lists
- HTML Review:
<select>
tags - Introducing the
<cfform>
Tag - Shortcut:
<cfselect>
- HTML Review:
- Conditional Statements
- Quick Introduction to RSS and Ajax with
<cfform>
- Reading an RSS Feed
- Introducing the
<cfform>
Tag - Building a Mask with
<cfform>
- Automatically Build a Dynamic Select List with
<cfselect>
- Search Interface
- Creating a Search Interface
- Using % and _ in a LIKE Statement
- Creating a Search Interface
- Insert Records into the Database
- Inserting Records
- SQL Insert Statement
- Insert Record Step 2 - the Insert
- Shortcut:
<cfinsert>
- Redirect Users with
<cflocation>
- Automated Form Validation
- Client-side vs. Server-side validation: When does the validation code run?
- Inserting Records
- Edit (Update) Database Records
- Updating records
- SQL UPDATE Statement Review
- Passing the Primary Key
- Page 2 - View Current Data in a Form
- Page 3 - Perform the Update to the Database
- Shortcut:
<cfupdate>
- Deleting Records
- Note on Deleting records
- Review of the SQL Delete Statement
- "Deleting" without deleting
- No
<cfdelete>
!
- Updating records
- Reusing Code
- Reusing code with
<cfinclude>
and<cflocation>
- Custom Tags
- Where to store Custom Tags
- CALLER and ATTRIBUTE scopes
- Using
<cfmodule>
- A Note about CFX tags
- User Defined Functions (UDFs) and ColdFusion Components (CFCs)
- Creating UDFs with the
<cffunction>
tag - Using ColdFusion Components (CFCs)
- Creating UDFs with the
- Creating Components
- Calling or Invoking Components
- Passing Arguments to Components
- The Component Code
- The main CFML page
- View a Component directly in the browser
- Reusing code with
- Using Session Variables for Password Protection
- Session Variables
- Using Application.cfc to Enable Session Management
- Creating Password Protected Pages
- Password-protect.cfm (the included page)
- Application.cfm
- Locking Session and Application variables with
<cflock>
- Session Variables
- Tracking User Information with Cookies (optional)
- Using Cookies to Track Users
- Sending email with
<cfmail>
(optional)- Using ColdFusion to Send Email
<cfmail>
Tag Syntax
- Using ColdFusion to Send Email
- Charting
- Course Introduction and
<cfchart>
- Introduction
- Course Objectives
- Course Prerequisites
- Course Project
- Charting and Graphing Options
- Using
<cfchart>
vs.<cfchartseries>
- Caching Charts
- Using
- Course Introduction and
- Complex Objects
- Manipulating Complex Data Objects (Lists, Arrays, Structures and Queries)
- Scalar Variables
- Lists
- Arrays
- Structures
- Looping with
<cfloop>
- Syntax of
<cfloop>
- Weeding Out the FIELDNAMES Variable
- Using
<cfloop>
for automatic query output - Display Web-safe Colors using CFLOOP
- Syntax of
- Queries of Queries
- Manipulating Complex Data Objects (Lists, Arrays, Structures and Queries)
- Components
- CFCs - Building ColdFusion Components
- Benefits to using CFCs
- Creating Components
- Calling or Invoking Components
- Passing Arguments to Components
- The main CFML page
- Three Ways to Pass Arguments
- Where to save CFCs
- Self-documenting - View a Component directly in the browser
- Object-Oriented CFCs
- Object-Oriented Principles
- How does use of a CFC compare to other OO languages?
- Inheritance
- Access control
- Exposing CFCs as Web Services
- CFCs - Building ColdFusion Components
- Application Framework
- Application Framework
- Automatic Includes: Application.cfm and onRequestEnd.cfm
- New Application Framework: Application.cfc
- Using Application Variables
- Application Framework
- Error Handling
- Errors and Exceptions
- Standard Error Handling
- Application.cfm
- Structured Error Handling
<cftry>
and<cfcatch>
- Transactions with
<cftransaction>
and<cftry>
- Classic
<cftransaction>
example
- Errors and Exceptions
- Reusing Code
- Reusing Code
- Limited Capabilities of
<cfscript>
- Syntax Rules
- Reserved Words
- Looping with
<cfscript>
GetTickCount()
- testing the speed of your code
- Limited Capabilities of
- Custom Tags
- Where to store Custom Tags
- CALLER and ATTRIBUTE scopes
- Using
<cfmodule>
- Stored Procedures
- Benefits of Stored Procedures
- Showing portions of a Recordset
- Paging through records
- Reusing Code
- Regular Expressions (optional)
- Advanced Validation with Regular Expressions (optional)
- Special Symbols for Matching Specific Characters
- Specify the number of occurrences
- Placement of the pattern
- POSIX Syntax
- Perl Syntax
- Advanced Validation with Regular Expressions (optional)
Private classes can be customized to include any of the following topics:
- Manipulate the File System with
<cffile>
- Working with
<cffile>
- Read and Write Text Files with
<cffile>
- Built-in Function:
ExpandPath()
- Reading Files with the
<cffile>
tag - Built-in Function:
FileExists()
- Read and Write Text Files with
- Upload Documents with
<cffile>
- Using the
<cffile>
tag for an Upload - After a
<cffile>
Upload: FILE Variables - Deeper Examination: HTML and a File Upload
- Saving long variable values with
<cfsavecontent>
- Using the
<cffileupload>
tag for Multiple Uploads in ColdFusion - Using
<cfcontent>
to create an Excel Spreadsheet
- Using the
- Working with
- Using XML with ColdFusion
- XML Syntax Basics
- XML Logical Structure
- Each XML document must begin with a language declaration
- Each XML document must have a single root element, which normally contains other child elements
- XML Physical Structure
- Case Sensitivity
- Required Closing Tags
- New Syntax for "empty elements"
- Tags must be nested properly
- Attribute Values must be enclosed properly in single or double quotes
- XML Comments
- XML Logic: Designing Datasheets
- Parsing XML data with ColdFusion
- Demo: Convert an XML datasheet into an XML Document Object with
XMLParse()
- Case-sensitive Element Names with
XMLParse()
- Method 1 - Array notation with generic node names
- Method 2 - Associative Array notation
- Method 3 - Array notation with specific node names
- Methods 4(+) - Mix and Match
- Deeper Examination: Counting Nodes
- Manipulating XML data with Built-in Functions
- List of Structure/Array Functions that may be used on an XML Document Object
- List of XML-specific Functions
- Demo: Convert an XML datasheet into an XML Document Object with
- Manipulating the XML Document Object: Adding Elements
- Deeper Examination: Adding an XML Attribute
- Create a Query Object from Existing XML (optional)
- Deeper Examination: Looping through the XML
- Deeper Examination: Creating the Query Object
- Deeper Examination: Query the query
- Extensible Stylesheet Language (XSL) Basics
- XSL, XSLT, and XSLFO
- XSL Basics: Linking to an XSL Stylesheet
- Examining an XSL Stylesheet
- The xsl:stylesheet tag and the namespace declaration
- The
<xsl:template>
tag - The
<xsl:value-of>
tag - Referencing iterating nodes
- Server-side XSL Transformation with ColdFusion
- Deeper Examination:
XMLTransform()
- Idea! Transforming XML Data into XML Data
- Deeper Examination:
- XPath Basics
- XPath: the XSL Node Matching Syntax
- Choosing Between Equivalent XPath Expressions
- An XPath testing tool
- Using XPath with ColdFusion
- Deeper Examination: XPath expression
- Deeper Examination:
XMLSearch()
- Idea! Convert an XML Document Object to a Query Object
- XML Syntax Basics
- Working with
<cfhttp>
- Making http requests with
<cfhttp>
- Attributes of
<cfhttp>
- Deeper Examination:
<cfhttp>
tag - Deeper Examination:
<cfoutput>
block - While looping though the records
- Deeper Examination:
QueryAddColumn()
function - Idea! Dynamically Creating Static Pages
- Attributes of
- Passing Variables with
<cfhttp>
and<cfhttpparam>
- Creating an Intelligent Agent
- Deeper Examination: agent.cfm
- Deeper Examination: agent-page2.cfm
- Deeper Examination:
<cfsetting>
- Making http requests with
- ColdFusion and Web Services
- Working with Web Services
- Examples
- Producers vs. Consumers
- Definitions
- Creating WSDL Documents
- Step 1 - Convert the existing CFC into a Web Service
- Step 2 - Examine a local WSDL file from the demo
- Step 3 - Invoking a ColdFusion Web Service
- Deeper Examination
- Deeper Examination: Passing an argument to a Web Service
- SOAP
- A note about security
- Invoking External Web Services
- Locating Web Services
- Invoking Web Services from .NET, Java and more
- Deeper Examination:
<cfinvoke>
and<cfinvokeargument>
- Working with Web Services
- Web Distributed Data Exchange (WDDX) (if time allows)
- WDDX
- Deeper Examination:
<cfwddx>
tag - Deeper Examination
- Deeper Examination:
- Deserialize WDDX data in JavaScript
- Deeper Examination: Include JavaScript functions
- Deeper Examination: Deserialize in JavaScript
- Deeper Examination: Generated source code
- Deeper Examination
- WDDX
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Class Prerequisites
Experience in the following is required for this ColdFusion class:
- HTML
Experience in the following would be useful for this ColdFusion class:
- SQL
- JavaScript
- CSS
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors