navigation framework using cf
DESCRIPTION
Navigation Framework using CF. Architecture for a Client-Server Application using the open standards of the Web. presented by. Kedar Desai. Differential Technologies, Fairfax, VA. Navigation… a new paradigm. Non URL (menu based) navigation ‘FORM’ based application control - PowerPoint PPT PresentationTRANSCRIPT
Navigation Framework using CFNavigation Framework using CF
Architecture for a Client-Server Application Architecture for a Client-Server Application using the open standards of the Webusing the open standards of the Web
presented by
Kedar Desai
Differential Technologies, Fairfax, VA
www.differentialtech.com
Navigation… a new paradigmNavigation… a new paradigm
Non URL (menu based) navigationNon URL (menu based) navigation ‘‘FORM’ based application controlFORM’ based application control ‘‘Queue’ and ‘Keys’ philosophyQueue’ and ‘Keys’ philosophy
www.differentialtech.com
What is Navigation?What is Navigation? User’s perspectiveUser’s perspective
– Ability to use the system in the most effective Ability to use the system in the most effective manner.manner.
Designer’s perspectiveDesigner’s perspective– Ability to manage or direct the course of the Ability to manage or direct the course of the
user using the system.user using the system.
www.differentialtech.com
What is this ‘Client-Server’ What is this ‘Client-Server’ application?application?
Two – tier applicationTwo – tier application Rich GUIRich GUI Thick client built using tools like, Thick client built using tools like,
PowerBuilder or Visual BasicPowerBuilder or Visual Basic MDI interfaceMDI interface Interacts with a database at the backendInteracts with a database at the backend Deployed using executablesDeployed using executables
www.differentialtech.com
Associated problemsAssociated problems
Maintaining a code Maintaining a code basebase
DLL hellDLL hell Distributing an exeDistributing an exe Maintaining help filesMaintaining help files Difficulties in adding Difficulties in adding
new functionalitynew functionality
www.differentialtech.com
About the ApplicationAbout the Application
Justice Information SystemJustice Information System Psuedo three tier architecturePsuedo three tier architecture Has a look and feel of a standard windows Has a look and feel of a standard windows
applicationapplication
www.differentialtech.com
Application architectureApplication architecture
Database
ApplicationServer
IE5.0, HTML, JS, CSSSybase database
ColdFusion 4.5
www.differentialtech.com
ChallengesChallenges
200+ database tables200+ database tables 500+ functions500+ functions Database drivenDatabase driven Transaction intensiveTransaction intensive
www.differentialtech.com
Application frameworksApplication frameworks
Two main frameworksTwo main frameworks– NavigationNavigation
» NavigationNavigation» Error handlerError handler» Business Rules engineBusiness Rules engine
– SecuritySecurity Each framework is an independent unit.Each framework is an independent unit.
www.differentialtech.com
What is so great?What is so great?
Uses ColdFusion.Uses ColdFusion. Enables parallel development of user Enables parallel development of user
interface and application logic.interface and application logic. Gives a look and feel of a standard Gives a look and feel of a standard
windows application.windows application. Extends ColdFusion’s error handler.Extends ColdFusion’s error handler. Separates the GUI from the business logic.Separates the GUI from the business logic.
www.differentialtech.com
Features of the FrameworkFeatures of the Framework
Driven by keys.Driven by keys. Works on a queue architecture.Works on a queue architecture. Maintains state in Session variables and Maintains state in Session variables and
allows multiple sessions from one client allows multiple sessions from one client machine.machine.
www.differentialtech.com
Message ModuleMessage Module
Provides the ability to maintain messages in Provides the ability to maintain messages in the database.the database.
Functions include:Functions include:– Search for messagesSearch for messages– Add, Modify and Delete messagesAdd, Modify and Delete messages– View specific details about messagesView specific details about messages
www.differentialtech.com
DemoDemo
www.differentialtech.com
Function ArchitectureFunction Architecture
Five ‘.cfm’ files per Five ‘.cfm’ files per functionfunction– Form pageForm page
» Main cfmMain cfm» OnError cfmOnError cfm» CFForm cfmCFForm cfm» Presentation cfmPresentation cfm
– Action pageAction page» Action cfmAction cfm
Hidden fieldsHidden fields– Function IdFunction Id– Page IdPage Id– Target Function IdTarget Function Id– Main cfm file nameMain cfm file name– OnError cfm file nameOnError cfm file name– Action cfm file nameAction cfm file name
www.differentialtech.com
Navigation ControllersNavigation Controllers
Form controllerForm controller– Opens the pageOpens the page
Action controllerAction controller– Fires the actionFires the action
Error controllerError controller– Handles errorsHandles errors
Business Rules EngineBusiness Rules Engine– Handles business rule Handles business rule
validationsvalidations
Keys/Queue controllerKeys/Queue controller– Maintains the keys and Maintains the keys and
queuesqueues
www.differentialtech.com
What are keys?What are keys?
Every function has a set of input and output Every function has a set of input and output keyskeys
A key is a value that fetches data to be A key is a value that fetches data to be displayed on the pagedisplayed on the page
If no keys exists, the default function is If no keys exists, the default function is opened.opened.
www.differentialtech.com
What is a queue?What is a queue?
Maintain information about the activities Maintain information about the activities that the user wants to perform.that the user wants to perform.
Works on FIFO logic.Works on FIFO logic. Two typesTwo types
– Function queuesFunction queues» store the function id’s in a queue.store the function id’s in a queue.
– Data queuesData queues» store the keys in a queue.store the keys in a queue.
www.differentialtech.com
User selectsfunction
ABC frommenu
Open Main cfmfile of function
ABC
Get the keysfrom the Data
Queue
Do Keys forfunction ABC
exist?
Open On Errorcfm file of
function ABC
Open CFFORMcfm file of
function ABC
OpenPresentation
cfm file offunction ABC
Does DefaultTarget exist forfunction ABC?
Add functionABC to
FunctionQueue
FORMController
Error Controller
Open ABC
Open Default target of ABC
YesNo
No
Yes
2
0
1
3
4
5
Show Errorto User
Displayfunction
ABC to User
Page loading processPage loading process
Error propagation is 5-4-3-2-1-0
FORM Controller Main cfm file
www.differentialtech.com
Action processing logicAction processing logicUser
clickedOK (save
data)
Action Controller Fire the action ofcurrent page
Business RuleEngine
Put keys in DataQueue
Does TargetExists?
FORM Controller
Do functionsexists in
Function Queue?
Presentnext
function touser
NoYes
Yes No
Business RuleErrors?No
Error ControllerShow
Error toUser
Yes 3
21
0
Open the first Function inQueue
Open the Main Page
Open the target
Action Controller
Error propagation is 2-1-0 or 3-0
www.differentialtech.com
FeaturesFeatures Secure accessSecure access Centralized action and form pagesCentralized action and form pages Centralized error handlerCentralized error handler Everything is a custom tagEverything is a custom tag Complete isolation of logic & presentation Complete isolation of logic & presentation Supports version control and independent Supports version control and independent
developmentdevelopment F5 (refresh) works as in a browserF5 (refresh) works as in a browser
www.differentialtech.com
Points to ponderPoints to ponder
Browser back and forward buttons a Browser back and forward buttons a problemproblem
Custom tag directory cannot be usedCustom tag directory cannot be used Not much use for Application.cfmNot much use for Application.cfm
www.differentialtech.com
Productivity metricsProductivity metrics
Built in under three monthsBuilt in under three months A team of five and churning out a function A team of five and churning out a function
every two days.every two days.
www.differentialtech.com
Visit us on line at www.differentialtech.com
or write to me [email protected]@hotmail.com