Enterprise Components




Cotsec Introduction

Introduction

Cotsec is an application generation framework. The Cotsec framework can currently generate:

  • Data editing forms for databases, XML files and properties files
    • J2EE Struts JSPs bound to Enterprise Javabeans (database editor)
    • J2EE Swing applications bound to Enterprise Javabeans (database editor)
    • .NET ASPX (ASP) pages in C# bound to database web services
    • .NET Windows Forms pages in C# bound to database web services
    • Eclipse SWT editors
  • Enterprise Javabeans (EJB 2.0 CMP beans)
  • Website menus
  • J2EE packages such as EARs, WARs, EJB-Jars and CARs
  • .NET bindings to the .NET framework servers

It includes tools that are essential to an application generator including:

  • A templating framework that provides
    • "no code" generator definitions
      (new generators can be constructed without requiring code to be written)
    • Simple textual editing of code templates
    • Template inheritance
    • Template fragment handling
    • Context loader framework that allows programmatic extensibility of the framework
    • Language abstractions (mappings from standardised types to language types such as Java or SQL)
  • A metadata framework that abstracts key information from the application (attribute names, descriptions, user interface control types, etc)
  • Tight integration with the Eclipse editor framework, including metadata editors and editors of key properties for an application
  • Create Cotsec metadata from SQL databases, Java properties files or existing Javabeans

The "Hello world" introductory application introduces many of the concepts behind Cotsec

Cotsec applications are typically generated by:

  • Defining a datamodel within a database using a database modelling tool (or attaching to an existing database)
  • Other data sources include:
    • Javabeans
    • Java properties files
    • XML files
  • Creating a metadata model from the database
  • Generating an application from the metadata

Extract metadata model from database, properties or Javabean

This abstraction of the source of the metadata allows a common editor framework for many different types of data.

The metadata consists of information that is core to any application:

  • Names of attributes (database columns, object properties, etc)
  • Types of these attributes (string, integer, date, etc)
  • Descriptions of these attributes (short descriptions, long descriptions, tooltips, etc)
  • Preferred user interface representations (text box, combo box, tree control, etc)

Note that all of the metadata information above is language agnostic. Much of the information can be re-used for forms, menus and reports.