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 todays and tomorrows business requirements. Read on to learn the details of DataFlex 2017/19.0!
DataFlex 2017 sets a new level of usability and functionality when using SQL databases - all with backward compatibility! You will experience:
Windows developers and by extension, DataFlex Windows applications can take advantage of the following version 19.0 enhancements:
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, its all automatic! The alternative MDI style is created using Codejock Tab Workspaces and DataFlexs scrolling panel class support:
(Watch the Synergy 2017 video.)
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 2017s DPI changes to the Studio and replaced all the images with multi-sized, flat icons and updated the Studios theme to a more modern look.
DataFlex Studio Start Center:
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. Weve tried to hide all of this so DataFlex Windows developers wont have to deal with it.
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 applications 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):
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):
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:
Example - cWebFloatingPanel pushing the web app 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":
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.
Collapsible Group - Extends the cWebGroup with a pbExpandible property making it show a collapse / expand button on top.
Styled Checkbox and Radio - The DataFlex framework has always used the native browsers 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 devices 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:
Example - Styled as a flipswitch using standard "FlipSwitch" CSS Class:
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:
Other DataFlex 2017/19.0 Web Framework Changes
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 APIs 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.
Overview
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).
DataBase Builder and DataBase Explorer have had significant changes made similar to those elsewhere in the product, including the following main areas:
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...