Application Development

Minimize Code

Leverage the capabilities of the framework in order to minimize coding, thus maximizing speed of development, extensibility of the resulting application by users/customers, consistency of operation of the resulting application, and ability to leverage new features of the framework in future versions.

Utilize the Productivity UI

Utilize the “Productivity UI” wherever you can. For users who will use the system on a daily ongoing basis, on full screen devices, and for admin UIs that are rarely utilized; use the Grid-Only or MultiView type forms that are produced by the New Form Wizard and the standard features for navigation and filtering and updating data. The way users operate with sets of data will be consistent and efficient, and user and customer changes will automatically work. Only those portions of the UI that are zero training, require special graphical/artistic appeal, or need to be carefully designed for small-format devices need the extra time, work, and maintenance effort involved in not leveraging the productivity UIs. In particular, a UI that is to be presented as a standalone web page will require more work, as it must contain the navigation required, whereas users that will be oriented to the default multi-form frame Mongoose provides will need minimal additional navigation aid. The Mongoose Fundamentals class provides examples of the features and behaviors included here.

Utilize the Core

Utilize the “Core” features of a Mongoose application. For example, the Application Event System can perform tasks like notifying or emailing users, scheduling tasks, etc. and Mongoose provides features like notes, attached documents, and WebService access automatically for any IDO you create. Avoid building your own infrastructure where the framework already provides suitable functionality. Security and many other features are built into a new Mongoose application’s “core” starting databases. To the extent you can leverage the core, you will minimize development and automatically pick up future enhancements to any of those subsystems in future releases of Mongoose.

Utilize the Metadata-based Application Logic

Utilize the declarative (metadata-based) mechanisms for application logic to the fullest to minimize dropping into .NET coding, and when you do, to minimize the amount and complexity of code you need to write:

In the client, for example, in addition to fully leveraging the Validator construct and associated behaviors for handling messaging and focus changes and output from validations, using features like the Set Values and Collection action event handlers and the Enabled/Visible/ Required When expressions can replace writing .Net “form scripting” code.

On the server side, use AES to the maximum extent for implementing the logic for business processes, application logic associated with inserts, updates, and deletes, and encapsulated algorithms that can be executed from the client with inputs and outputs, much of which can be implemented without writing code. When you do write app server IDO Extension Class code, ensure that it can be wrapped and invoked from AES in small loosely-coupled components to the greatest extent possible.

Learn to use the WinStudio keyword interpreter and standard events and event handler response types wherever possible. For example, if you need to make a collection refresh, you can do that by running some form script and using ThisForm.PrimaryCollection. Refresh(). But you can instead use an event handler of type CollectionRefresh, or if there is only the one collection on the form, just generate StdFormRefresh. As another example, you can handle the events that occur when the user does a New, and run code to place default values in components and properties. But it is better to set a variable or property with the default value, and then use P() or V() in the Default Value specification. Examples of opportunities like these to reduce coding are virtually unlimited.

Utilize the Runtime Inheritance Model

Utilize the runtime inheritance model to get the greatest single-point-of-maintenance throughout your application. This means fully utilizing IDO Property Classes and Property Class Extensions as well as the other levels of the inheritance hierarchy.

These best practices offer essential guidance to enhance your processes. For a personalized and thorough implementation tailored to your needs, reach out to Infor Professional Services. Their expertise ensures optimal results for your unique challenges.