Enabling you to stay ahead
Synergy/DE 12 is the latest version of Synergex's flagship suite of development tools. Version 12 provides features that help developers interface with current web services and websites, including support for .NET 6, which Microsoft called “The Fastest .NET Yet,” as well as enhancements to xfNetLink .NET. Version 12 also has features to improve application deployment, such as TCP/IP licensing on Linux (enabling Synergy applications to run in containers) and encryption enhancements. See more about these features and other highlights below.
Two Synergy/DE 12 releases are available to download:
- Synergy/DE 12.1 is a long-term support (LTS) release; we’ll only add quality and security improvements to it—no new features.
- Synergy/DE 12.2 is a feature release that includes newer functionality that will be released in our next LTS release. 12.2 features include
- Support for OpenSSL 3.0 and 3.1, which provides you with the latest and most secure options when using encryption with Synergy/DE's HTTP API, xfServer, xfODBC, and other components.
- Support for Synergy targeting .NET 6 and higher on Linux-based operating systems, which opens the door to improved developer experiences, increased tool and library availability, and much more.
- New isutl options for managing free space and file allocation, which help prevent ISAM files that receive millions of small record writes from running into Windows file system limitations.
- OrderBy on joined tables in Select operations, which provides several optimization possibilities for your code and for the Harmony Core web services framework.
- Inline FOREACH loop variable declarations, which help simplify code and improve scoping of the loop variable.
See our blog for release announcements and our documentation for additional feature details. (From the version drop-down in the documentation, specify 12.1 or 12.2, then search for the feature you are interested in reading about.) See our Release Strategy page for more information about LTS and feature releases.
Synergy .NET Support for Microsoft .NET 6
Synergy now supports .NET 6 (formerly .NET Core) as an alternative to .NET Framework in all the places where Synergy and .NET meet, including
- Building and deploying Synergy .NET applications with .NET 6
- Using the .NET Assembly API to embed and execute .NET 6 code from traditional Synergy
- The introduction of a new xfNetLink .NET client built with .NET Standard 2.0, including a new object pooling mechanism (COM+ is not available in .NET 6)
- Making all of the ancillary libraries (XML API, SQL Connection API, Repository API, etc.) available as NuGet packages
OpenSSL on Windows has been replaced with Microsoft Secure Channel APIs that are part of the Windows operating system. As a result, you no longer have to download and deploy OpenSSL and no longer need to create and provide “CA Files” to use the HTTP document transport API securely.
Also, Synergy now validates certificates for authenticity, revocation, and expiration when they are used to establish secure connections. IMPORTANT: THIS CHANGE COULD BREAK YOUR ENVIRONMENT. If you use any cryptographic certificates in your Synergy environment (for example, when enabling encryption for xfServer or xfServerPlus or on private web servers accessed with the HTTP document transport API), be sure to review them before you upgrade to Synergy 12. Otherwise, when you upgrade, services with invalid certificates may fail to start.
TCP/IP Licensing for Linux (License Forwarding)
With the new TCP/IP licensing for Linux, you can now enter the name of a Windows license server when you configure licensing on a new Linux system. This enables you to share concurrent-use licensing across multiple Windows and/or Linux systems and/or VMs, without having to license each system individually (especially helpful to developers). This new feature also enables Synergy applications to run in containers, which opens up many new opportunities, including the ability to deploy Synergy applications in the public cloud.
xfNetLink .NET Enhancements
- The xfNetLink .NET library is also now distributed as a NuGet package.
- The gencs utility now generates a C# project file that you can use with Visual Studio, MSBuild, or the dotnet build utility to build a client assembly.
- In .NET Framework applications, several new environment variables can now be used to specify configuration settings in all environments.
- A new pooling mechanism has been added via the BlockingPooledObjectPolicy class.
- Support for Windows 11 and Windows Server 2022.
- New functions %CREATE_SERVER_CONNECTION and %DESTROY_SERVER_CONNECTION and new SERVERCONNECTION OPEN statement qualifier enable applications to connect concurrently to multiple xfServer instances. (Windows and Unix)
- GroupBy class for use with Select statements provides a subset of a SQL “GROUP BY” clause functionality.
- .NET GRFA support for READ, READS, WRITE, and WRITES statements when using stream, sequential, relative, and block files.
- Limited support for Global I/O hooks on OpenVMS plus support for %DATETIME_TO_I8 and %DATETIME_FROM_I8 there.
- Improved re-index performance in isutl, particularly when processing very large files.
Synergy/DE 12.1 includes numerous quality improvements across all products. See the release notes for your products for details, accessible from the Downloads page.
SDI Improvements (released separately)
Synergy DBL Integration for Visual Studio (SDI) follows its own, more frequent release timeline (separate from Synergy/DE). Many SDI features and quality improvements were released in the few months prior to the Synergy/DE 12.1 release.
- New Synergy Script project template, which creates a project configured to manage UI Toolkit Window Script (.wsc) files (the source code for a UI Toolkit Window Library) and automates the process of compiling the script(s) to create a Window library.
- Compatibility with version 12 Synergy .NET runtime and accompanying libraries built to target .NET Standard 2.0.
- Note that SDI now enforces a minimum .NET Framework version 4.7.2 for Synergy .NET projects. When opening a solution, SDI will automatically upgrade any Synergy .NET projects that target older Framework versions, altering them to target 4.7.2. This may impact your ability to build if you have non-Synergy projects that reference Synergy .NET projects and target a lower Framework version. If you do experience build problems, check the warnings produced by your Visual Studio build for details on .NET Framework targeting issues.
- Added support for Visual Studio 2022, Microsoft’s first 64-bit version of Visual Studio.
- The higher memory availability with the 64-bit architecture yields noticeable benefits in several areas, not least of which is the improved speed at which projects load when opening a solution.
- Improved SDI installer. The files deployed are now compatible with Build Tools for Visual Studio 2019, which makes it easier to set up build systems supporting Synergy project builds without requiring the Visual Studio IDE.
- Synergy .NET Compiler enhancements, including INITONLY properties, where the value of the field cannot be changed once it is created; covariant return types, which can be used to avoid casting between types; nullable regions, where a level-3 warning error is generated if a potentially null variable, field, etc., is assigned to a non-null variable.
- Color coding for keywords, types, etc., for repository schema files.
- IntelliSense support for the new .NULLABLE enable/disable compiler directives, and IntelliSense now supports the null forgive operator (!.) and the null conditional operator.
- Synergy .NET Core projects created with earlier versions can now be configured to target .NET 5 and .NET 6, and the SDI build.
- Support for loading and running unit tests for Synergy .NET Core projects in the Test Explorer window and a new “Unit Test (.NET Core)” project template.