navigation framework using cf architecture for a client-server application using the open standards...

Post on 03-Jan-2016

214 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related