Release 10.1A: OpenEdge Development:
Progress Dynamics Administration

> ## Mechanisms for static object generation

> Progress Dynamics allows you to generate a complete physical representation in the 4GL of an abstract object defined in the Repository. You can then compile and deploy the object in an executable form on the client that does not require Repository access in order to render it. Generating static equivalents of dynamic objects retains your ability to quickly design and prototype an application using the Dynamics Repository and application accelerators. At the same time, it eliminates the performance bottlenecks inherent with rendering these objects from the Repository at run time.

> ##### Understanding the two static object generation mechanisms

> Dynamics provides two ways to generate static objects from Repository definitions:

> - Saving dynamic objects as static objects from the AppBuilder main window — This Dynamics save as static object mechanism allows you to save a static equivalent of a dynamic Progress SmartDataObject or Progress SmartDataViewer™. (No other dynamic objects can be saved this way.) When you have one of these dynamic objects open in the AppBuilder, the Save Dynamic Object As Static menu item appears on the AppBuilder File menu. You can choose this menu item to save the open dynamic SmartDataObject or SmartDataViewer as a static object. This type of static object works exactly like its dynamic equivalent, including the ADM processing and properties management, except that all of the properties required to render the object at run time are specified in the 4GL and therefore require no Repository access to obtain them. These save as static objects become completely independent of the original dynamic objects from which they are generated.

> - Invoking the 4GL Generator tool from the Administration main window — This Dynamics 4GL Generator mechanism allows you to generate static equivalents of any selection of dynamic objects, except for SmartBusinessObjects and Dynamics Web objects. You can make the selection of one or more objects to generate and generate them by choosing the 4GL Generator menu item in the Deployment menu of the Administration main window. This type of static object works differently from its dynamic or static ADM equivalent. For example, while the object specifies the properties required to render it in the 4GL, it manages these properties differently from the ADM property management generated for save as static objects, and processes the object in a manner designed to maximize performance. These generated-4GL static objects are essentially static overrides of the original dynamic objects from which they are generated, and they effectively share the same registration status.

> Both mechanisms eliminate the need to access the Repository for object rendering information. However, both types of static objects still depend on some access to the Repository in order to participate in the Dynamics security model. Also, while it is possible to modify the 4GL for static objects, you generally modify the generated-4GL equivalents through the original dynamic object using Dynamics tools rather than editing the generated 4GL directly. No changes that you make directly to the 4GL for either type of static object can be automatically reflected back in the Repository.

> ##### Choosing Dynamics save as static objects or generated-4GL static objects

> The only two dynamic objects you can generate using both mechanisms are the SmartDataObject and SmartDataViewer. So, you only need to choose a mechanism for generating static objects for these two classes of dynamic objects. Because they work differently, your choice of what mechanism to use depends on your working priorities and requirements.

> The save as static object mechanism produces an ADM-compatible 4GL procedure that you can edit in the AppBuilder using the properties and section editors, exactly like any static Dynamics object that you create using the AppBuilder. Because it is an ADM object, it can integrate smoothly with any Dynamics container, static or dynamic. This also means that, as a static object, it performs with the same performance characteristics as any static ADM object of its class. The performance of save as static objects might be better than their dynamic object equivalents, but their primary function is to change the development model of an object from dynamic 4GL to static 4GL. For more information on the function of Dynamics save as static objects, see OpenEdge Development: Progress Dynamics Basic Development .

> The 4GL Generator mechanism produces a 4GL procedure with no reference to the ADM. You can only edit the 4GL for this type of object in the procedure editor or other text editor.

> Note: Progress Software Corporation does not support direct modification of the 4GL generated using the 4GL Generator.

> A generated-4GL static object functions and interacts with other objects in a similar manner to its static ADM equivalent, but because it does not rely on the same internal ADM property management and processing models, it is likely to perform much more efficiently than the static ADM equivalent. Because of the way dynamic objects are cached on the client after retrieval from the Repository, you can only run generated-4GL static objects in a generated-4GL container object. In general, the 4GL contained in generated-4GL static objects is optimized, as much as possible, for maximum performance, and Dynamics also manages these objects with performance optimization in mind.

> Most of this chapter describes how to use the 4GL Generator mechanism. However, the following section describes the basic features of working with the save as static object mechanism.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095