Title: Putting it all together
1Putting it all together
- Steve Drucker
- CEO
- Fig Leaf Software
2Session Overview
- Addressing the Problem
- ColdFusions Role in providing the solution
- Common Application Widgets
3Addressing the Problem
- Complexity in Software Team Coordination
- Software models business processes
- Garbage in Garbage out
- Apply Occams Razor
4The Role of ColdFusion
- ColdFusion is the Glue that binds together
other technologies - RDBMS (Stored Procedures, other features)
- Client-Side JavaScript
- Dynamic HTML
- XML
- Macromedia Flash, Generator
- Server-side Java, CORBA, COM, DCOM, Active Server
(COM) - WAP
- Other Websites (CFHTTP, CFWDDX)
5Common Application Widgets
- Managing Client-Side Caching
- Code Builders (SQL SPs, DatabaseBlocks)
- Importing Legacy Data
- Application Pop-up Help System
- Managing Server Timeout
- Spell Checking
- Graphing
- Cross-Tab Reporting, Export to MS Excel
- Scheduling Alerts using MS Outlook
6Code Builders
- Fig Leafs Single Template Wizard Constructor
- Available at http//www.figleaf.com
- Creates Stored Procedures and data entry
interfaces for managing lookup tables - Helps coding consistency across programming teams
7Managing Client-Side Caching
- ltMETA HTTP-EQUIV"Pragma" CONTENT"no-cache"gt
- ltMETA HTTP-EQUIV"Pragma-directive"
CONTENT"no-cache"gt - ltMETA HTTP-EQUIV"cache-directive"
CONTENT"no-cache"gt - ltMETA HTTP-EQUIV"Expires" CONTENT"0"gt
- ltCFHEADER NAME"Pragma" VALUE"no-cache"gt
- ltCFHEADER NAME"Expires" VALUE"0"gt
- ltCFHEADER NAME"cache-control" VALUE"no-cache,
no-store, must-revalidate, max-age0"gt
8Importing Legacy Information
- CF String functions are abysmally slow when
dealing with large text strings (gt32K) - CF systems frequently need to link to other
line-of-business applications, or may be retiring
an older mainframe system - How to import delimited information effectively?
9Importing Legacy Info (Cont)
- Step 1 File Upload a Delimited list (Tabs,
preferably) - Step 2 Add list qualifiers around the fields ()
and write the file out to disk - Step 3 Use the ltCFHTTPgt tag to import the file
into a session-based CFQUERY object - Step 4 Process the query through a multi-page
staged process - Step 5 Pray to whatever god you believe in
10Application Pop-up Help
- After usability testing, you may find that some
users consider particular screens to not be
intuitive. - Pop-up Help is useful
- ltCFMODULE template"application.basehref/custom
tags/cbt.cfm datasource"application.datasour
ce" - personid"session.person.personid"
- cbtmoduleid"1"gt
11Managing Server Timeout
- Provide end-users with a warning about when their
session may time-out due to inactivity - Particularly important for systems that
aggressively use client-side processing
12Managing Server Timeout
function checkTimeout() cdate new
Date() ctime cdate.getTime() myinterval
ctime - top.currenttime if
(top.appframe.location.href.indexOf("/login/index.
cfm") -1) if (myinterval gt
defaultnotification myinterval lt
defaulttimeout) showModelessDialog(
basehref '/timeoutmessage.htm',window,"statusno
helpnodialogWidth350pxdialogHeight200px")
if (myinterval gt defaulttimeout)
top.appframe.location.hrefbasehref
'/login/logout.cfm' else mydate
new Date() currenttime
mydate.getTime() window.setInterval("c
heckTimeout()", 180000)
13Spell Checking
- Use the ltCFX_Spellgt tag (beware its not
multithreaded) - Put it in a JavaScript wrapper to achieve an
interactive effect
14Graphing/Charting
- Charting through DHTML
- Lightweight
- Charting through COM (ChartFX)
- Inexpensive, Robust
- Charting through Macromedia Generator
- For enterprise charting
15Code Walkthrough
16Cross-Tab Reporting
- ltCF_DHTMLREPORTgt
- Complex Custom Tag using DHTML, Advanced Custom
Tags, JavaScript, MIME
17Scheduling Alerts in MS Outlook
- Using the ltCFCONTENTgt tag and the ICAL
specification
18Questions?
- Steve Drucker (sdrucker_at_figleaf.com)
- Code available on the DC-CFUG website
(http//www.figleaf.com) - click on CFUG-Meeting
Notes - Dont forget about DC/Balto/Nova CFUG
- SPUG! (Thusday, Sept. 3rd DC)