RAD framework overview

Overview

In most cases the user interface of any business application consists of two types of views: list view and detail view.

  • The list view usually displays a listing of some business entity (e.g. customers, orders, contracts, invoices) and allows standard operations, such as creation of a new entity, editing an existing entity, deleting an entity, printing entity details, etc. Generally, a grid component is used for list views.
  • The detail view shows detail information of a selected entity and allows the same standard operations as the list view. Mostly, a dialog window is used for detail view.

In spite of an apparent simplicity of development of user interface for a custom application, this process is known as quite a tedious task, and takes a considerable amount of time and resources.

Applications often look inconsistent and buggy (and behave in this fashion!). A same (from user’s point of view) bug may exist (and therefore should be fixed separately) in dozens of places.

Any developer is being confronted with these issues every day.

To address this generic problem, we have developed a special Framework – a set of core application classes – which reduces amount of time and resources spent on custom development, and improves the quality of the end-product.

 

Development History

More than 9 years we are evolving our RAD Framework together with development and support of enterprise business solutions for Manufacture, Financial, Law, Healthcare, and Government industries. The currently supported target platforms are Windows Forms, Web /ASP.NET 2 and Silverlight.

Web WinForms Silverlight
Used since Since 2002 Since 2005 Since 2009
Supported Databases SQL Server and Oracle SQL Server and
Oracle
SQL Server
UI Controls Infragistic Web Grid, Component Art DevExpress (Grid, Reports, toolbars, etc) Microsoft controls
Reporting tools MS Reporting Service, MS OLAP office web
controls
MS Reporting ServiceDevExpress Ad-Hoc ReportingDevExpress Pivot
Table
MS Reporting Service
Integration Microsoft SharePoint portal Microsoft Outlook (client side synchronization)
Screen shots
Selected Projects
  • ERP system for mid-size manufacture
  • CashFlow system
  • Document Management system for government
  • CRM For financial and law industry
  • ERP system for mid-size manufacture
  • HR Database management
  • Issue Tracker
  • HR Database management

 

Key Features

The framework classes are responsible for

  • displaying list and detail views,
  • error-handling,
  • logging, and
  • reading and writing data from and to database

Special “auto edit form” automatically creates and lays out controls for editing of the entity attributes.

Developer can easily override default layout or even mix “auto layout” areas with custom created ones.

To provide a list and detail view for a business entity, a developer may either use framework’s base class (which is quite adequate for fast prototyping or even as a final solution for simple entities) – or – use them as a base class to inherit from, and build a custom one.

In this latter case the developer is freed from the tedious routinely task of transferring data between entity and form, validating data, control placing, etc.

The Framework is based on XML metadata that describe business entities and their attributes, look and behavior of the list and detail views.

The metadata include description of:

  • Main application menu
  • Business entities
  • Entity attributes
  • Application reports
  • User-friendly error messages

Metadata are easily extensible and allow “assembling” application from parts by adding new business entities and describing or refining their behavior.

The Framework has special data-access classes that wrap all database calls and allow working not only with MS SQL Server but with any relational database (Oracle, DB2, Access, etc.)

The Framework has described classes to work with MS SQL Server Reporting services and may be easily extended to work with any other reporting tool.

The Framework has implemented a built-in security mechanism that allows for both vertical (which user may see and edit what entities) and horizontal (what set of rows is available to the user) security.

In conclusion, use of the Framework gives the development the following advantages:

  • It keeps all business entity and attributes’ properties (which are frequently subject to change) in one place. This place may be located on the server even for Windows-based applications.
  • It has all transaction and locking-related code in one place to avoid multiple implementations of the same logic.
  • It allows building applications on <more convenient> database objects rather than direct tables, and supporting “logical” relations and constraints rather than exclusively physical ones (those defined in the database).
  • It helps to avoid tedious and seemingly endless work of setting properties of grids and many other interface objects.
  • It drastically simplifies localization of the UI.
  • It provides the standardized way of all SQL processing. This allows easy replacement of all direct SQL calls with the Web Services invocations and adapting application to other DBMS systems. Additionally, it greatly simplifies error logging and handling.
  • From GUI standpoint, it gives a flexibility of showing business data by using standard ready-to-use components, or easily extending all of them in one shot in case there is a need of some specific functionality.
  • Since a huge chunk of functionality is ready “out of the box”, it allows for lightning-fast prototyping of changes required by user and even new applications.
  • It is reusable in other Windows and even Web-based applications.

With Fulcrum’s RAD Framework the time we spend on development of a uniform in looks and feels business application is much smaller compared to other software shops without any loss in quality of the end-product!