Data Centric Development Framework
An application framework consists of software used by developers to implement the standard structure and base functionality of an application for a specific development environment and/or application needs. Developers usually use object-oriented programming techniques to implement frameworks such that the unique parts of an application can simply inherit from pre-existing classes in the framework.
Through our experience on facing requirements while building data centric applications for clients, we found out that there are common used constructs and need for utilities. So we started gathering the tools and libraries we had built around, created new modules, classes and components and modified them so they could work together. Finally something came out of this; a development framework that could support almost all the base functionality we needed and the consistency we wanted our products to have.
Our framework is a software development framework, fully object oriented and data centric, for the Delphi development environment that targets the Win32/64 platform and SQL RDBMS. It is designed for rapid application development and focuses on efficiency, usability and consistent functionality of the final product.
User experience, with intensive all day work on data entry and query forms, is among the targets of this development framework, which provides a well balanced UI that helps user productivity. The framework provides forms and data modules with common functionality for almost every kind of data, utility dialogs for every day user work and common behavior of UI and controls.
Combines together many tools, functions, components and user enhancements in an environment that most of its functionality is almost out-of-the-box, helping the developer to rapidly create the base of consistent data centric applications and then focus to the specific requirements of the user i.e. business rules and further UI enhancements.
The main technical features consist of an MDI project template, base form/report classes and data module classes, all with integrated functionality that can be customized via inheritance, component events, virtual methods and class functions. It also contains application and user configuration modules and a lot of tools, dialogs & components that act at runtime in conjunction with all main classes of the framework.
Following is a small non-exhaustive descriptive list of the framework’s main features:
User Authentication
User authentication can be set by groups of users and authorities can be granted or denied for form or application defined procedure level.
Data features
Supports
Application Desktop - MDI Environment
The application desktop is an MDI controller form class with user customizable main menu and sidebar.
Each user form works inside and controlled by the main application form. User can activate, deactivate, hide, minimize, arrange and switch between client forms inside the application desktop.
Common User Access
The framework adopts this
Lookup & Select
Wherever a reference to a field is required user can activate a helper window that let him search and select a value for this field, i.e. when a customer must be selected for a purchase order the user is presented with a list of available customers in a fully customized data grid. Features of filtering grid data and quick locate column value are available also here as almost in all other data grids.
Data Grids
Data grids are extensively used in many places of the application framework. Data entry forms, query results, lookup&select are some of them. Data grids can be customized in many ways such as visibility of columns, column grouping and summaries. They support common actions like filtering, locate column value, print as is and can be exported to html, csv, xml or text.
Data Filtering
Filtering is a must have for every serious data centric application. When dealing with large amounts data filtering is an essential way to isolate and easily locate those of interest. The framework has extensive support for filtering with multiple different filters per dataset which can be application and/or user defined.
Dynamic data panels
Dynamic data panels can present data from a dataset record via dynamically created and/or runtime designed controls. Design specifications of the data panels can be saved for runtime reusability. As long as data logic is separated from the data presentation, a single form class which features dynamic control creation is enough and gives consistent UI experience.
Context Sensitive Popup Menu
Popup menu is a feature widely used in Windows and the framework utilizes this feature with context sensitive popup menu on its forms and user dialogs. It helps user to select from available actions on a form by just right clicking on it.
Form Menu
Each form has its own menu with all the available functions that are defined by the application. The menu supports floating and dockable bars and is fully customizable.
Edit record template
Base form class that supports editing of a single database record in a data panel which can be dynamic. Can also be used as generic record editing form.
Browse/Edit file template
Browse base form class that supports browsing database tables, queries and dataset results in a data grid. Features filtering and all data grid functionality except editing. Can also be used as generic dataset browsing form.
Edit base form class much like Browse file template that supports editing multiple database records in a data grid. Features data filtering, and all data grid standard functionality. Can also be used as generic dataset editing form.
Reporting template
Base report class that support consistent reporting features and functions along the application. User can preview reports, export report to various formats, change printer settings and define font sets for specific reports.
Query executor
Utility to build and execute queries against the data base. Results are presented in a data grid with capabilities like browse file and also can be used by Report Generator. Query definitions can be saved for later use and can also be parameterized.
Report manager
Reporting utility that features runtime report designer, save and load reports, custom layouts and reports based on user defined queries or datasets derived by the application like the ones manipulated by a Browse/Edit file templates or produced by Query executor.
Chart generator
A chart generating form class that can get input from any application dataset and produce on the fly charts (pies, bars, lines etc) on screen and printer.