The Application Shell
The Application Shell is where all all the individual components of the FBA Framework come together. It is the core for any user-interface
built using the FBA Framework. The shell itself contains all the common parts of any application such as the login screen, the splash screen,
the main parent window, the security management screen, the reporting screen, the lookup list maintenance screen and it has support for multiple languages.
The shell is very flexible. There are configuration settings to customize the application to suit any needs. The settings allow you to set
the name of your application which will show in the application title bar. You can configure the menu structures, the icon for the application, the
image to display on the splash screen, and many other customizations.
Lets see how this all comes together.
Starting the application:
When the user starts the application, the splash screen is displayed.
Here you can see an image that represents the application. This is completely customizable. Simply set he name of the image
in the config file and include the image file with the deployment and that's it. The window also displays the
FBA Application Updater server name, the FBA DataLayer server name and the name of the Application in the database. On the right side of the
window, you can also see the release version being run.
After the splash screen is displayed, the application then connects to the Application Updater
server and checks if there is a new release.
If there is an update, the Application Updater displays a progress window and downloads only files that
have been changed in the new release.
After all updated files have been downloaded, the application restarts for the changes to take effect.

Then, the Login window is displayed.
Notice on all the windows above, the title bar shows the application name. This is taken from the application configuration file. The login screen also
displays the name of the application in the title bar. From this screen the user can enter their login ID and password to authenticate themselves. The application
does this by using the FBA DataLayer which maintains a secure communication channel to the application database. This is where the authentication (login) process
occurs and where all data is securely and efficiently transfered to and from the database server. To find out more, see the section about the
FBA Data Layer
The Login screen offers several security features which are actually part of the embedded FBA Security Module. For example, an application
administrator can set the number of failed login attempts before a user account gets locked out. If a user does get locked out, the administrator
will have to go the security maintenance screen to reactivate the account. For more information, see the section about the
FBA Security Module
Once the user has successfully logged in, the system opens the main application shell. The image below is taken from a demo
application developed using the FBA Framework.
The Application Shell window is the container for all the application parts. When
the shell is started up, a few things happen in the background:
- The system loads the list of .NET assemblies that should be dynamically loaded. These assemblies contain all the custom
objects and screens that makeup the specific application.
- The system loads the main menu structure.
- The system loads all the localized UI resources for the user's specified language. The framework is built to support
multiple languages within your applications. It can handle multi-language UI's and multi-language data. For more information,
see the section on Multi-Language Support.
The application shell screen has the following elements:
The Title Bar
The title bar displays (from left to right) the custom
application icon, the name of the application, the release version being run, the name of the logged-in user and the name of
the PC on which the application is being run (and the name of the user logged-in the PC as well.)
The Menu
The menu bar at the top of the window is dynamically loaded from the database at startup. This also specifies which objects
or screens to launch from the assembly list also loaded at startup. This menu structure is also completely localizable and separate
security permissions can be assigned for each menu item.
The base menu starts with menu items used to access all the standard parts of the application such as security for example.
The custom menu items loaded from the database are merged into the base menu to create the final menu displayed to the user.
For example, in the in the above image, the "demo" menu item and all its sub-menu items are custom menu items loaded at
startup. But the "File", "Maintenance", "Window" and "Help" menus are part of the base menu which shows up in all applications
built using our framework.
The Base Menus
The following image is an example of the "File" menu.
From this menu, the user can save changes made to a screen, access the FBA Reporting Module, close the current screen and exit the application.
For more information on the report module, see the section on the FBA Reporting Engine.
The following image is an example of the "Maintenance" menu.
The "Maintenance" menu contains "Change Password", "Security" and "Application Configuration". You can see in the image above
how custom menu items can be merged into the base menu structure such as the "Institution" menu and also how built-in menus can
be hidden such as the "Lookup Maintenance" menu.
From the "Maintenance" menu the user can change their password...
access the security management screen...
access the lookup maintenance screen.
access the application configuration screen.
and access the UI Translation screen.