Home Development of Websites Designing Web applications using Data Management System (based on scaffolding technology)

Designing Web applications using Data Management System (based on scaffolding technology)

by admin

In previous article I talked about why I think it’s inefficient to develop using Content Management System. In this article, I’m going to talk about the approach I use to build web applications.

CMS alternatives

In the comments to the previous article, there were suggestions to use the Content Management Framework instead of the Content Management System. This does allow for much more flexibility in designing your web application architecture, but is more resource intensive.
I suggest an alternative in the form of Data Management System.
Before we continue, we should distinguish between Content Management System, Content Management Framework, and Data Management System.
In this article, by Content Management System I mean a system which has its own defined database structure and set of subject matter objects.
By Content Management Framework I mean some set of classes and methods that help automate data handling at the program code level.
By Data Management System I mean a standalone web application that provides data management capabilities. In this

Specifics of the data management system approach to development

When developing with a data management system, there is an architectural division of the project into several independent parts: database, frontend and backend.

  • Frontend – part of a web application which in most cases includes a large number of screens with a variety of designs and user interfaces)
  • Backend – part of the project, which in this case doesn’t require a separate development and is just the data management system.
  • The database – is highlighted separately, because in contrast to the approach using the CMS contains a clean structure that reflects the subject area. Thus, there is no need to store foreign tables in the database, as is usually the case with WordPress, Joomla and other CMS.

Note also that we don’t need to create a user interface for each project and implement the CRUD logic (create retrieve update delete – create read update delete), because this functionality is provided by the data management system itself.
The key functionality on which the Data Management System is based is scaffolding. Scaffolding is a technology supported by some MVC frameworks, which allows using an additional description (e.g. class attributes) of the data schema to build an application which supports CRUD-functionality of interaction with the database. One of the projects that is actively using this technology is Ruby on Rails. Other systems which use scaffolding include ASP.NET Dynamic Data(.NET) and Django(Python).
So, in general, the data management system is based on :

  • Scaffolding System Core is a scaffolding system that allows you to dynamically build a user interface based on subject area classes.
  • Data UI Controls, a set of user interface controls that are used by the scaffolding system;
  • Data Description Specification – a set of rules by which the subject area classes are augmented with attributes that help the scaffolding system to build the user interface more accurately.

Designing Web applications using Data Management System (based on scaffolding technology)

Building a web application using DMS

The design process using DMS can be described as follows :

  1. Database design
  2. Creating subject matter classes using ORM (Hibernate, EntityFramework, other object-relational mapping system).
  3. Adding attributes to the subject area classes (For example, a text field in a database can be rendered in the user interface as: a plain text field, a multi-line text field, WYSIWYG editor).
  4. Frontend part development (the web application itself)
  5. Backend development, which comes down to configuration and, if necessary, customization of Data Management System (in most cases, no customization is required to implement CRUD model).

Below is a schematic of how the various components of the project interact.
Designing Web applications using Data Management System (based on scaffolding technology)

Limitations when applying the Data Management System

There are some limitations in the case of applying a data management system

  • There is no way to share access rights to specific table entries. However, this problem can be circumvented in two ways if necessary :
  • The first is to add the necessary logic to the data sampling mechanism;
  • The second is to create a customizable form to handle data that requires complex permission checking.

  • The need to add attributes to the subject area classes to build the user interface more correctly.
  • Benefits of using DMS

    When we use a data management system, we get the following benefits :

    • Complete separation of Frontend and Backend parts of the project;
    • creating and maintaining a "clean" database structure;
    • Quickly obtaining CRUD data management functionality.

    Practical application

    In my practice, I use a data management system built around components such as :

    • ASP.NET Dynamic Data;
    • Extended set of user interface controls;
    • Attribute specifications used in describing domain classes;
    • A set of attributes, base classes, and interfaces for extending subject area classes.

    In most cases, when I create a web application, I don’t need to customize the data management system. For example, I just need to change the path to the library containing the set of subject area classes – and I can manage a completely different application.

    Conclusions

    Thus, scaffolding technology in conjunction with extended libraries of controls and flexible specification of attribute descriptions and domain classes allows you to build much more flexible and powerful web applications, without the limitations imposed by common Content Management System.

    Links

    These links will be more useful to novice developers than to those who already have experience in building web applications :
    What is scaffolding (English)
    Django
    ASP.NET Dynamic Data
    ASP. NET Dynamic Data – example of use

    You may also like