270 likes | 452 Views
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
E N D
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, lastnameFROM employeesORDER 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