GENERO 4.00 (vNext)
Early Access Program (EAP) subscriptions now open
Irving, Texas – March, 5th 2021 – Four Js is pleased to announce that subscription to the Early Access Program (EAP) for Genero 4.00 – referred to previously as ‘vNext’ in the product roadmap – is now open. This release comprises important new features that will improve your productivity and the user experience of your applications. The program itself opens on March 30th when you will gain access to the product packages.
If this is your first time participating in a Four Js EAP, please read the section “What is an EAP?”, where you will learn how to subscribe to this service.
The list of features highlighted in this announcement are not exhaustive. To find the complete list, read the “What’s New” and “Upgrade” sections provided in the appropriate User Guide. The “What’s New” section provides the full list of new features in the release. The “Upgrade” section tells you how to migrate from a previous version of Genero.
Additional features may be added during the EAP, so we recommend frequent visits to the forum.
Universal Rendering
Genero 4.00 inaugurates the standardization of ‘Universal Rendering’ (UR) for all user-interface front-ends.
This important change simplifies the development of new widgets, unifies screen rendering behavior across all types of APIs and replaces the individual native rendering engines provided by Genero Desktop Client (GDC), Genero Mobile for iOS (GMI) and Genero Mobile for Android (GMA). These individual native rendering engines are hereby deprecated in this release. They continue to be supported in version 3.20 and 3.10.
This change will not impact the execution of your application. If you use operating system dependent front-calls, they are fully supported by Universal Rendering.
This change also means your GDC, GMI and GMA applications will now run in a browser.
Universal Rendering renders screen forms in a browser
Responsive Layout
Genero 4.00 implements a new responsive web design paradigm called Responsive Layout (RL).
What is Responsive Layout?
Prior to this release, three ‘.per’ form description files were usually needed to support the three form factors required for the deployment of today’s modern applications ie: smartphones, tablets and desktops. With Responsive Layout only one .per form file is necessary through the use of new ‘.per’ syntax. This will greatly simplify cross-platform screen development and render the user interface more ergonomic.
Responsive Layout enables the design of screen forms by segmenting it into zones that will adapt automatically according to the available screen real-estate.
Key Features
- GRID now ‘stretches’ its content to fit the available screen real-estate. STRETCH applies to a column(s) of fields keeping them properly aligned while filling the width of the device. It is possible to ‘stretch’ fields, while leaving labels untouched – a feature difficult to achieve with rival technologies. STRETCH is the default for mobile clients.
Key Features
- The .per form description file includes new ‘responsive’ properties, where attribute values can depend on display size. These properties dynamically adapt to the size of the display.
- In the above figure:
- VBOX vb1 organizes HBOX hb1 and GRID gd2 vertically, no matter what screen size or orientation.
- HBOX hb1 organizes TABLE tb1 and GRID gd1 horizontally by default, but vertically on small screens.
- GRID gd1 will be hidden on small screens.
Business Development Language (BDL)
Core language
- Reflection dynamically introspects and modifies variables.
- Packages group modules for better source code organization.
- Regular expressions enable pattern matching and replacements.
- Definitions of functions, variables, constants and types can be mixed in a module.
VAR
declares a program variable within a code block.- Record usage enhancements simplify the passing and returning of records to and from functions and records in expressions.
- The
IN(...)
operator. DICTIONARY
variable definitions can be initialized with a literal.- In static
SQL
statements, program variables can be marked with a$
(dollar sign) to distinguish from database object names.
SQL Databases
- UTF-8 database collations are supported in SQL Server CHAR/VARCHAR columns.
- Support is improved for INTERVAL types with Oracle® DB.
- PostgreSQL version 13 is supported.
- National character type conversions for IBM DB2, IBM Netezza and SAP HANA:
CHAR/VARCHAR SQL types in DDL statements can now be converted to NCHAR/NVARCHAR for IBM DB2 LUW, IBM Netezza and SQL HANA (for Unicode/UTF-8 storage).
New fglcomp options
--mark-host-variables
marks all program variables in staticSQL
statements with a$
(dollar sign).-W colname
detects invalid column names in staticSQL
statements.-W case
detects symbol names that do not match exactly the name used in the definition of the symbol.--fix-case
makes symbol names match the name used in the definition of the symbol.
Genero Web Services (GWS)
HTTP API
- The method
setBodyChunk()
of thecom.HTTPRequest
class enables or disables ‘chunk mode’ in an HTTP POST or PUT request. - HTTP status codes allow values between 100 to 999 as an HTTP response on the server side.
REST
Better OpenAPI support
- (Future EAP candidate) One REST service can support several resources.
- The default REST format is JSON.
- Generated named types are based on BDL type names, instead of anonymous types from the OpenAPI specification.
- The high-level REST framework supports all HTTP verbs supported by the OpenAPI specification, including HEAD, OPTIONS, TRACE and PATCH.
- The
WSOptional
attribute is supported for the input request body forPOST
,PUT
andPATCH
thefglrestful
tool will generate the two BDL functions necessary for such a service. - Error management has been enhanced in
fglrestful.
A newwsError RECORD
is generated in the stub file. It provides details (error code and description) of unexpected errors returned by the Genero Web Server. WSHeader
supports complex types such asRECORDs
andARRAYs
as specified in OpenAPI specification.
SOAP
No global file is generated; no linking is required.
- The
fglwsdl
tool generates one stub file for SOAP Web service. Modular types and variables are defined asPUBLIC
in the stub. This enhancement replaces theglobals
file (.inc
); however, theglobals
file is still supported with the-legacy
option. - The
fglwsdl -domHandler
option has changed how callbacks are generated. You must provide a module name for the callback handler functions module. - The
fglwsdl -s
option takes a module name, identifying the module where the SOAP server operations are defined.
OpenIdConnect service provider
- Bypass or configure
IP
orX-Forwarded-For
during ID Token validation in the SSO handshake.
Genero Application Server (GAS & JGAS)
License consumption with browsers
- Applications invoked from the same browser consume one user license only.
Better web server integration
- The GAS supports HTTP/2. HTTP/2 is the default protocol when installing a web server configured for HTTPS.
- The GAS supports use of
X-Forward
headers (protocol, host, and port) to improve the management of reverse proxy server, load balancer, and integrated cloud solutions.
TheROOT_URL_PREFIX
element is deprecated in favor ofX-Forward
headers.
Web services monitoring
- (GAS only) Web services monitoring can monitor the performance of your services, set alarms, and analyze data.
Application configuration enhancements
- Dedicated HTTP headers can be set on each response for an application or service.
CloseAllOnMainExit
supports the graceful stop of all child applications when the main application is closed.
Better web service integration
- URL management can detect the REST web service URL part after the
group/xcf
.
Command line tool enhancement
- The
--pid-file
option of thefastcgidispatch
andhttpdispatch
commands retrieves the GAS process-id and writes it to a file on disk.
Genero Identity Provider (GIP)
Supports any database
Migration tool
- A migration tool helps you migrate the GIP database from v3.20 (based on SQLite) to the database of your choice
Custom properties
- Custom properties can be set in your profile service.
Genero Ghost Client (GGC)
Scenario generator supports ‘snapshot’ in the logs (Future EAP candidate)
- Scenario generator generates a callback function when a snapshot is encountered in the log, to perform verification in a BDL application.
API enhancements for better testing
- An API can return all or part of the AUI tree.
- Command line options or a file can provide user data using the
ggcadmin
orfglrun
tool. The test scenario can fetch this data using thegetUserData()
function. - A BDL scenario can support multiple front-call registrations.
- The scenario ID can be retrieved.
Performance and stress tests options
- Perform stress tests by running multiple instances of the GGC using the
--instance-count
and--instance-delay
options of theggcadmin
tool fortcp
andua
.
Four Js License tools
Better performance
The Four Js licensing tools provides better performance.
fglWrt
and greWrt
6.00 are compatible with Genero BDL 4.00 and Genero Report Writer 4.00 packages; they are not compatible with packages prior to 4.00.
How to subscribe ?
If you want to subscribe to the Early Access Program you must have a Four Js web site account (“My Account”) that enables access to privileged technical information.
- Go to the EAP section of our website https://4js.com/download/eap/
- Log in to “My Account”
- Choose the Genero 4.00 EAP
- Click “Subscribe”
Four Js will send you an acknowledgment of your subscription within 24 hours (Monday -> Friday).
Upon approval, you will get access to the download section and the associated mailing list.
We appreciate your interest in pre-release access to our products, and value your feedback. Thank you for your participation in this important phase of our product development.
Best Regards,
The Four Js Development Team