Synergex is pleased to announce the immediate availability of Synergy/DE 11.1.1g, a quality release that includes a wide range of improvements across the entire Synergy product line. We strongly encourage all Synergy developers to review the release notes for detailed information about everything that changed.
Besides a significant focus on quality, we have also made several feature enhancements in our Visual Studio integration tools, enhancing the developers’ experience and improving their productivity.
First off, we have introduced collapsible-region support for many DBL statements and other language constructs. For example, some of the now collapsible statements include BEGIN-END blocks, USING-ENDUSING, CASE-ENDCASE, IF-THEN-ELSE statements, and more. This feature was specifically requested and voted on by developers in the Synergy Ideas Forum.
We also added support for activating the go-to-definition feature via mouse clicks, in addition to using the existing keyboard shortcut-based mechanism. The default behavior is activated via Ctrl + Left-Click but is customizable in the Tools/Options dialog under Text Editor settings.
Another area that we focused on is improving the accuracy of those “red squiggles” that show up in your code when something is wrong and occasionally when something is not wrong! Inaccurate red squigglies should occur less frequently now, although we do know that have some additional work still to do in this area.
To give developers more options when they need to get in quickly and look at something specific, especially in solutions with large numbers of projects, we also implemented support for Visual Studio 2019’s “Filtered Solution” feature that allows you to check a “Do not load projects” option in the Project Open dialog. Visual Studio opens the solution very quickly when you do this, but all projects are in an unloaded state. The developer can then select the projects they wish to work on in Solution Explorer and use the “Reload Project” context menu to load them. The context menu then includes options to allow you to load either direct dependencies or all dependencies of the projects you loaded, meaning that you can quickly get to a buildable scenario without having all projects loaded. Solution Explorer also has options to show or hide unloaded projects.
Having filtered your solution the way you want it, you can then use the “Save as Solution Filter” context menu to save the state of your solution for the next time you need it that way. The file is saved as a .slnf file and can be reopened the same way you open the solution.
We have overhauled our project build system, reduced memory usage, and improved performance for Visual Studio and command-line builds. And at the same time, we have improved and standardized the way they interact with MSBuild, allowing us to adopt new features more quickly.
And armed with our new MSBuild capabilities, we added support for a new feature known as /graphBuild, making pre-build analysis of inter-project dependencies work much more effectively. In turn, MSBuild can now more effectively perform parallel builds of multiple projects simultaneously, in some situations resulting in improvements in overall build time.
We are confident that most developers should experience improvements in overall build times across the board, particularly for traditional Synergy projects. And in some cases, with the right combination of projects and resources, those improvements could be significant.
For example, suppose you have a small number of base libraries used by a large number of higher-level projects. In that case, once those base libraries have been built, there is a good chance that higher-level projects can build in parallel, with the overall process completing more quickly. The more CPU and memory resources that are available, the faster things can proceed. In some environments, such as on dedicated build servers running CICD pipelines, we have seen improvements of up to 30 – 40% in overall build time as compared to the previously released version. But improvements of that order do require access to considerable resources; most improvements will be more modest.
If you’re already using Visual Studio to develop your Synergy code, we encourage you to upgrade to this new version as soon as possible; remember, you can always use runtime version targeting if you’re not ready to upgrade your production systems. And don’t let the fact that you only develop traditional Synergy code or deploy to Unix, Linux, or OpenVMS deter you; Visual Studio can make a great development environment for those scenarios too! Talk to your Synergex account representative for more information.