MetaGenesis: The MetaCode CDE

Information on this website is aspirational not functional.

The goal of MetaGenesis is to help programmers, designers and developers, build web applications quickly and easily, while supporting participation of all team members.

We consider MetaGenesis a "Meta-Framework" or a "Meta Code" CDE rather than a "No/Low Code" IDE.

What is a "Meta Code CDE" ?

A Meta Code CDE is a Cloud Development Environment where:

What is MetaGenesis" ?

MetaGenesis at it's core, is a Cloud based, software development environment that allows programmers to write and collaborate to build web applications..

It is designed with developers in mind, but can be used by teams that include product and project managers, UX experts and others. It is a forms based tool that helps develop and document the project. MetaGenesis accelerates the software development, while still allowing programmers the ability to choose the technology and to easily modify the resulting application.

In addition to typical IDE functionality, MetaGenesis provides HTML and SQL scanners and replicators. These allow the importing of existing code, and provides the ability the reuse the code in a number of ways.

A key difference between this Meta Code CDE and No/Low Code IDEs is MetaGenesis allows non-technical team members to participate and increases the productivity of developers, where No Code IDEs replace the developers with non-technical teams. Here are the similarities and differences between a Meta Code CDE and a No/Low Code IDE:

Meta Code CDE

Low Code IDE

Enables non-technical domain experts to participate in defining the application. Same. Some IDEs replace the technical staff.
Increases programmer productivity and puts/keeps them in control of the technology. MetaGenesis generates commented source code that is easily understood, and can be copied an customized. Replaces most of the technical work with a technology stack chosen by the IDE vendor.
MetaGenie does not provide GUI tools, but allows front end developers to continue using their current tools, GUI or text based. We leave the UX development to the UX experts and their favorite tools. Provides a GUI or tools for non-programmers to build the entire application. Many offerings restrict client side development to their own tools.
MetaGenie accelerates front end web development by supporting forms and form layouts. Typically a developer creates a sample/template form, using their favorite tool with their desired style and layout. It is then imported into MetaGenie, which separates the "Look/layout" from the form fields. Development proceeds with more forms being defined and the metadata being added (form name, action, method fields, validation...). Finally the forms are rendered to HTML (at run time). Forms are often built one at a time with a GUI.
We currently support one technology stack (Java Web or Application Server, MetaSQL ). MetaGenesis is designed to support many technology stacks in the future. Most offer one or two technology stacks.
The client side is created by the programmer, with some assistance from MetaGenesis for forms. It is supported by the Meta Language MetaL. Varies by platform, generally not as customizable.
Easy customization on the server side. All servlet templates are provided as source code and can be easily modified to create new functionality. Once modified they become a new template and MetaGenie generates a new form to manage the template, thus your template becomes part of (your view of) MetaGenesis. (Very meta meta.) Varies by platform, generally not as customizable.
Deploy on a host of your choice. Host on platforms compatible with the technology stack. Some vendors require hosting on their service.

MetaGenesis is about Functional or Requirements based Application Development. It captures the requirements creating a metadata set that can be used to generate the server side of the application and potentially part of the client side.

MetaGenesis Components

MetaGenesis encompasses a lot of technology, here is a quick overview. We call the entire framework, including the technology stacks MetaGenesis. The web application (metagenesis.org) will be a SaaS platform that we refer to as MetaGenie. Here are the main parts:

What the components do and how they work together.

Starting on the client side a MetaGenesis application consists of standard HTML, css and JavaScript, along with MetaL "directives".

MetaL:

MetaL (for Meta Language) is intended to be very, very... simple. Essentially it is variables and about a dozen elements or directives.

Variables:

Directives

Directives are coded similar to HTML elements, starting with < and ending with ;/>. They include a type (see below), a name and optionally a url style parameter string.
For example: <mg-FORM:formName?formID=$formID&firstName=$firstName;;/>

The main directives include:

The directive type and name refers to information the developer has specified in the MetaGenie app.

A typical HTML/MetaL example:
<div>
<mg-QUERY:myQueryName?myID=$Session.myID;;
REPORT:myReportName;/>
</div>

Using MetaGenie the "developer" would add the query to the meta data specifying (in a form) the database, table, conditions, operation (SELECT, COUNT, DELETE), limit, etc. Then the user would define a report which is simply the HTML/MetaL to present the query results.

MetaLSrv

MetaLSrv (MetaL Server) is a target app runtime component that replaces the MetaL variables and executes the directives.

MetaGenie

MetaGenie is the web/SaaS application that is used to manage both the metadata and code. Metadata management is forms based and code management is through an online code editor.

MetaGenie functional highlights:

MetaGenesis Libraries and Templates

MetaLib

MetaLib is a core MetaGenesis library that supports both MetaGenie and the resulting web applications.

MetaSQL

MetaSQL is a OO SQL Java library that provides a Java interface to SQL databases. It includes classes like SQLConnection, SQLCredentials, SQLDatabase, SQLPool and SQLQuery. It is used with an SQL table class plugin and sometimes additional metadata. MetaSQL supports NoSQL in that SQL tables can have columns that are custom Java classes (documents). What sets MetaSQL apart from other persistence libraries is the business/table classes are inherently persistent. Meaning they all have instance methods like insert(), update(), select(), delete(), persists() and static/table methods like SELECT(sqlQuery), COUNT(condition), DELETE(condition).

MetaPlugin

MetaPlugin is a Java code template library for
  1. Servlet Templates
  2. Table Class Templates

Legacy Conversion Support

MetaGenie has import features that help support migration or modernization of legacy applications.

Forms Import: MetaGenie support importing forms from legacy applications. Point MetaGenie at the website and it will scrape the site and extract both the form metadata and the template.

SQL Import: Point MetaGenie at a SQL database and it will extract the metadata for all the tables. It will then generate a Java class for each table providing Java access to the legacy database.



This site is parked.
MetaGenesis.org an iClick.Media publication