260 likes | 447 Views
Navigation Framework using CF. Architecture for a Client-Server Application using the open standards of the web. presented by. Kedar Desai. Navigation…a new paradigm. Queue based function control Non URL based navigation. What is Navigation?. User’s perspective:
E N D
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the web presented by Kedar Desai
Navigation…a new paradigm • Queue based function control • Non 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 Interface • Thick Client • EXE • Built using PowerBuilder, Visual Basic, etc.
Associated Problems • Maintaining a code base • DLL Hell • Distributing an EXE • Maintaining ‘Help’ files • Difficulties in adding new functionality
About the Application • Justice Information System • Application Architecture ColdFusion Application Server Sybase Database Client Browser: HTML, JS, CSS
Application Challenges • Consists of around 500 Functions • Over 200 database tables • Database Intensive • Transaction Intensive
Application Frameworks • Two Main frameworks: • Navigation Framework • Navigation • Error Handler • Business Rule Engine • Security Framework • Each framework is independent
What is so great about this Navigation framework? • Look and feel of a standard windows application • Excellent navigation • Uses 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
Function Architecture • Five ‘.cfm’ files per function • Five 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 queue • If 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 variables • Each 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 Yes No Function Displayed On Browser Form Controller
Error Controller • Builds the error page • Appends 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 months • A function being developed every two days • A TEAM of five