Table of Contents
Preface
Chapter 1: Web Pages—Static to Dynamic
Chapter 2: Basic CFCs and Database Interaction
Chapter 3: Power CFCs and Web Forms
Chapter 4: ORM Database Interaction
Chapter 5: Application, Session, and Request Scope
Chapter 6: Authentication and Permissions
Chapter 7: CFScript
Chapter 8: CF AJAX User Interface
Chapter 9: CF AJAX Forms
Chapter 10: CF AJAX Programming
Chapter 11: Introduction to Custom Tags
Chapter 12: ColdFusion Powered Views
Chapter 13: Control Logic Processing
Chapter 14: Guide to Unit Testing
Appendix A: Beyond this Book
Appendix B: Tools and Resources
Index
- Chapter 1: Web Pages—Static to Dynamic
- Turning HTML into a dynamic web page
- HTML requests
- ColdFusion requests
- Comments
- Variable output
- Functions
- Understanding and using simple variables
- Variable types
- Integers
- Strings
- Decimals
- Additional functions
- Find and FindNoCase
- Variable types
- Understanding structures
- CGI variables
- Let's get interactive
- URL variables
- Exception handling
- Standard error exception
- <CFTRY> and <CFCATCH>
- Setting page defaults
- HTML links
- Introduction to lists and loops
- Understanding arrays
- Conditional processing with If/<cfif>
- Conditional processing with switch
- Summary
- Turning HTML into a dynamic web page
- Chapter 2: Basic CFCs and Database Interaction
- Our first CFC
- Our first object
- Product (object)
- Using an object constructor
- Connecting to a database
- Returning data from the CFC
- Making our data query flexible
- The basic data object concept
- Object method access control
- Summary
- Chapter 3: Power CFCs and Web Forms
- The practice of protecting access
- Web forms introduction
- Managing our product data
- Getting data to our edit page
- Saving our data
- Improving page flow
- Adding a new record
- Let's look under the hood
- Summary
- Chapter 4: ORM Database Interaction
- Introduction to ORM in ColdFusion
- ORM-enabled application configuration
- ORM-enabled CFCs
- Understanding entities
- Working with entity-object relationships
- Many-to-many relationships
- Working with relational data
- ORM functions
- Summary
- Introduction to ORM in ColdFusion
- Chapter 5: Application, Session, and Request Scope
- Life span
- Introducing the Application.cfc object
- Application variables
- The start methods
- Application start method—onApplicationStart()
- Session start method—onSessionStart()
- Request start method—onRequestStart()
- The end methods
- Request end method—onRequestEnd()
- Session end method—onSessionEnd()
- Application end method—onApplicationEnd()
- On Error method—onError()
- Scope visibility
- Practical application
- Universal datasource
- Mappings per application
- Custom tag paths per application
- Summary
- Chapter 6: Authentication and Permissions
- How ColdFusion recognizes users
- Custom authentication (additional power)
- Authentication data model
- Customizing authentication
- Extra notes
- Summary
- Chapter 7: CFScript
- Script basics
- Variables
- Switch/case
- If/then/else
- For loops
- For/in loops
- Do/while loops
- While loops
- Exception handling
- Throw/abort
- New functions/commands in CF9
- Summary
- Script basics
- Chapter 8: CF AJAX User Interface
- Changing times
- HTML-based websites
- Server-side languages
- Browser-side applications
- Flash
- JavaScript
- ColdFusion AJAX
- Layout
- <cfdiv />
- <cflayout />
- <cfpod />
- <cfwindow />
- Menus and tool tips
- <cfmenu />
- <cftooltip />
- Layout
- Styling notes
- Tips
- Map interaction
- Summary
- Changing times
- Chapter 9: CF AJAX Forms
- AJAX forms
- <cfgrid />
- Grid paging
- Grid updates and deletes
- Linked grids
- <cfinput />
- Binding page elements
- Binding immediately upon load
- <cfinput />
- The date requestor
- The autosuggest box
- <cfselect />
- <cftextarea />
- <cftree />
- The directory tree
- Message boxes
- Progress bar
- Summary
- AJAX forms
- Chapter 10: CF AJAX Programming
- Binding
- On-page binding
- CFC binding
- JavaScript binding
- URL binding
- Bind with event
- Extra binding notes
- Multiple radio buttons or checkboxes and multiple select
- Spry binding
- CFAJAXProxy
- CFAJAX proxy binding
- CFC proxy class objects
- Client debugging
- Firebug
- Built-in debugging
- Logging features
- Customization
- Automatically wired AJAX links
- Execute JavaScript after loading content
- Other cool commands
- Post for CFAJAX calls
- CFAJAX browser JavaScript API overview
- Summary
- Binding
- Chapter 11: Introduction to Custom Tags
- Different forms of code reuse
- CFCs
- CFInclude
- Custom tags
- Our first custom tag
- Custom header/footer tags
- Nested tags
- CFInclude from custom tags
- Templates versus skins
- Managing custom tags
- CFModule approach
- Tag library approach
- Summary
- Different forms of code reuse
- Chapter 12: ColdFusion Powered Views
- What is open source?
- The fun factor
- Installing the library
- Getting started
- Happily separated
- Manipulate DOM from server-side code
- Turning lemons to lemonade
- Separation complete
- Fun with lists
- Select list tag
- Other list tags
- Better form coding
- Metadata
- Smart form modes
- Edit mode
- Add mode
- View mode
- Style simplified
- But wait, there's more!
- Custom list item rendering
- Module render option
- Summary
- Chapter 13: Control Logic Processing
- The code side of applications
- The model
- The controller
- Shared variables
- Processing request events
- Event model for the coprocessor
- onPageStart() method
- onFirstCall() method
- onPostBack() method
- Form modes
- beforeViewCall() method
- onPageEnd() method
- Event model for the coprocessor
- Remote AJAX events
- Data versatility
- Lists
- Array of structures
- Modified data field names
- Query handling
- Personal extension of COOP
- Summary
- The code side of applications
- Chapter 14: Guide to Unit Testing
- When to test
- Mission critical
- Test-driven development
- Regression testing
- Installing our testing software
- Understanding assertions
- First test class
- Multiple tests
- HTML view
- Data view
- Built-in assertions
- MXUnit assertion extensions
- Testing private methods
- Testing included files and custom tags
- Variable testing
- Exception testing
- A son's view of testing
- Summary
- When to test
- Appendix A: Beyond this Book
- Areas of interest
- Perspectives
- Business perspective
- Design/marketing perspective
- Developer perspective
- Perspectives
- Current technologies
- AJAX
- Flash (Flex/AIR)
- Future
- HTML 5
- Devices
- Scale versus implementation
- Standards
- Libraries
- Size
- Features
- Begin with the end in mind
- Research
- Frameworks
- Methodologies
- Libraries
- Areas of interest
- Appendix B: Tools and Resources
- AJAX
- Firebug
- jQuery
- Analytics
- Google webmaster tools
- Coding
- Conferencing and collaboration
- Acrobat.com
- Google Docs
- GoToMeeting/Webinar
- Slide-sharing sites
- Data-management tools
- Graphics creation/acquisition
- Camtasia Studio
- Color Schemer
- Fireworks
- Lightroom
- SnagIt
- Open source libraries
- Project management
- FreshBooks
- Project Tracker
- Source control
- Usability
- Morae
- Virtual development box
- XML
- AJAX