Upload
melinda-shaw
View
219
Download
1
Tags:
Embed Size (px)
Citation preview
Navigation Framework using CF
Architecture for a Client-Server Application using the open standards of the web
Kedar Desai
presented by
Navigation…a new paradigm
Queue based function controlNon URL based navigation
What is Navigation?
User’s perspective:– Ability to use the system in the most efficient
manner
Designer’s perspective:– Ability to manage or direct the course of the
user using the system
What is this“Client Server” Application?
MDI InterfaceThick ClientEXEBuilt using PowerBuilder, Visual Basic,
etc.
Associated Problems
Maintaining a code baseDLL HellDistributing an EXEMaintaining ‘Help’ filesDifficulties in adding new functionality
About the Application
Justice Information SystemApplication Architecture
SybaseDatabase
ColdFusionApplication
Server
Client Browser: HTML, JS, CSS
Application Challenges
Consists of around 500 FunctionsOver 200 database tablesDatabase IntensiveTransaction Intensive
Application Frameworks
Two Main frameworks:
– Navigation Framework• Navigation• Error Handler• Business Rule Engine
– Security FrameworkEach framework is independent
What is so great about this Navigation framework?
Look and feel of a standard windows application
Excellent navigationUses ColdFusion
Navigation Framework: Features
Driven by keys.Works on a queue architecture.Maintains State in Session variables.
Message Module
Provides ability to maintain messages in the database
Functions include:– Message Search and List, Message
Modify, Message Delete, Message New, Message Text Modify, Message Details
Demo
Function Architecture
Five ‘.cfm’ files per functionFive hidden fields per function
The Five ‘.cfm’ files
Form Page– Main cfm file– OnError cfm file– CFForm cfm file– Presentation cfm file
Action Page– Action cfm file
The Hidden Fields
Each function has five hidden fields– Function id– Page id– Main cfm file name– OnError cfm file name– Action cfm file name– Target Function id
Navigation Controllers
Form Controller– Opens the function
Action Controller– Triggers the action of the function
OnError Controller– Controls display of errors
Key Controller– Controls ‘key’ and ‘queue’ maintenance
What are keys?
Every function has a set of input and/or output keys
A key is a value that fetches data to be displayed on the function
Keys are kept in a queueIf no keys exists, the default function is
opened
What is a queue?
Maintains information about the activities that the user wants to perform in a sequence.
Function queue and keys queue are the major queues.
How is state maintained?
Using Session variablesEach session has a ‘userid’ associated with
it, thus enabling multiple sessions on the client browser.
How does a function open?
Form Controller controls the opening of the form.
The file opening sequence is:– Main cfm– OnError cfm– CFForm cfm– Presentation cfm
Navigation Flow
Function List
Action Controller
Errors?Error
Controller
FormController
FunctionDisplayed
On Browser
Yes
No
Error Controller
Builds the error pageAppends the error page to the form page
Features
Secure Access.Centralized action and form pages.Centralized error handling.Everything is a custom tag.Logic and presentation isolated.F5 or Refresh works as in a browser.
Points to ponder
Browser back and forward buttons unusable.
Even though everything is a custom tag, ‘Custom Tag’ directory is not helpful
Not much use for Application.cfm
Productivity Metrics
Built in under 3 monthsA function being developed every two
daysA TEAM of five