Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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