10.3.3g update is now available!
Download 10.3.3g for important quality improvements on all platforms. See below to learn about the features in the current Synergy/DE release, 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.
New build features
You can now 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
Project Only build operations (Synergy/DE 10.3.3e and up) enable you decrease build times by letting you specify which projects to build. These are project-specific versions of the Visual Studio build, rebuild, and clean commands.
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.
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.
Support for .NET Core libraries and console applications (version 2.1 and higher) and .NET Standard libraries (version 2.0 and higher).
Includes new project templates. .NET Standard libraries can be added to UWP applications written in other .NET languages. (.NET Standard libraries replaced portable class libraries (PCLs), which Microsoft deprecated.)
Compiler performance improvements and enhanced error detection
(10.3.3d) The compiler may detect errors in your code that previous versions did not. This provides significant performance improvements in some customer scenarios. For more information, see “Don’t Pass the Buck to the Runtime” and Synergex KnowledgeBase article 100002319.
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.
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.
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.
- (10.3.3f) Support for Visual Studio 2017 version 15.8, Microsoft’s latest release. See Microsoft’s Visual Studio blog for more information.
- (10.3.3f) Improved Visual Studio editor performance when editing or scrolling through very large files.
- (10.3.3f) Improved code completion (IntelliSense) performance and smoother editing experience in large source files and solutions.
- Other improvements to code navigation, IntelliSense, debugging, and performance
- Prototype validation of XSUBR calls in traditional Synergy projects
- 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 (synergex.com/docs), and the Local option opens a local copy of the Synergy/DE documentation if one has been installed.
- 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.
- Clear Errors List command for removing (Synergy-related) errors from the Visual Studio Error List. If you have errors from multiple projects in a solution, you can clear them all, build one project, and then only see errors from that project. This is especially useful when you first move your projects to Visual Studio.
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.
In addition to the improvements mentioned previously, Synergy/DE on .NET 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. 10.3.3 also includes significant fixes for xfServer/xfServerPlus on OpenVMS.
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 and SQL Connection Enhancements
- (10.3.3g) xfODBC support for ODBC Driver access from a Desktop Bridge application, e.g., Office 365. Available on Windows 10/Server 2016 systems from build 1703 or higher (RS2).
- (10.3.3f) Support for new SQL Server ODBC driver 17 for SQL Connection (required for Azure Managed Instance support).
- (10.e.e) xfODBC 64-bit installer and driver support for ODBC version 3.8. 64-bit version of the xfODBC Client and enables you to use ODBC-enabled applications that only support ODBC version 3.x, such as Microsoft’s Power BI business analytics tools.
(10.3.3g) Synergy DBL Integration with Visual Studio requires .NET Framework 4.7.2.
As of 10.3.3e,
- AIX 7.1 is the new minimum for AIX.
- Windows Vista and Windows Server 2008 are no longer supported. (Windows Server 2008 R2 is still supported.)
- Visual Studio 2013 is no longer supported with SDI.
- Developing Synergy Android, iOS, and UWP applications is no longer supported; you can still create Synergy class libraries to use in UWP applications written in other .NET languages.
- Developers using Visual Studio 2017 should update to the latest VS 2017 version, 15.6, and stay current with future VS and SDI updates.
- Developers using Windows 7 should stay current with Microsoft’s latest Windows updates.
- Developers using any Synergy/DE 10.3.3x version on OpenVMS should upgrade to 10.3.3e due to significant performance and licensing fixes in xfServer and xfServerPlus.
(10.3.3d) Support for Windows 10 Fall Creators Update.
Most Synergy/DE updates include many fixes throughout the Synergy tool suite. For a complete list of the latest changes, see the release notes in the Synergex Resource Center or when you download the latest update.