Can't find what you are looking for? Try these pages!

Blog

What's New in DataFlex 2017/19.0

By Stephen Meeley

Introducing DataFlex 2017/19.0!

DataFlex 2017/19.0 includes many new features and enhancements that make developing mobile, web and Windows applications easier and faster than ever before - especially with SQL databases!

SQL related highlights of this release include Managed Database Connections and improved index support. There are also exciting new controls for mobile applications. DataFlex Windows desktop applications now enjoy enhanced support for DPI awareness, Tabbed Workspace views, a new set of flat icons and an updated look. Web Application Server deployment has been streamlined, and there is a new look and new capabilities for the DataFlex 2017/19.0 Studio and supporting utilities.

DataFlex 2017/19.0 continues our commitment to extend and refine the Windows, web and mobile frameworks delivered in prior versions, providing application developers with an always-expanding suite of state-of-the-art tools and technologies to build world-class software applications to meet today’s and tomorrow’s business requirements. Read on to learn the details of DataFlex 2017/19.0!

Database Connectivity

DataFlex 2017 sets a new level of usability and functionality when using SQL databases - all with backward compatibility! You will experience:

  • Database Connection IDs that are fully integrated into the DataFlex application framework, Studio and other tools through “Managed Database Connections” (see the Synergy 2017 video).
  • Improved indexing support for SQL databases
  • Improved flow of SQL-based application development
  • Expected SQL features like Primary Keys, Foreign Keys, identity columns, clustered indexes and more are now available within the Studio so their use is more automatic and natural
  • An improved database login process including support for encrypted credentials
  • Convert, Connect, Reconnect processes that are easier to use and more robust in their functionality
  • Support for Microsoft SQL Server 2016
  • Support for Microsoft ODBC Client 11/13 for SQL Server
  • Minimum database Client Version Check
  • Updated Default Type Mappings
  • Database Restructure Prevention

Windows Framework

Windows developers and by extension, DataFlex Windows applications can take advantage of the following version 19.0 enhancements:

  • Improved DPI Awareness – Following recent changes by Microsoft, DataFlex 2017/19.0’s “DPI awareness” is key to making Windows applications look good consistently across a variety of high-DPI displays on the laptop and desktop computers that are typical in today’s business environment.
  • Flat Icons - All of DataFlex 2017/19.0’s menu and toolbar icons are updated to the new, contemporary style that also works perfectly with high DPI displays. All the standard icons used in the DataFlex Windows Framework menu and toolbar are updated and can be found in the \Bitmaps folder.
  • Tabbed Workspaces - Microsoft no longer uses the MDI Interface in many of their tools and applications so they no longer provide complete support for that style. Specifically, in Windows 10, the MDI views, including the caption and system buttons are not painted using the appropriate style:

MDI Alternative Style 

DataFlex 2017 now includes an alternative look to deliver MDI style applications using “Tabbed Workspaces.” If you elect to use this new style instead of using overlapping windows, your views are placed in tabs like the Studio has used tabs for many years. Like the Studio, your application views can now be split vertically or horizontally, allowing you to see multiple views at one time. A view is selected by clicking its tab; sizing, centering and scrolling of tabbed views is fully supported and, it’s all automatic! The alternative MDI style is created using Codejock Tab Workspaces and DataFlex’s scrolling panel class support:

Tab Workspaces

(Watch the Synergy 2017 video.)

Studio

Major changes have been made to the Studio as part of the overall undertaking to make DataFlex easier and more productive when developing with SQL databases. The Table Explorer, Table Editor, Workspace Creation and Migration Wizard, the Conversion and Connection Wizards and the Object Properties panel are all enhanced in DataFlex 2017/19.0.

The Studio has a fresh, new look too. We applied all of DataFlex 2017’s DPI changes to the Studio and replaced all the images with multi-sized, flat icons and updated the Studio’s theme to a more modern look.

DataFlex Studio Start Center:

DataFlex Start Center

The DataFlex Packages

cCharTranslate

There are new UChar array functions added to cCharTranslate to support various character encodings. We encourage the use of UChar arrays as a more efficient and less-restrictive alternative to direct string or memory manipulation when dealing with character or binary data. The additional functions in cCharTranslate allow you to deal with the various character and binary encodings for the source and destination types more easily. The new uChar functions also make it easier to work with JSON and UChar arrays (ParseUTF8 and StringifyUTF8).

See below for more information on the new JSON parser.

Codejock CommandBars

DataFlex 2017/19.0 includes Codejock Command Bar changes to properly support the myriad of new visual themes that Codejock now supports. These DataFlex changes solve the problem where various themes would not show a status panel (it would be black) after Codejock changed their rules for setting visual themes. Setting a simple Codejock property simply no longer worked; you now must load .dlls and .ini files. We’ve tried to hide all of this so DataFlex Windows developers won’t have to deal with it.

