CF101: Welcome to ColdFusion by fnun6d

VIEWS: 13 PAGES: 27

									      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 = simon@horwith.com>
<cfoutput>
Name: <b>#variables.fullname#</b><br>
Email: <a href=“mailto:#variables.email#”>#variables.email#</a>
</cfoutput>

Would display:

Name: Simon Horwith
Email: simon@horwith.com
           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

								
To top