The metadata-driven development model for building Enterprise Applications is an architecture that primarily enables the creation of ‘Futureproof’ business applications. What makes this possible is the approach where all the design elements of a web application, including the form interface, fields, tables, grids, tabs, controls, layout, business rules etc, are defined in metadata like XML or JSON. You then have a runtime rendering engine or application browser engine that consumes this metadata and renders the applications User Interface dynamically.
This approach or architecture for building enterprise web applications is very mature today, and cloud based application hosting vendors likes SalesForce.com have their cloud architecture based on such metadata driven models, which you can review here. Platform companies like Microsoft have also been proposing such Metadata driven architecture patterns for developing Enterprise Scale web applications for a long time now, which you are review in this Microsoft article.
The ClaySys AppForms development platform was envisioned and designed from its very inception, to be based on a metadata driven architecture. The schematic below highlights the key benefits when leveraging the metadata driven model for creating an application development platform like ClaySys AppForms.
The key advantages of this architecture as highlighted above are explained in more detail below;
In this approach when you design an application artifact like a Form, everything you layout in the designer is generating its related metadata, and at the end of a design cycle, there is a metadata file in XML or JSON that is generated, which contains the definition of everything designed. So by no compilation, what we mean here is that any functionality designed can be immediately previewed and/or published to make it available to the end users or testers.
Since the design process in interactive and WYSIWYG, every action or change by the designer can be immediately previewed or tested, without needing any compilation or deployment process. And the review can also be done before saving or publishing the changes, which makes it an interactive development environment, for designers to create functionality in an iterative manner.
Since every published artifact for the web application being designed in a metadata file, every time any changes are made, the historic versions of the metadata files are maintained. This enables easy version control and rollback when necessary. What this mean is that every time a change is made to a Form or any artifact of an application, the prior version that existed is archived. So as and when you need to rollback to the prior version, it can be achieved through a single click of a button.
Since the ClaySys AppForms platform was designed to create Enterprise scale applications, the functionality for defining User Access permissions and setting access controls to granular elements of an application are supported. You can set access control to the individual screens or forms of an application, with Create/Read/Update/Delete (CRUD) permissions set at the form or screen level, or you can go deeper and set permissions to the individual form elements itself, like fields, buttons or other controls.
The ClaySys AppForms product is designed to enable creating the entire front end of a web application, including its forms, business logic or rules within forms or across forms, and the connection of the individual forms to their datasources. A Datasource is simply the end point from where the forms are reading the data or writing back the data. Today, with the metadata architecture, we support the front end forms connecting to and working with SQL Server, Oracle, Web Services, RESTful Services, SQL Azure, Azure Table, SharePoint, Office365 amongst others. So you can literally create a single form, and have it connect to multiple datasources to meet your functional requirement.
What makes the metadata driven model create future proof applications is the basis for the core benefits of this architecture. Typically a metadata driven application platform like ClaySys AppForms has the Designer that generates the XML or JSON metadata, and then there is a Rendering Engine or Application Browser that consumes the metadata and renders the User Interface and working application. As the Designer and Rendering Engine are upgraded to newer versions, backward compatibility is maintained with the metadata supported by prior versions, so all future versions of such products can continue to render functionality created by prior versions of the product. A good similar example is Microsoft Excel, where each configured Excel spreadsheet is maintained as an OpenXML file, and the Excel runtime renders the OpenXML into the functioning Excel spreadsheet. You would have noticed that every time you upgrade Excel to its latest version, or old Excel files created in historic versions of Excel simply continue to work.
In the traditional application development model, for example when developing in C# or VB, in Microsoft Visual Studio, you first code your application, and then Visual Studio compiles your source code into the executable. Your sourcecode also has a dependency on the .Net Framework that it was written against, which means that you maintain such an application, you have to ensure that you are always working with the most current sourcecode, and every time Microsoft upgrades the .Net framework, you have to go and rewire your code to work with the latest .Net Framework. In the metadata driven world, the metadata created in the actual input to the rendering engine, so there are no abstracted source code or intermediary layers.
The benefit of the metadata driven architecture is that a lot of the deep internal plumbing that makes a web application work are abstracted away by the Designer Tool. The Designer uses a Declarative approach towards enabling configuration of the application being created. This approach significantly improves the productivity of the application developer or creator, as they can create functionality 6x to 8x faster than it would have taken them to create the same functionality in the traditional coding paradigm using C# for example.
The metadata driven model for building applications allows an Enterprise to deploy multiple applications on the same hosting infrastructure easily. Since multiple applications are sharing the same Designer and Rendering Engine, the only difference is the metadata that is created unique for each application. So a common server farm and database layer can be used to deploy a metadata driven platform like ClaySys AppForms, after which multiple individual and independent web applications can be deployed on the same shared infrastructure.
In the metadata driven application development model, the designer is working at a higher level of abstraction and does not need to understand low level programming language syntax, semantics or patterns, which makes it significantly less complex to understand. Therefore users will non-technical or non-programmer skills can work on creating functionality or applications using metadata driven platforms like ClaySys AppForms.
So in conclusion, if a metadata driven platform meets the functional capabilities of the envisioned business application, it is clearly the way to go, to create a business application that is required to exist for the long term.