230 likes | 385 Views
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
E N D
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 • ‘Queue’ and ‘Keys’ philosophy www.differentialtech.com
What is Navigation? • User’s perspective • Ability to use the system in the most effective manner. • Designer’s perspective • Ability to manage or direct the course of the user using the system. www.differentialtech.com
What is this ‘Client-Server’ application? • Two – tier application • Rich GUI • Thick client built using tools like, PowerBuilder or Visual Basic • MDI interface • Interacts with a database at the backend • Deployed using executables www.differentialtech.com
Associated problems • Maintaining a code base • DLL hell • Distributing an exe • Maintaining help files • Difficulties in adding new functionality www.differentialtech.com
About the Application • Justice Information System • Psuedo three tier architecture • Has a look and feel of a standard windows application www.differentialtech.com
Application architecture Application Server Database ColdFusion 4.5 IE5.0, HTML, JS, CSS Sybase database www.differentialtech.com
Challenges • 200+ database tables • 500+ functions • Database driven • Transaction intensive www.differentialtech.com
Application frameworks • Two main frameworks • Navigation • Navigation • Error handler • Business Rules engine • Security • Each framework is an independent unit. www.differentialtech.com
What is so great? • Uses ColdFusion. • Enables parallel development of user interface and application logic. • Gives a look and feel of a standard windows application. • Extends ColdFusion’s error handler. • Separates the GUI from the business logic. www.differentialtech.com
Features of the Framework • Driven by keys. • Works on a queue architecture. • Maintains state in Session variables and allows multiple sessions from one client machine. www.differentialtech.com
Message Module • Provides the ability to maintain messages in the database. • Functions include: • Search for messages • Add, Modify and Delete messages • View specific details about messages www.differentialtech.com
Demo www.differentialtech.com
Five ‘.cfm’ files per function Form page Main cfm OnError cfm CFForm cfm Presentation cfm Action page Action cfm Hidden fields Function Id Page Id Target Function Id Main cfm file name OnError cfm file name Action cfm file name Function Architecture www.differentialtech.com
Form controller Opens the page Action controller Fires the action Error controller Handles errors Business Rules Engine Handles business rule validations Keys/Queue controller Maintains the keys and queues Navigation Controllers www.differentialtech.com
What are keys? • Every function has a set of input and output keys • A key is a value that fetches data to be displayed on the page • If no keys exists, the default function is opened. www.differentialtech.com
What is a queue? • Maintain information about the activities that the user wants to perform. • Works on FIFO logic. • Two types • Function queues • store the function id’s in a queue. • Data queues • store the keys in a queue. www.differentialtech.com
Page loading process FORM Controller Main cfm file Error propagation is 5-4-3-2-1-0 www.differentialtech.com
Action processing logic Action Controller Error propagation is 2-1-0 or 3-0 www.differentialtech.com
Features • Secure access • Centralized action and form pages • Centralized error handler • Everything is a custom tag • Complete isolation of logic & presentation • Supports version control and independent development • F5 (refresh) works as in a browser www.differentialtech.com
Points to ponder • Browser back and forward buttons a problem • Custom tag directory cannot be used • Not much use for Application.cfm www.differentialtech.com
Productivity metrics • Built in under three months • A team of five and churning out a function every two days. www.differentialtech.com
Thank You Visit us on line at www.differentialtech.com or write to me at desaik@differentialtech.com desaikedar@hotmail.com www.differentialtech.com