The FBA Application Framework
The FBA Sentinel software suite is built using the FBA Application Framework which we have been developing and evolving over the past few years. The framework is a full infrastructure for software applications. Over the years as a consulting company, we have found ourselves rebuilding the same common components that exist in every application. We have used this experience to build our own set of standards and components and incorporated them into a framework which we now use as a foundation for every application we build.
As an example of how we evolved the framework, when we developed our first multi-language application, we integrated all the functionality necessary right into our framework. For example, our auditing component now automatically records audit records in the language used by the currently logged-in-user. We built the necessary screens for translating data and user interface resources right into the application shell. This allows the end-user to add any number of languages to their application and to translate all the screens without any further software development. This is just a small part of the multi-language support offered in our framework, and it is now available in all our applications.
The FBA Framework is more than just copying code from one project to the next. It is the foundation for any enterprise class application.
Here is a summary of the features of our framework:
| Application Shell |
| A full shell for kick-starting any application |
| Login screen / customizable splash screen |
| Main application window with fully customizable menu structure |
| Full Security Engine and Administrative Screens |
| Screen for running reports |
| Maintenance screens for common data (i.e. lookup lists) |
| Generic screen layouts for integration with application specific screens – saves much coding and keeps the User Interface standard across the entire application |
| Multi-Language Support |
| Completely User Configurable – dynamically add any number of languages to your application without further programming. This can be done by an end-user with appropriate security permissions |
| Provides multi-language capability for the user interface and application data |
| Built-in generic maintenance screens for translating data in batch and for translating user interface components |
| Completely integrated into the Auditing module (below) |
| Reporting Engine |
| includes full end-user reporting capabilities |
| Fully integrated with the security engine to control which reports can be run or edited |
| End-users can modify any “canned” reports and create new reports – assuming the user is granted security permissions to do so |
| Data Layer |
| Used to communicate data between the client application and the server(s) |
| All data is fully encrypted and compressed for maximum performance |
| High Performance + Scalable |
| Integrated Security and Auditing |
| Supports WAN environment and communication over the internet (securely) |
| Auditing |
| Automatic auditing of all new data, modified data and deleted data. There is no extra programming to achieve this. The data layer automatically generates the audit records when data is saved. |
| Generic user interface to display audit logs. All search forms automatically inherit an Audit tab which displays audit records of all deleted items and the entire history of the record prior to deletion. Also, all detail editing forms automatically inherit an Audit tab which displays the entire history of the currently selected record from its creation. |
| Auto–Update of client application |
| When the application is started, the application shell automatically searches for published updates on secure corporate servers. |
| When updates are available, they are automatically downloaded and applied when the application is restarted. |
| FBA Deployment Management Studio (DMS) |
| Complete management application allowing system administrators to easily deploy new versions of any application based on the FBA Application Framework. |
| The administrator, at the click of a button, can deploy database change scripts, a new version of the client application, an updated back-end Windows service, and all FBA framework services. |
| The FBA DMS application allows the administrator to setup any number of environments and to deploy new versions independently to any environment (i.e. Test environment, UAT environment, and Production environment) |
| FBA Search Box |
| The FBA Search Box is a smart drop down style control that automatically suggests matching records based on flexible criteria. |
| For example find customers by typing in any combination of phone number, postal code, first name, last name, address, e-mail address, customer number or any other field. |
| Custom Fields |
| This is a plug-and-play component which provides custom fields and values for any data element in an application. |
| The developer simply adds it to a screen and sets some information about linking the custom fields and that’s it. |
| For example, you may want extra fields related to an employee. The custom field component on the employee management screen would let you add a “nick name” field for example, or any other field you wish – no extra programming required. |
| For each custom field, you can specify a data type, a display format, or even a dropdown list. |
| Customizable Grid Layout |
| Each user can customize the layout of any grid in the application and save as many of the layouts as they want. |
| File upload/download |
| This is another plug-and-play component that can be dropped on any screen to provide instant file attachments to any data element in an application. |
| It makes it very simple for the user to add file attachments to a customer order or to service orders or even to an employee record. For example, you can add a scanned document of an employee’s application or reference letter to the employee record. |
| File upload/download activity is automatically audited and subject to the user’s security permissions |
| Notes |
| Again, this is a plug-and-play component that can be dropped on any screen to provide the ability to add multiple notes to any database entity. |
| For example, the notes component could allow a user to enter interview notes associated to an employee record. The record will have a date and time stamp and the name of the user who entered the note. |
| Of course, all these note records also automatically get audited and are subject to the user’s security permissions. |