Effortlessly craft vector drawings in web applications using DataFlex code with the cWebDrawing control. This versatile tool streamlines tasks like chart creation, mapping, and even simple game development, offering developers a smooth and gratifying development experience.
> Watch the DataFlex Learning Center lesson about the vector drawing control in DataFlex 2024
Elevate your protection with the new SPLF Encryption update in DataFlex 2024. This update enhances security by encrypting connections between SPLF server and application nodes. It empowers developers with configurable encryption tokens per node, boosting security strength and ensuring a fortified safeguard for your data.
> Watch the DataFlex Learning Center lesson about WebApp Server SPLF Encryption in DataFlex 2024
Explore enhanced grid layouts with the upgraded Web Designer in DataFlex 2024. Revel in the convenience of a new popup for effortless editing of rows and columns, complete with support for easy insertion and removal. Seamlessly transition from flow layout to grid layout with the updated context menu, providing a smoother and more intuitive design process.
> Watch the DataFlex Learning Center lesson about the Improved Grid Layout Designer in DataFlex 2024
Discover enhanced Data Dictionary capabilities in DataFlex 2024. Now, Web container controls can contain their own DDO structure, offering greater flexibility in your projects. Explore multiple DDO structures seamlessly with the upgraded DDO Explorer panel in the studio, providing a comprehensive view and empowering developers with more control over their data structures.
> Watch the DataFlex Learning Center lesson about DDO Structures in the Web in DataFlex 2024
Experience optimization in Data Dictionaries and web property logic with DataFlex 2024. Enjoy significant performance improvements that trim the startup time of web app processes from minutes to seconds. This enhancement ensures a more responsive and streamlined development environment, providing even faster spin-up times in SPLF loads and initial start-up during development.
Now, uploading files in your Windows application is as seamless as it is in web apps within DataFlex 2024. Imagine a file upload button where you select a file; FlexTron handles it effortlessly. Enjoy enhanced functionality that simplifies file selection in a FlexTron environment.
In the past, creating a weblist with Dynamic Objects involved generating each web column and registering them individually as children to the weblist. Now, this step is no longer necessary because you can create an abstract class and directly include the columns in it. This improvement makes the process more efficient by offering a streamlined approach.
Now, the SQLExecutor of the sent query is accessible in OnSQLPostExecute. This allows you to instantly view the final query structure concerning parameter binding, offering valuable insights for logging and debugging purposes.
Additionally, detailed information is now available in the SQLExecutors tSQLColumnInfo. You can inquire about the column type, size, associated restrictions, and field size, providing a comprehensive understanding of your database structure.
While it was possible to inquire about the number of children an object has, identifying the specific children was not previously feasible. With DataFlex 2024, you can now inspect and identify the children associated with an object. This enhancement introduces a reflective programming aspect, allowing developers to gain a more comprehensive understanding of the object structure.
DataFlex 2023 introduces FlexTron, which brings Web views and controls into Windows applications, allowing a more modern look and feel or just adding Web features to more mature Windows applications.
You can use a single Web control or build entire applications. A FlexTron sample workspace is added to see FlexTron in action and easily try it out.
> Watch the DataFlex Learning Center lesson about FlexTron in DataFlex 2023
DataFlex 2023 comes with a new way to work directly with SQL statements. A new engine for executing statements is built into the runtime that puts result sets directly into native DataFlex types. This means that your results can now go directly into structs, multidimensional arrays and variants with the proper type conversions being done automatically.
Parameterized queries now support named parameters and only a single class / object is needed for executing queries. Studio support for working with SQL statements is improved by adding syntax highlighting, code sense and a query test tool for SQL statements.
> Watch the DataFlex Learning Center lesson about Embedded SQL in DataFlex 2023
The new Web Grid Layout system in DataFlex 2023 gives you more control over the vertical positioning of controls. Using modern browser technologies like CSS Grid makes building complex interfaces easier than ever.
> Watch the DataFlex Learning Center lesson about the Web Grid Layout in DataFlex 2023
The WebList now supports grouping of data. For example group on state, status or city, which gives a clear overview of your data! You, as a developer, can use manual grouping and the end user can configure the groups via the context menu on the header of the list.
> Watch the DataFlex Learning Center lesson about WebList Grouping in DataFlex 2023
When embedding foreign code like SQL, JavaScript or HTML into DataFlex code, you can use a multiline string. A new style of multiline string has been added that allows better alignment with the rest of your code without adding white space to the actual string at runtime. These strings use the triple quote notation (""") and have the advantage that you can embed quotes in your source code.
> Watch the DataFlex Learning Center lesson about Aligned Multiline Strings in DataFlex 2023.
Multiline comments are added to the DataFlex language! Use /* to start the multiline comment and end it with */
Web properties are now identified in the Properties Panel with a Unicode Earth character.
Due to this, Web Properties are no longer listed in a separate Web Properties category, but in meaningful categories like Appearance and Behavior, along with standard (non-Web) properties.
The Studios Properties Panel now allows for filtering of properties. You can choose whether to show All Properties, Standard Properties or Web Properties. In addition, you can choose to see only Changed Properties along with the property type filter above.
Its now possible to select multiple rows in a list! This makes it easier than ever to delete multiple rows or drag and drop several rows from one list to another.
The context menu is fully customizable in DataFlex 2023. Add the options you need to the header context menu, so they are only one click away. For example, exporting your list as an Excel document.
Not knowing what caused your app to crash is no longer a worry. DataFlex 2023 displays a detailed crash report with a call stack trace explaining exactly what happened before the crash.
The Studio now uses the console compiler (introduced in DataFlex 20.0). Things to note...
You can now move any node type (ex: functions, procedures, properties, etc.) in Code Explorer up or down instead of just objects.
Use the cWebView2Browser control to display web pages or HTML snippets within your DataFlex Windows project! The new cWebView2Browser class wraps the Edge WebView2 browser engine from Microsoft into a reusable DataFlex control. WebView2 is based on Edge Chromium and has similar specifications. APIs are available for two-way communication between the web page and the host application. This new control can replace the Internet Explorer based ComWebBrowser usage. A comprehensive example (WebView2Browser.src) is available in the Specialized Components workspace.
The new cTagsForm class brings the same tagging capabilities to Windows applications as cWebTagsForm (including custom separators) did for web applications. This class allows multiple items to be created or selected from a source, such as a table, and then shown visually as boxes/balloons called tags. Demo views for both classes are available in the Order Entry (DemoWindowsTags.vw) and WebOrder (DemoWebTags.wo) workspaces.
Windows DEOs can now have placeholders! psPlaceHolder displays text in empty forms, and pbShowPlaceHolderOnFocus determines whether a placeholder value will be shown when the control takes the focus.
New cWebDragDropHelper class provides Drag & Drop support between and within various web controls, including WebList rows, WebTreeView items and WebTagsForm tags. Drop support is available for almost all web controls. The centralized handling allows developers to easily define the drag sources and drop targets and the appropriate OnDrop actions. There are two new demo views in the Web Order workspace.
cWebList and cWebGrid have been extended with...
Watch the short video about the extended WebList and WebGrid.
New cWebContextMenu class provides custom menus when right-clicking on various controls. See the Custom Menus example view under Demo in the WebOrder workspace.
New cWebMenuItemCheckbox can be used to create multi-item menus. See the example in the Themes menu in the WebOrder workspace.
The internal buffers that store string variables and text columns are now maintained dynamically allowing them to be of any size (within memory limits). If you use Set_Argument_Size in your applications those commands are ignored, and if you use Get_Argument_Size it returns the current size of the dynamically allocated buffer.
The new multi-line string does not do compiler substitutions (eg. !a), so developers can use the new @ syntax to allow unfettered use of ! in strings.
Table restructure has been improved by preserving more natively implemented attributes, including triggers, comments, full text indexes and also warn against restructuring system-versioned tables.
Find cache buffers are now dynamically allocated.
DataFlex 2021 is 64-bit capable and fully Unicode, unlocking the power of 64-bit environments and supporting multiple languages in a single application. We recommend that you review the information in these sections:
Note that Unicode support is available for all types of DataFlex Web Applications, including ASP Classic.
Dynamic Web Objects are created at runtime, not hard-coded in the application. Their definitions may come from the database, or prior user interactions, and their use are centered around UI objects (controls). Dynamic objects are useful for user-configurable dashboards, questionnaires, or anywhere you cant predetermine the exact object structure. The Web Order example has a dynamic objects demo.
This new control looks like a standard web form, but it allows the selection of multiple items. These items are visually represented by boxes/balloons called tags. Selection is done by typing text into the form and, optionally, a list of items to select from is displayed.
The cWebGeoLocation class queries the current location (using GPS coordinates) by wrapping the HTML5 navigator.geolocaton API and supports both single query and tracking.
A new layer of security checks is added that validates if UI objects are actually displayed (pbRender, pbVisible) and enabled (pbEnabled) before performing operations on them. This prevents unwanted exposure of data and prevents unallowed operations from being performed. A new web property type called ClientProtected is added to support this.
The new connectivity capabilities are at the heart of providing robust Unicode support in your applications. DataFlex 2021 contains re-engineered SQL drivers for Microsoft SQL Server, IBM DB2, MySQL and other back-ends supported through ODBC.
DataFlex 2021 also includes a 64-bit version of the PSQL (Btrieve) driver. This driver does not add any Unicode support and runs through the same compatibility layer as the Embedded Database driver. We continue to investigate the feasibility of adding Unicode support to the PSQL driver.
When working with various SQL back-ends, its important to understand how each one deals with Unicode. The Working with DataFlex 2021 section covers Microsoft SQL Server in detail, but weve created a series of guides for other SQL environments.
DataFlex 2021 includes improvements to how web applications are managed that are not specific to the Unicode and 64-bit capabilities that are the main thrust of the new release.
Weve added a Dark Theme to the DataFlex Studio! You can try the new theme by selecting the Dark Theme option from the Configure Studio... option on the Tools menu.
Note that the Studio allows you to hot-switch between the Dark Them and the standard theme, but we recommend you restart the Studio after changing between themes.
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.
This is 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 youll 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.
The DataFlex ODBC driver has been enhanced to better support MySQL and MariaDB and now includes the following capabilities:
Weve 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 Servers 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.
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.
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 mainifest 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.
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.
The DataFlex framework now includes a new property type called server web properties. In contrast to client web properties, server web properties are always stored only on the server; they are never sent to the web client. Server web properties provide persistency and can even be attached to sessions. The new property type provides a secure place to store an applications state with the same ease of use as DataFlexs existing client web properties. In addition to security, since server web properties do not consume any bandwidth, they can result in improved application performance compared to the use of client-side web properties.
Touch functionality in applications has been extended with a new control called the swipeable list button. This control provides a compact, effective method to add extra actions to list rows. The button functionality is highly customizable and easy to implement. Also, the card container now has a new swipe feature that enables users to swipe between cards. Swipeable cards provide a touch-friendly alternative to existing tab containers.
The cWebFloatingPanel is a versatile container component that can be positioned it several ways. It falls outside the control and regular panel layout flow and "floats" on top of the application. It can be used to develop custom menu systems, provide extra details or show notifications.
The cWebGroup control has been extended with the option to collapse / expand groups. Controlled by properties and a button on the screen, collapsible groups provide a new resource to use limited, small-device screen real estate more efficiently.
DataFlexs connectivity to SQL databases for mobile, web and Windows apps has been dramatically improved with new ways to maintain database connections and several other database-related improvements.
The benefits of DataFlex 2017s 64-bit WebApp Server support are: simplified server installation and configuration and elimination of the requirement to switch default 64-bit Internet Information Servers (IIS) to 32-bit mode. These benefits are accomplished by providing both 32-bit and 64-bit binaries of parts of the WebApp Server. DataFlex web application processes and the WebAppServer.exe that controls them are still 32-bit.
The cWebAccordionContainer is an accordion-style web control based on the tab / card container technology. cWebAccordionCards expand or collapse by clicking on the header or they can be controlled from the source code properties. The accordion container can be configured to allow a single expanded item or multiple expanded items.
The cWebColumnHighlight is a specialized visual component that can be used to highlight hits in search results. It has several configuration options to specify exactly how it should highlight keywords. This component is ideal for enhancing the usability of web applications with search capabilities.
New color picker controls are available in popup format (cWebColorForm) and as standalone control (cWebColorPicker). They both work with HEX and RGB color strings and have the ability to display a custom color palette with predefined colors.
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 supports all of the protocols necessary HTTP verbs and is closely integrated with the new DataFlex 2017 JSON Parser. Data is passed in and retrieved using cJsonObject handles which simplifies further processing.
The JSON parser is a single cJsonObject class that contains the entire API for parsing, generating, analyzing and manipulating 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 or by simply converting a struct or array from memory before calling Stringify to generate the JSON string. DataFlexs cHttpJsonTransfer class makes it easy to work with modern REST APIs by working closely with the cJsonObject.
The tabbed workspace style is an alternative to Windows regular MDI style. When used, tabbed views are not rendered in floating panels but are stretched in the available application space. With tabbed workspaces, switching between views is done by selecting tabs that appear as part of the applications command bar. To support this application style, several components have been improved and sizing and centering logic has been added. Views can be placed next to each other by simply dragging a views tab to split the client area horizontally or vertically.
DataFlexs connectivity to SQL databases for mobile, web and Windows apps has been dramatically improved with new ways to maintain database connections and several other database-related improvements.
DataFlex now provides better support for DPI scaling of icons used in Codejock Toolbars, Menus and Context Menus. This enhancement for Windows developers and Windows applications is provided by a combination of changes in the latest Codejock COM controls and changes to the DataFlex 2017 class library.
The dashboard has been revamped with a clean new look and improved performance. It provides a clear overview of the applications you are working on.
The JSON parser is a single cJsonObject class that contains the entire API for parsing, generating, analyzing and manipulating 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 or by simply converting a struct or array from memory before calling Stringify to generate the JSON string. DataFlexs cHttpJsonTransfer class makes it easy to work with modern REST APIs by working closely with the cJsonObject.
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 supports all of the protocols necessary HTTP verbs and is closely integrated with the new DataFlex 2017 JSON Parser. Data is passed in and retrieved using cJsonObject handles which simplifies further processing.