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.
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.
|Used since||Since 2002||Since 2005||Since 2009|
|Supported Databases||SQL Server and Oracle||SQL Server and
|UI Controls||Infragistic Web Grid, Component Art||DevExpress (Grid, Reports, toolbars, etc)||Microsoft controls|
|Reporting tools||MS Reporting Service, MS OLAP office web
|MS Reporting ServiceDevExpress Ad-Hoc ReportingDevExpress Pivot
|MS Reporting Service|
|Integration||Microsoft SharePoint portal||Microsoft Outlook (client side synchronization)|
The framework classes are responsible for
- displaying list and detail views,
- 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!