Evaluate behavior limitations when migrating from GDC

With the GDC, your application is an executable running on a front-end PC, and is therefore bound by the rules of what an executable can do within the operating system.

With the GBC, your application is running inside a browser, and is therefore bound by the rules of what Web pages can do inside a browser. As the Web browser is more vulnerable to intrusive attacks, you need to consider how much control you have over the accessibility and security of this environment. If you find the browser too restrictive, consider what a malicious Website would do if it could:

  • Complete a file transfer without user permission.
  • Perform front-end calls to your disk.
  • Access APIs on your system.
  • Print immediately to the local printer

This section recommends ways to perform these tasks securely.

File transfer

File transfer in GBC is not transparent. The browser requests user permission before downloading anything on the client side.

GDC front-end calls

Calls by the front-end that access the desktop file systems (disk) are not supported. Check the available front-end function calls for GBC in the Built-in front calls section of the Genero Business Development Language User Guide.

The alternative is to write your own front-end call in JavaScript. For more information see the Implement front call modules for GBC topic in the Genero Business Development Language User Guide.

GDC embedded APIs

APIs such as WinDDE, WinMail, and WinCOM - used for data exchange and communication with Microsoft™ applications - are not supported by GBC.

The alternative is to use the server-side Java API solutions for Microsoft documents, such as those provided by Apache. For more information, see the topics about the Apache POI framework in the Java interface section of the Genero Business Development Language User Guide.

Printing to local printer

Printing immediately to a local printer is not supported. The local printer must first be registered on the server and print commands must originate from the back-end server.

As an alternative, select File > Print from the browser.

Keystrokes

Some browsers may not allow some or all keystrokes to pass through to the application. It is possible (as in the case of tablets and smartphones) that the device does not perform keystrokes. You should review your sources and review your dependencies on keystrokes. For example, use ON ACTION instead of ON KEY.

It is also recommended to review the text messages displayed on the screen. Consider the following message:

Press <ENTER> to continue 

If you have messages like this displayed on your screens, you may need to rewrite the message.

License count

Our intent is for your GBC to use the same number of licenses as a desktop application. However, there are two cases where you may observe a difference:

  1. If you close a browser tab or a browser window, it may not be able to send a signal to the fglrun process to stop. It will continue to consume a license until a timeout period (default 5 minutes) is reached.
    Note:

    The same is true if you close the GDC by killing its process; however, it is more probable that a user will close a browser tab than kill a GDC process.

    If you have a user license with either a low number of licenses or you run close to your limit of user licenses, you may need to add extra licenses to lessen the chance of running out of licenses. If you have a CPU license, this is not an issue. For more information on types of licenses, see Multi-user Licensing in How Genero Licensing Works.

  2. Starting with GAS 4.00.1, GAS 3.20.20 and GAS 3.10.19, for Genero Browser Client (GBC) applications, one license is consumed per browser. For example, if you have multiple applications started on browser tabs, one license will be used; no additional licenses are consumed when an application is started by a RUN or a RUN WITHOUT WAITING request.

    Prior to GAS 4.00.1, GAS 3.20.20 and GAS 3.10.19:
    • If you type an application URL into a browser or click on a link, there is no way of matching that up to an existing Genero program running in a browser and/or on the same PC.
    • We can identify when a program has launched another program using a RUN or a RUN WITHOUT WAITING (or StartMenu) command; this results in the same license being used with no extra consumption of licenses. If you use a third-party menu system, however, you may find that your license consumption increases if users run multiple programs.
    To avoid these limitations, we recommend you upgrade to the latest version of the GAS.

For more information, contact your local sales office.