Web Framework

Server Web Properties

The web property system has been extended with a new web property type called Server Web Properties. The new Server Web Properties are not sent to the client; rather, they are stored on the application server to provide persistency until the next request from the web client comes in. The goal of the Server Web Properties is to provide an easy and secure method to store an application’s state without the state information ever being sent to the client. In addition to security, Server Web Properties can also improve performance compared to client-side web properties because the property data is not exchanged between the client and server. (See the Synergy 2017 video.)

New Web Framework Controls

DataFlex 2017/19.0 includes exciting additions to the control set for the Web Framework Desktop and Mobile/Touch style applications.

Color Pickers - You can now use color picker controls that are available in popup format (cWebColorForm) and as a standalone control (cWebColorPicker). These controls can show a color palette with predefined colors as well. You can see the new color pickers in the WebOrder example under Demo | Color Picker.

Example - cWebColorForm (with palette):

cWebColorForm (with palette)

Mobile/Touch List Menu – The cWebMenuList is a separate version of the menu class used in Mobile/Touch applications. It works with existing menu items, supports multiple menu levels, has an optional header and automatically renders a back button on sub levels. You can see these capabilities in the DataFlex 2017 WebOrder example program under Demo | List Button Menu.

Example (in the Designer):

List Menu (in Designer)

Floating Panel - The cWebFloatingPanel is a versatile new container component that can be positioned in several ways. It falls outside the control & regular panel layout flow and "floats” on top of the application. It can be used to develop menu systems and provide extra details. You can see floating panels in the DataFlex 2017 WebOrder example under Demo | Floating Panel and Search with Floating Panel.

Example - cWebFloatingPanel floating by a button:

cWebFloatingPanel floating by a button

Example - cWebFloatingPanel pushing the web app off-screen:

cWebFloatingPanel pushing the webapp off screen

Highlight Column - The cWebColumnHighlight is special column type that is capable of highlighting keyword(s). It has several options to configure how the highlighting should be performed.

Example - cWebColumnHighlight highlighting "Greatest":

cWebColumnHighlight highlighting Greatest

Accordion Control - The cWebAccordionContainer is an accordion style mobile control based on the tab / card container technology. The cWebAccordionCards expand / collapse by clicking on the header or can be controlled from source code. It can be configured to allow a single expanded item or multiple expanded items. You can see accordion cards in the WebOrder example under Demo | Accordion Demo.

Accordian Control

Collapsible Group - Extends the cWebGroup with a pbExpandible property making it show a collapse / expand button on top.

Collapsible Group

Styled Checkbox and Radio - The DataFlex framework has always used the native browser’s checkbox. Browsers usually leave the rendering up to the operating system. Styling using CSS was very limited. A new technique using special CSS selectors and a pseudo element allows the default system checkbox to be replaced with a custom checkbox control fully built and stylable for your DataFlex web app using CSS. This new technology has been incorporated into the DataFlex Framework allowing developers to let themes style the checkbox or just use the device’s native checkbox control. You can see these new DataFlex 2017 capabilities in the WebOrder example under Demo | Styled Checkboxes and Radios.

Example - Standard Flat (touch and desktop) checkbox:

Standard Flat (touch and desktop) checkbox

Example - Styled as a flipswitch using standard "FlipSwitch" CSS Class:

Styled as a flipswitch

Swipe Buttons (in Lists) and Cards

Swipe to Next Card - A commonly requested mobile/web app feature has been a “card” container that shows dots at the bottom corner indicating that there are more available cards and allows the user to “swipe” to the next card. DataFlex 2017/19.0 includes a swipe card mobile/touch control.

Example:

Swipe to Next Card

Other DataFlex 2017/19.0 Web Framework Changes

  • The cWebPromptList was changed to use the callback object of cWebModalDialog to determine the opening object instead of looking at the focus object which was causing multiple problems. To do this cWebBaseDEO has been altered to use the Popup function to show the lookup as opposed to using the Show function.
  • The cWebPromptList’s “Ok” function now also triggers NotifyCloseModalDialog causing the OnCloseModalDialog to be called concurrently for lookups in the default format.
  • The default format of lookups generated by the Web Lookup Wizard was changed to not use OnShow but rather to augment Popup since that is now the recommended method for modal dialogs.
  • The lookups in the WebOrder sample were changed to augment Popup instead of using OnShow.

JSON Parsing & HTTP Transfer capabilities; DataFlex does REST!

The New JSON Parser

