Development system requirements

To develop with Synergy .NET, you will need a Windows development machine with Visual Studio, Synergy/DE, and Synergy DBL Integration for Visual Studio (SDI). For details on these and other System requirements, see www.synergex.com/synergy-dbl-integration.

Application requirements

A Visual Studio solution that includes one or more Synergy projects must have a reference to Synergy runtime libraries and must use Synergy licensing. These requirements are discussed below. For framework-specific requirements and development information, see the following topics:

Every Visual Studio solution that has a Synergy .NET project must have a reference to Synergy runtime libraries, either the synrnt library distributed with Synergy/DE or the Synergex.SynergyDE.synrnt NuGet package. Most Synergy project templates automatically include this reference. The exception is Synergy portable class library projects (see Runtime library references for portable class libraries below).

Each project created from a Synergy .NET Framework or Linux (Mono) template automatically references the version of synrnt distributed with Synergy/DE. You do not need to add or change this reference.

Each project created from a Synergy .NET Core or .NET Standard template automatically includes a reference to the Synergex.SynergyDE.synrnt NuGet package and to Synergex.SynergyDE.Build, which is used behind the scenes for .NET Core and .NET Standard project builds. (You can see these references under the References > NuGet node for the project in Solution Explorer.)

The Synergex.SynergyDE.synrnt and Synergex.SynergyDE.Build NuGet packages are downloaded to a local NuGet repository when SDI is installed. These packages are used for new projects created from .NET Core and .NET Standard templates. Visual Studio checks the NuGet site for updates, and when a package on the NuGet site is updated, you can use the NuGet Package Manager to update the package for a project.

Runtime library references for portable class libraries

Portable class libraries, which are deprecated, do not include a reference to synrnt, so if all Synergy projects in a solution are for portable class libraries, you must manually add a reference to the Synergex.SynergyDE.synrnt NuGet package, and this reference must be added to a project that is not for a portable class library. For example, if a C# application has a Synergy portable class library, you must manually add this reference to some other project (e.g., to the project for the executable). Use the Visual Studio NuGet Package Manager to install the package; then add the reference.

Licensing .NET assemblies

For .NET Framework assemblies, you can generally use either traditional Synergy licensing or device licensing. If all Synergy DBL code for an application is in portable class libraries, device licensing is required.

Traditional Synergy licensing is required for .NET Core development and for Linux (Mono) development.

Device licensing is required for UWP development.

To use device licensing, your application must have a device licensing implementation. See Device licensing (.NET).

If your application uses traditional Synergy licensing and the target machine has not been configured for local Synergy licensing, you must specify a license server in the App.config file or with the SynergyLicenseServer environment variable. (See Runtime Settings page, Project Designer (Synergy .NET) and SynergyLicenseServer.) For example, if you deploy a .NET Core assembly to a machine that doesn't have Synergy/DE, you will need to set SynergyLicenseServer in the environment — e.g., in the launch configuration file for the .NET Core application — because App.config files are not used for .NET Core.

You can implement a cloud version of traditional Synergy licensing by running a Synergy license server a machine on an Azure virtual network (VNet). (The machine doesn't need to be powerful; it can have very little RAM, a small CPU, etc.) And then, on every machine that needs Synergy licensing, you can set the environment variable to the Synergy license server. With this setup, you can support a scalable, flexible licensing environment that can work with a large number of license client machines or with varying numbers of machines that need varying numbers of licenses. For example, you can use this kind of setup to support Docker services.

Deployment system requirements

To deploy a Windows .NET Framework application, the target Windows system must have the following (see www.synergex.com/synergy-dbl-integration for information on required versions of these products):

.NET Framework

Synergy/DE Professional series, which includes the Synergy .NET runtime libraries

With ClickOnce deployment, it is possible to deploy a .NET Framework application to Windows machines that do not have Synergy/DE, but this is not supported. See ClickOnce Deployment for Synergy .NET for more information.

To deploy a .NET Core application, either the target Windows system must have .NET Core, or the deployment must be self-contained. If the target system for a self-contained deployment has a version of Windows prior to Windows 10 or Server 2016, make sure Windows is up to date and includes the Update for Universal C Runtime in Windows. For more information on .NET Core deployments, see Microsoft documentation (e.g., .NET Core application deployment).

To deploy a UWP application with a Synergy .NET Standard library, the target system must have a Windows 10 operating system (e.g., Windows 10 Mobile).

Using synrnt on Linux systems

On Linux systems, you must manually add the synrnt runtime library (located in dbl/bin) to the global assembly cache or make sure it is in the same folder as your application binaries. To add synrnt to the global assembly cache, use the following command: