About Mongoose-based applications

Structurally, Mongoose-based applications are constructed as a three-tiered set of data: a database tier, the middle (IDO) tier, and the client tier. This topic is a high-level overview of Mongoose-based applications and the multi-tier application development process.

Database tier

The database tier consists of a set of databases that control or process the various types of data required to construct and use a Mongoose-based application. This tier consists of three basic databases:

Note: In current practice and cloud implementations, these three databases are now typically combined into a single "all-in-one" database. But the basic architectural concept remains the same.
  • An Objects Database contains the definitions of the IDOs (Intelligent Data Objects) created for and used by the application.
  • A Forms Database contains the specifications for forms and form components, including validation procedures, scripts, variables, and other objects. The client tier then retrieves and interprets the specifications at runtime to create a form.
  • An Application Database contains the primary data maintained by users of an application. In an inventory application, for example, the database might contain product numbers and quantities. By default, an Application Database contains stored procedures supporting Mongoose functionality, user-defined data types, and tables for storage of administrative information, such as user names and passwords.

Middle tier

A middle-tier IDO (Intelligent Data Object) consists of a set of properties, one or more of which constitute the IDO's identifier or key.

For example, a customer IDO might consist of the following properties:

  • Customer ID
  • Customer name
  • Customer address
  • Credit limit

Since each customer has a unique Customer ID, this property could serve as the IDO's identifier.

A collection is the result set returned by an IDO. For instance, a customer collection might consist of zero or more rows containing customer information. Collections can be retrieved, navigated, and updated.

In the simplest case, an IDO corresponds to a relational database table, an IDO item corresponds to a row in the table, and an IDO property represents a column in the table. In more complex cases, an IDO can map to parts of multiple tables, and some properties might not have corresponding columns.

A collection can be used in any of these ways:

  • As primary collections
  • As secondary collections
  • As subcollections

For more information about using collections with forms, see About forms with collections and About forms with subcollections.

Client tier

Forms are the basic units of the user interface. A form displays in a window that implements a graphical user interface for a part of the application. A form contains within it one or more form components. Components correspond to controls or fields on the screen, such as text boxes, buttons, check boxes, drop-down lists, grids, charts, graphics, and so forth.

In a standard data maintenance application, a form is bound to one or more collections (though forms can be created that are not bound to any IDO collections). Each component might be bound to a property of an IDO from one of the form collections. Or a component might be bound to a collection itself. Forms can also include global objects, such as variables, validators, strings, scripts, and other objects whose operation affects more than one form.

For more information about using collections with forms, see the Related Topics links.

Mongoose-based applications store these UI objects in the Forms Database. When an application is deployed, you can use the functionality of both web-based clients and Windows-based clients to customize forms, components, and global objects (including building new forms). These customized objects are tagged as different versions and are stored in the Forms Database.

Development process

This is the basic process to build a Mongoose-based application:

  • Plan, plan, plan!

    Decide how you want your application to look and work. Plan what databases you are going to need and how they must be set up. Good planning up front will save you immense amounts of time later.

  • One site and its required databases is set up at installation. You can add other sites to the current site's database through the Site Management form.
  • Use the Configuration Manager to set up a development environment, including creating databases and a development tools login. A tools login automatically has Vendor Developer editing permissions in Windows client. Thus, objects you develop in Windows client are saved as Vendor Default versions in the forms database.
  • Optionally, if you want to run and test forms locally, you can use the IDO Runtime Development Server (IDORuntimeHost.exe). If you decide to use this tool, make sure you have the framework services configured properly. For more information, and the appropriate procedures, see the help for the IDO Runtime Development Server utility.
  • For each IDO you need for your application, use the Data Maintenance Wizard to construct the basic tables, IDOs, and forms. In each case, you will also need to modify and further develop the basic elements after they have been created.
  • Use the Windows client Design Mode (or Web client Designer) to finalize your application interface. For example, you can build the Master Explorer for your application, and you can test and diagnose problems by running forms.
  • Once you have your application developed and working properly, deploy your application and distribute it to your users and/or customers.

This is a greatly simplified version of the process. To gain a deeper understanding, we recommend that you take advantage of the training courses; explore the videos available on the Mongoose portal; and make liberal use of the online help that is available for virtually every aspect of Mongoose-based application development.