The JSON parser is represented by a single cJSONObject class that contains the entire API for parsing, generating, analyzing and manipulating the JSON. The API is a simplified DOM where each object represents a single JSON node. JSON can be generated by creating and configuring these objects before calling Stringify to generate the JSON string. JSON can be parsed by calling Parse and then using the API’s to analyze / enumerate the object structure.

A special feature of the DataFlex 2017/19.0 JSON Parser is the ability to generate the JSON Object structure based on struct data in memory. Calling DataTypeToJson will generate cJSONObject objects that match the structure of the struct and calling Stringify will fully serialize this data into a string. The reverse is done by using JsonToDataType to convert the JSON Object structure into struct data. This feature requires the JSON to match the format of the struct data or errors will be generated.

cJsonObject

The cJsonObject represents a single JSON node within a structure of JSON nodes. A JSON node can represent an object, array, simple type (string, number and Boolean) or null value. The class contains the entire API for generating, parsing and enumerating JSON. The JsonToDataType and DataTypeToJson functions can be used to parse a JSON document into struct and / or arrays.

The cJsonHttpTransfer class provides an easy mechanism for sending and receiving JSON documents via HTTP. JSON documents are sent and retrieved as JSON objects. This class is dependent on the cJsonObject class. It is expected that this class always uses cJsonObject object in and out parameters. JSON being sent will be created using the cJsonObject class interface and JSON being returned will be analyzed using the cJsonObject class interface.

Communicate with RESTful services

The new cHttpJsonTransfer class now makes it easy for DataFlex web apps to communicate with the vast array of RESTful JSON services on the web. The new class is closely integrated with the new DataFlex 2017 JSON Parser. Data is passed in and retrieved using cJsonObject handles which simplifies further processing. Interfaces exist allowing you to use all common HTTP verbs - HttpDeleteJson, HttpGetJson, HttpPatchJson, HttpPostJson and HttpPutJson. An additional method HttpVerbJson can be used to pass any HTTP verb of your choosing.

Web Application Server

Overview

  • The DataFlex 2017/19.0 WebApp Server now includes binaries for 64-bit deployment.
  • The WebApp Administrator program now allows applications to be configured to run on other than the Windows Server default web site.
  • DFManageVDir provides a new command line interface for managing Web Applications.

64-Bit Server Support

This enhancement simplifies DataFlex WebApp Server installation, configuration and deployment and removes the requirement to switch Windows Internet Information Server (IIS) to 32-bit mode. This is accomplished by providing both 32-bit and 64-bit binaries of parts of the WebApp Server. The DataFlex application processes and the WebAppServer.exe controlling them are still 32-bit.

The additional server binaries are located in Bin64 folder and the updated ISAPI handler is automatically registered during installation so that IIS 7 will automatically pick the right DataFlex version (IIS before version 7 required manual configuration). After switching to 64-bit, any COM controls or components being called through IIS/ASP must also be 64-bit (this does not apply to controls or components being called by the 32-bit DataFlex processes).

These DataFlex WebApp Server changes remove the need to install the IIS 6 Metabase Compatibility or to enable 32-bit support in the Application Pool (assuming that you are able to solely use 64-bit).

Development Tool Enhancements

DataBase Builder and DataBase Explorer have had significant changes made similar to those elsewhere in the product, including the following main areas:

  • Support for Managed Connections
  • Major overhaul of Connection Wizard
  • DPI-Aware icons
  • New look & theme
  • DataBase Explorer has been updated to use Codejock grids

Examples

Be sure to check out the DataFlex 2017/19.0 examples included with the Studio installation that illustrate some of the latest changes and additions...

  • Order Entry Tab - The Order view demonstrates that not setting piMaxSize will allow the view to stretch to full size.
  • Web Order - The Demo menu has been reorganized to make it easier to find the various examples - there is a lot of great stuff in this example of which developers may not be aware. In particular, check out the Restful JSON Service view.
  • Web Order Mobile - DataFlex 19.0 marks the debut of swipe gesture support in lists and cards! The Select Customer list now allows you to swipe right for access to the Customer Zoom and swipe left for access to list Customer Orders or delete. The Demo Techniques menu provides access to a "Swipable Card" example view. Another great new feature is the ability for grids to turn off scrolling with pbScroll, which loads the complete data set and turns on column sorting. You can see this new feature at work in the Order Zoom view.

Next Steps

  • Download DataFlex 2017/19.0.
  • Read about DataFlex 2017/19.0 Supported Environments, the Installation and Environment Guide, and the Quick Introduction Guides on the Current Products information page.
  • Watch videos about the new features delivered in DataFlex 2017/19.0 from the Synergy 2017 Developers Conference, and about how to get started with DataFlex.