10.3.3d update is now available!
See below to learn about the current Synergy/DE version, 10.3.3, including the latest 10.3.3d update.
Synergy/DE 10.3.3d update
Version 10.3.3d delivers important features and fixes on all platforms, including
xfODBC driver support for ODBC version 3.8. Enables you to use ODBC-enabled applications that only support ODBC version 3.x, such as Microsoft’s Power BI business analytics tools.
New build features. Ability to add pre-build and post-build events to Synergy Repository projects and traditional Synergy projects in Visual Studio via the Build Events page in Project Designer. Also, for all project types (traditional Synergy, Synergy .NET, and Synergy Repository), a new “Run the pre-build event” option that enables you to set a pre-build command to run
- whenever the project is built
- if a compile file has changed
- if a content file has changed
- if a compile or content file has changed
Other Visual Studio integration enhancements, including
- Improved performance when loading large projects
- IntelliSense support for imports in .INCLUDE files
- Prototype validation of XSUBR calls in traditional Synergy projects
Compiler enhancements, including significant compiler performance improvements for some customer scenarios and enhanced compiler error detection. The 10.3.3d compiler may detect errors in your code that previous versions did not. For more information, see “Don’t Pass the Buck to the Runtime” and Synergex KnowledgeBase article 100002319.
New web-based documentation. The Synergy/DE documentation has a new platform that enables us to update it more frequently, and its responsive design allows you to view it on a variety of devices. You can also install a local version of the documentation.
Support for Windows 10 Fall Creators Update
Significant fixes for xfServer/xfServerPlus 10.3.3 on OpenVMS
See below for information about other features in Synergy/DE 10.3.3.
Traditional Synergy projects in Visual Studio
You can develop traditional Synergy applications in the Visual Studio development environment, giving you access to the extensive developer tools available with Visual Studio. You can import projects from Workbench and create new projects from directories of source. This capability supports OLB, ELB, and DBR projects as well as multiple mainline projects. And you can perform parallel builds at the command line with MSBuild. See Visual Studio Integration for more information.
Many enhancements to traditional Synergy in Visual Studio make it easier for you to move your development to Visual Studio and be more productive when you get there. Features include
- Significant reduction in build times
- Significant reduction in disk space required during builds
- Cleaner project folders
- Ability to debug remote traditional Synergy applications on Linux/Unix, including xfServerPlus applications.
Improved SORT performance
The SORT statement now makes better use of memory. It determines optimal memory usage to avoid excessive intermediate I/O. A significant performance improvement may occur when sorting large files and when re-indexing large files with isutl. Tests have shown speeds of up to 10 times faster in very large files. The Select class, which uses SORT on large selections using Orderby.Ascending and Orderby.Descending, as well as remote SORT over xfServer, may also see improved performance with this feature.
Support for Universal Windows Platform (UWP)
Synergy DBL Integration for Visual Studio (SDI) supports Universal Windows Platform (UWP), which enables you to build applications that run on any Windows device (PC, tablet, phone, Xbox One, HoloLens, and more). You can develop Synergy portable class libraries that target UWP (Windows Universal 10.0), and SDI now includes two UWP project templates: Blank App (Universal Windows) and Class Library (Universal Windows). Visual Studio 2015 is supported for UWP development, but Visual Studio 2017 is strongly recommended.
Repository project type for .NET and traditional Synergy applications
A new Repository project type enables you to generate repositories from schema files and do dependency analysis for existing repositories.
Simple (automatically implemented) properties
When you declare a simple property, the compiler creates a private anonymous field and get/set methods behind the scenes. The field can be accessed only through the get and set methods. A number of modifiers are available: READWRITE, READONLY, SET PROTECTED, SETPRIVATE, SETINTERNAL, and SETPROTECTEDINTERNAL.
The new %SYN_DEBUG routine enables your traditional Synergy program to determine if it is running in debug mode and if it was compiled in debug mode.
Support for VSI OpenVMS’s new TCP/IP stack
VSI OpenVMS’s next 8.x release will include a new TCP/IP stack. Customers updating to the new VSI OpenVMS release will require Synergy/DE 10.3.3c or higher.
Synergy debugger enhancements
The new SET TRAP IGNORE error_list command tells the debugger to break on all errors and exceptions except those listed. Syntax checking for the SET DBGSRC command is also improved.
New listdbr and listelb “flags” command line switch
The new -f option shows, for each routine, the MDB flags, the compilation version, and all routines that are called. The link version, endian type, and bit size of the DBR or ELB file are also displayed. (Windows, Unix)
Informational warnings are now generated for alpha fields with binary data, JJJ types now accept 366 for a leap year, messages for several errors now include the header, and other error messages have been updated to include the field name.
Joins in Select
A new inner join method enables you to join two Select objects together. The Select Join feature identifies records from two or more tables/files to join. It enables you to combine data from multiple Synergy DBMS sources and provides functionality similar to SQL92’s high-speed Inner Joins and Left Outer Joins.
Targeted runtime versions for traditional Synergy
You can now compile to an earlier version of the runtime (as far back as version 9.5.1), enabling you to take advantage of the latest features and fixes without having to upgrade customers who aren’t ready to upgrade. For more information, read “Pick a Version, Any Version.”
A new RUNTIME_TARGET define enables you to programmatically determine the runtime target that was specified when the program was built. This enables you to conditionally compile based on the targeted runtime version. For example, “.if RUNTIME_TARGET >= 10030300 …” lets you specify code that will only be used when the Synergy runtime is 10.3.3 or higher.
Like a regular lambda, an inline lambda enables you to define a function object at the point where it is invoked or passed as an argument to a function. It provides a way to generate inline methods that have access to variables within the method in which the lambda is declared. Inline lambdas enable you to write more concise code. (.NET)
Visual Studio enhancements
10.3.3 includes many enhancements to Synergy’s support in Visual Studio, including
- Support for targeting future .NET Framework versions without code changes
- Significant performance improvements for large solutions
- Support for .DEFINE in IntelliSense, hover over, Goto Definition, and syntax indentation
- Improved environment variable pages
- Solution-wide environment variable capability
- Code formatting enhancements
- Null coalescing operator
Additional enhancements to Synergy’s integration with Visual Studio provide you with the latest developer tools.
- Support for Visual Studio 2017
- Improvements to code navigation, IntelliSense, debugging, and performance
- Visual Studio debugger enhancements. The Locals window now displays all local variables including DATA statements. You can now examine the “this” variable, which enables you to use the debugger to examine class variables.
- New documentation options. The Synergy Online Manuals entry in the Tools menu in Visual Studio is now called Synergy/DE Documentation, and it offers two options. The Online option opens Synergy/DE online documentation (docs.synergyde.com), and the Local option opens a local copy of the Synergy/DE documentation if one has been installed.
- Better Xamarin version enforcement. The SDI installation does a better job of enforcing Xamarin requirements. The installation checks to make sure a supported version of Xamarin is installed for each version of Visual Studio selected for the installation. (Xamarin is not required for SDI, but if Xamarin is installed, it must be a supported version.)
- MSBuild-only installation of SDI. The SDI installation enables you to install only the components (targets and build utilities) required to build traditional Synergy and Synergy .NET applications from the command line. This enables you to install SDI on a machine that has MSBuild but not Visual Studio.
- Ability to specify Visual Studio version. The SDI installation program enables you to select which installed Visual Studio versions, editions, updates, and components you want SDI to work with.
- Empty ELB project. An Executable Library project can now have no source files, which enables you to build an ELB directly from an OLB.
- Enhanced code sample in Formatting Options dialog. When setting formatting options, the preview shows colorization and indentation; it can also show the newer data division formatting options.
Prototyping enhancements for traditional Synergy
There are significant performance enhancements in 10.3.3 prototyping of traditional Synergy applications. Instead of many small files, a single .dbp file now contains all routines, and SYNDEFNS and -qdefns now allow wildcards. Note that with the enhancements, you’re likely to find new errors in your code. See “The ‘Types They are a Changin’” for more information.
Additional performance improvements in dblproto result in prototyping that’s up to six times faster on large projects.
Automatic support for xfServer connections by AppDomain
Synergy/DE now defaults to an xfServer connection per AppDomain without requiring S_SERVER_THREAD_INIT. This provides better support for the WCF and IIS services model, using AppDomains for state control. (.NET)
HIPAA compliant SSL encryption for OpenNet
10.3.3 includes OPENSSL encryption for OpenNet. This enables you to enhance data privacy and security and provides compliance with HIPAA and PCI regulations.
Support for IPv6
The Synergy/DE products that use TCP/IP now support the internet protocol IPv6. This includes xfServer, xfServerPlus, the Synergy socket API, the HTTP document transport API, lmu (on Windows), and Connectivity Series. This provides the ability to support additional addresses, more efficient routing, and modern networks of mobile devices. For more information, see “IPv6 is Coming! IPv6 is Coming!“.
Sparse field binding for Select
A new Sparse class in the Synergex.SynergyDE.Select namespace enables dynamic binding of sparse Select fields in a similar manner to SQL Connection. It takes a variable number of field arguments, and its objects can be dynamically combined using the .AND. operator.
Ability to create a string from a large memory handle and vice versa
New methods enable you to create a string from a memory handle and vice versa.
xfODBC 64-bit installer
10.3.3 includes a 64-bit version of the xfODBC Client.