Title: An Introduction to ColdFusion MX
1An Introduction to ColdFusion MX
An Introduction to ColdFusion MX
Stephen Rittler Manager, Philadelphia
Area ColdFusion User Group scrittler_at_etechsolution
s.com
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
2Agenda
- What is ColdFusion?
- ColdFusion MX architecture
- A Quick Look at CFML
- New and Enhanced features in MX
- Please jump in with questions anytime!
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
3What is ColdFusion?
ColdFusion is a proven rapid application
development system for the web, and is the
fastest way to integrate browser, server and
database technologies into powerful
applications. ColdFusion Markup Language is a
great example of encapsulation and abstraction at
work.
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
4The Role of ColdFusion
PC Browsers
Web Server
CF Templates
------- ------- ------- ------- ------- -------
------- ------- ------- ------- ------- -------
------- ------- ------- ------- ------- -------
------- ------- ------- ------- ------- -------
------- ------- ------- ------- ------- -------
COLDFUSION MX
Content Data
Other Systems
Database
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
5ColdFusion Server Architecture
ColdFusion MX Server
ColdFusion Scripting Environment
J2EE Infrastructure Services
More on Java integration later
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
6Platform support for ColdFusion
- Operating Systems
- Windows, Linux (Red Hat and SuSE), Solaris,
HP-UX, and unofficially OS-X - Web Servers
- IIS 4 and 5, Apache 1.32 and 2.x, WebSite Pro,
CFMX internal, Netscape 3.6x, iPlanet 4.x and
6.x, Zeus 4.1 - Application Servers
- JRun,SunONE, WebSphere, WebLogic (Q103)
- Databases
- Any database with native, JDBC, or ODBC drivers
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
7ColdFusion Markup Language
CFML - is a tag-based scripting language
comprised of 70 tags and 300 functions. - is
easily integrated into standard HTML/XML/WML
documents - has a short learning curve -
encapsulates very powerful functionality - is
extensible using CFML, C, Java, JSP, Servlets
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
8ColdFusion Code
ltcfquery datasourcemyDSN namepeoplegt SELECT
FROM users ORDER BY LastName lt/cfquerygt ltcfo
utput querypeoplegt LastName,
FirstNameltbrgt lt/cfoutputgt
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
9Same thing in ASP
lt Set peopleServer.CreateObject("adodb.Recordse
t") conn"DSNmyDSN" sqlstmt "SELECT FROM
users ORDER BY LastName" people.open sqlstmt,
conn While not people.EOF response.write(people
("LastName") ",") response.write(people("FirstN
ame") "ltbrgt") people.moveNext Wend people.
close() gt
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
10Same thing in JSP
lt_at_ page import"javax.sql.,java.sql.,java.util.
" gt lt InitialContext context
getInitialContext() ConnectionSource ds
context.lookup("javacomp/env/jdbc/myDSN")
Connection conn ds.getConnection() RowSet
people String sqlString "SELECT FROM users
ORDER BY LastName Statement stmt
conn.prepareStatement(sqlString) people
stmt.execute() gt lt while (people.next())
gtlt people.getString("LastName") gt , lt
people.getString("FirstName") gtltbrgt lt
conn.close() gt
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
11CFSCRIPT
- ltCFSCRIPTgt complements the tag-centric CFML
functionality with the ability to do tasks in
pure script on the server side. - Syntactically similar to JavaScript, but easier
- No access to ltCFgt functionality
- Full access to ColdFusion variables in all scopes
- Faster and simpler way to set variables and carry
out decision operations - Now has try() and catch() error handling!
- comparison.cfm
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
12Using CF Tags inside CFSCRIPT
ltCFFUNCTIONgt is a new tag that extends the
concept of UDFs in ltcfscriptgt to the tag
arena. Now we can write encapsulated functions
that have full access to all of CFs
functionality! Most CF tags are not ported to
functions for use within CFSCRIPT blocks, BUT a
sufficiently enterprising developer could wrap
the CFQUERY tag inside a CFFUNCTION block
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
13How to use CFQUERY in a CFSCRIPT block
ltCFFUNCTION name"wrapQuery"gt ltCFARGUMENT
name"sqlString" required"true"
type"string"gt ltCFQUERY datasource"PACFUG"
name"dataset"gt arguments.sqlString lt/CFQUERY
gt ltCFRETURN datasetgt lt/CFFUNCTIONgt ltCFSCRIPTgt
myRecordset wrapQuery("SELECT FROM
tblRegisters") lt/CFSCRIPTgt ltcfdump
var"myRecordset"gt
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
14Functions, Encapsulationwait a sec!
It was around this point when the engineers
designing MX realized that now that they could
provide access to all of the CFML tags and
functions inside of function calls. The
question was posedwhy not group these tag-based
functions together like we did with script-based
functions? These groupings appeared similar to
Java classes. And thus, ColdFusion Components
were born.
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
15ColdFusion Components
- Completely new functionality in CFMX!
- FAR more to CFCs than we can cover here today
(see references at end of presentation) - 30 faster than using custom tags
- Groups of functions and properties
- Code reuse and abstraction of common
functionality - Brings pseudo-OO programming to ColdFusion
- Can be called from CF, Flash, other app servers
- Fast, easy way to do web services
- SELF DOCUMENTING!
- User component
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
16Flash Remoting
- Flash Remoting represents new functionality that
allows Flash and the application server of your
choice to interact via HTTP. - Java, .NET, and CFMX
- Can pass complex data types (recordset, struct)
- Server side Action Script blurs line between
- Flash and CF
- Server components install separately from
ColdFusion - Client components built in to Flash 6 Player
- SWF calling CFC based web service
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
17XML Support
- ColdFusion MX has much improved XML support and a
boatload of new functions to prove it! - Read and parse XML documents with XMLParse()
- Create XML Documents with the ltCFXMLgt tag DOM is
automagically generated. - Transform XML documents using XMLTransform() and
an XSLT template. - Find information in XML documents using
XMLSearch() and XPath expressions - Send raw XML in a CFHTTP POST with
- ltCFHTTPPARAM typeXMLgt
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
18Web Services
- CFMX Support for web services is
- XML tags and functions
- ColdFusion Components
- Automatic WSDL generation for exposed CFCs
- ltCFHTTPgt, ltCFINVOKEgt, and ltCFOBJECTgt tags
- WDDX was a spec released by Allaire/Macromedia in
1999 to wrap XML documents in a common format
before XML standards were agreed upon. It is
still used inside MX.
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
19A moment with CFINVOKE
- ltCFINVOKEgt is a very versatile tag
- It can be used to Import JSP tag libraries
- ltcfimport taglib"/WEB-INF/lib/pennTags.jar"
prefix"ben"gt - or to import libraries of Custom Tags
- ltcfimport taglib/taglib/pennCFM/
prefixfranklingt - or to import web services
- ltcfimport
- webservicehttp//www.amazon.com/webservices/
favories/ - prefixamazonSvcgt
- or to create Adaptive tags
- ltcfimport taglib/taglib/modHTML/ prefixgt
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
20Regular Expressions
- ColdFusion has had Regular Expression support for
several releases. With CFMX, the RegEx engine is
now Perl-compatible. - More special characters and escape sequences
supported - Case conversion in result strings
- POSIX character classes have always been
supported
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
21Search Engine
- ColdFusion has always included the Verity search
engine as part of the package. - MX includes the latest Verity engine K2
- Can index and search database content, files
(DOC, PDF, PPT, etc.), and web pages - FAST
- K2 is expensive when purchased separately
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
22Charting and Graphing
- Graphing in CFMX is improved
- 11 chart/graph types (8 are new) with 2 and 3
dimensional versions of each - Flash, JPG, or PNG format (no GIF)
- More interactive display options than CFGRAPH
- Multiple series
- Ability to overlay different chart types
- Charts can be cached to memory or disk
- ltCFGRAPHgt and associated tags are deprecated
- PACFUG hit tracking example
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
23Security and Authentication
- CFMX features a built-in security mechanism
- Roles-based
- New Tags and Functions
- ltcflogingt ltcfloginusergt ltcflogoutgt
- IsUserInRole() GetAuthUser()
- Server Sandbox security replaces SiteMinder
- Lock-down tags, functions, databases, files,
directories and IP addresses and ports based on
directory
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
24Development Tools
- Macromedia Studio MX has all sorts of hooks in to
CFMX. - Contains Dreamweaver, Flash, Fireworks, FreeHand,
and CFMX Developer Edition. - Server-side debug, development
- Developer tools are extensible!
- References built right in
- Consistent UI across apps
- Wizards for component development
- NetConnect Debugger in Flash for resolving Flash
Remoting issues
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
25CF/J2EE Architecture
- ColdFusion MX runs on top of a J2EE corewhat
does that do for us? - CF templates are now translated into .java
files and compiled (caching still available) - Performance boost of about 10 on Win2k, 30 on
Solaris, and 40 on Linux - Proven J2EE foundation
- J2EE session management (IIS caveat)
- Permits CFMX to provide support for UNICODE
character set! - JRun is J2EE 1.3 compliant version with CFMX
Pro is reduced functionality
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
26JSP/Servlet Integration
- JSP tag libraries can be imported into, JSP pages
can be called from, and servlets can be invoked
in ColdFusion templates! - Can leverage existing Java applications
(including EJBs and Class files) - Grants the application another potential means
for separation of business logic from
presentation logic - CF Developers do NOT have to learn Java to use
existing Java business components (meaning you
save money on consultants!)
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
27Feature Sets and Pricing
(NOTE Prices do NOT Include Edu. Disc.) ColdFusion MX Server Professional Edition 800/549 ColdFusion MX Server Enterprise Edition 5000/2500 ColdFusion MX for J2EE Application Servers 3400
OS Support Windows, Linux Windows, Linux., Solaris, HP-UX Windows, Linux, Solaris
Database Connectivity ODBC, DesktopSQL Server, mySQL ODBC, Desktop,SQL Server, mySQL, Oracle, DB2, Sybase, Informix ODBC, Desktop,SQL Server, mySQL, Oracle, DB2, Sybase, Informix
Search 125,000 Documents 250,000 Documents 250,000 Documents
Adv.Deployment Management ? ?
Load Balancing and Failover ? ?
Enhanced Java Integration JTL Import/JSP Include JTL Import/JSP Include
Server Sandbox Security ? ?
Deploy on leading J2EE app servers ?
Developer edition is free!
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
28Closing
- ColdFusion MX brings far more functionality and
power to the table than any prior version. - Many, many CF community resources available for
more info - Philadelphia Area ColdFusion User Group usually
meets every other month on the third Thursday at
Penn State Delaware County. Topics are on web
development, databases, and CF. - PhillyJUG meets at Villanova, PhillyFlash meets _at_
UArts
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com
29Links
More Information http//www.macromedia.com/desdev
/ http//livedocs.macromedia.com/cfmxdocs/ http
//www.cfug-md.org/ (Rob
Brooks-Bilsons Getting to know
CFMX) http//www.systemanage.com/ (Charlie
Areharts CFMX Hidden Gems) http//www.pacfug.o
rg/ (CFC presentation, plus our
meetings!) This Presentation Introduction to
ColdFusion MX http//www.pacfug.org/presentations
.cfm
74 Pottstown Pike Suite 1000 Eagle,
PA 19480 (610) 458-2460
pacfug_at_etechsolutions.com