DataFlex 19.1 brings exciting improvements to all aspects of development. All projects benefit from the language and code cleanup, expanded compiler warnings and connectivity enhancements. Windows applications will take advantage of further DPI improvements, increased consistence and control over form heights and embedded manifest files. Web and mobile applications now support deep linking through history management and meaningful URLs, expandable lists, horizontal grid scrolling and an exciting new Material Design theme. Support for RESTful services is enhanced through the new HTTP Request Handler.
DataFlex 19.1 uses new installation technology that provides a crisp, modern look across all monitor resolutions, is 64-bit capable (in preparation for the next generation of DataFlex) and automatically configures the proper provisioning of IIS for DataFlex web applications (including automated installation of the required IIS components if necessary). The new installer is created with Advanced Installer and uses industry standard MSI technology, Be sure to read about the new capabilities to control the Server and Client installations from the command line.
Another early benefit born in the NextGen project is simplified deployment though the use of embedded manifest files. In order to support the different Portable Executable (PE) images needed to support a common development environment for both 32 and 64-bit applications, we created a new linker and that also allowed us to more easily support embedded manifest files. You control this new feature though an additional project property in the Studio. When using embedded manifest files in a project, the manifest file is moved from Programs to AppSrc and then automatically linked into the resulting executable. If you do not set the project property, the manifest file will automatically be copied to the Programs folder during development.
DataFlex 19.1 provides a way for you to modernize your existing code. This is an optional process and is mostly handled through a new compiler warning system. Your existing applications will continue to run the same. There are some cases where your existing application may generate compiler errors. These are easily addressed.
See Also: Language and Code Cleanup and If / Else / Case Debugging and Warnings
The various example workspaces, both Windows and Web, now include an improved and expanded set of live reports (in prior revisions they used PDF files simulated output). The live DR reports use a common, custom, DataFlex Reports runtime (made specifically for our examples - developers must use the actual DataFlex Reports runtime for their own deployment) so that we do not need to have a copy of the runtime in each workspace or have it referenced in the manifest files.
Your Windows application will display crisply and more accurately scaled, regardless of the DPI resolution being used. We've improved the scaling metrics used in the conversion of dialog units to pixels so that visual components will always look proportional to each other, regardless of the resolution used during the design of the component. We've also updated image lists to support proper scaling of icons and improved the DPI awareness of buttons and treeeviews.
You now have the ability to control the form height in your Windows applications at the workspace level. The default height for new workspaces will be slightly smaller (a form height of 12) to be more consistent with other Windows applications, but you can actually set the form height to any value. Migrated projects will continue to have the form heights set to 13 (the old standard) until and unless you decide to change them. Combo forms will also scale with the new form heights.
We've expanded the support for the latest versions of Microsoft SQL Server and its associated clients. Unless you design your application to use a specific Microsoft client, the highest version available on a given workstation will be used.
As you take your use of SQL to the next level through the use of Embedded SQL you can now take advantage of even better performance and increased security with parameterized queries.
In addition to the benefits of parameterized queries, DataFlex SQL drivers now support various cursor types for embedded SQL statements: Forward Only, Dynamic, Static and Keyset Driven. While Forward Only cursors (the default used by DataFlex for many years) retrieve data fastest and with the least overhead, specifying different cursor types can render results more tailored to application needs and not have the same limitations. For instance, Microsoft SQL Server’s Forward Only cursors require variable length columns to be last in the SELECT statement. For queries that must include variable length columns intermixed with others, you can specify Static or Dynamic cursors instead. Note that Static cursors are generally faster than Dynamic but will not detect changes by other users.
The DataFlex ODBC driver has been enhanced to better support MySQL and MariaDB and now includes the following capabilities:
The HTTP request handler provides a way to handle complete HTTP requests all in DataFlex code. It connects to IIS as a module and takes care of the request handling completely. This component provides the low-level interface for building REST services and any other HTTP service needed. It can handle both binary and text data in chunks or as a whole. The HTTP request handler is also used for handling WebApp Framework file uploads and downloads as well.
Note: The WebOrder example contains a simple REST example (DemoSimpleRestService.wo) and also contains a file upload example (DemoFileUpload.wo) that illustrate the use of the HTTP request handler.
When using the DemoSimpleRestService you can use any browser to demonstrate the GET verb using...
http://localhost/WebOrder_19_1/SimpleREST/customers/ <- returns all customers
http://localhost/WebOrder_19_1/SimpleREST/customers/4 <- returns just the customer number specified
...but you need a REST client (like PostMan) to demonstrate the use of the POST, PATCH and DELETE verbs.
Also note that FireFox has a special viewer for JSON and you may want to use it when experimenting with the new HTTP request handler.
This is a the long way of saying that the back button works! The Web Framework also supports "deep linking". You can see how this new capability works running the WebOrder and WebOrderMobile sample applications and read about the complete Meaningful URL and History Management interface.
Web lists now support nested, expandable sections through the cWebListExpandPanel class. You can see the new capability in the WebOrderMobile example by selecting Customer Query and then clicking on any customer.
Grids now support horizontal scrolling through the use of the pbAutoColumnSizing property.
We know you'll be impressed with the new, Google-inspired, Material Design Theme. Material Design improves usability by utilizing depth through shadows, allowing you to accentuate certain elements. The WebOrderMobile sample uses this new theme.
A new DataFlex Web Framework style, “Basic”, had been added to the existing Mobile/Touch and Desktop styles. A Basic web application does not use the DataFlex user interface objects; it only uses Web Application Server components used for service-based applications. This new style makes both the development and deployment of service-based web applications more efficient through a streamlined class hierarchy and the elimination of the JavaScript Engine and all other web components associated with the DataFlex user interface.
Prior to DataFlex 19.1, the cWebBusinessProcess class was used to create various business process components. This class is now obsolete. While it still works, it is no longer documented and can probably be replaced with a better class: