Developing Mongoose-based applications

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:

  • The Objects database contains the definitions of the IDOs (Intelligent Data Objects) created for and used by the application.
  • The Form database contains the specifications for forms and form components, including validation procedures, scripts, variables, and other objects. WinStudio retrieves and interprets the specifications at run time to create a form.
  • The 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 WinStudio 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.

Client tier

A WinStudio form is a window that implements a graphical user interface for a part of the application. A form contains 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, and graphics.

In a standard data maintenance application, a form is bound to one or more 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.

WinStudio stores these objects in the forms database. When a WinStudio application is deployed, the developer can use WinStudio functionality 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

To build a WinStudio application, you follow this process:

  • Use the Mongoose Configuration Wizard to set up the required basic databases.
  • 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 WinStudio. Thus, objects you develop in WinStudio 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.
  • Create a data model and use the SQL Server Table utility to build the table or tables for the IDO. At this time, you can write any needed stored procedures related to the IDO. You can later alter the schema as necessary.
  • Use the IDO development forms in WinStudio to define an IDO that encapsulates the table or tables, and optionally define methods on the IDO, which can map to stored procedures. You can add custom code to the IDO. The code will be retained during any future regeneration of the IDO.
  • In WinStudio, use the New Form Wizard to generate initial versions of forms.
  • Use WinStudio 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.

You can also use the New Form Wizard to create a form as an extension of an existing form.

Alternately, you can use the New Data Maintenance Wizard to generate your SQL table, IDO, and form all at once.

Related topics