Synergy .NET Basics

This topic includes the following sections:

 

.NET applications are made up of assemblies: executable assemblies (.exe) and class library assemblies (.dll). Synergy .NET components enable you to use Visual Studio to create the following:

Note

.NET Core and .NET Standard support is currently experimental and unsupported.

Linux development for Mono is currently experimental and unsupported. Debugging is not available for Linux.

The following table lists supported platforms. For information on requirements, see Synergy .NET Requirements and www.synergex.com/synergy-dbl-integration.

Platform Device licensinga Project templatesb NuGet packagesc
.NET Framework on Windows x86 or x64 Optional

ASP.NET Server Control Library

Class Library (.NET Framework)

Class Library (.NET Standard)

Console App (.NET Framework)

Empty Project

Interop

Synergy Custom Action

Synergy/DE Repository

Unit Test Project

WCF Service Library

Windows Forms Application

Windows Forms Control Library

Windows Service

WPF App

WPF User Control Library

For .NET Standard only: Synergex.SynergyDE.synrnt and
Synergex.SynergyDE.Build
.NET Core on Windows x86 or x64 Not supported

Console App (.NET Core)

Class Library (.NET Core)

Class Library (.NET Standard)

Synergy/DE Repository

Synergex.SynergyDE.synrnt
Synergex.SynergyDE.Build

Mono on 64-bit Linux Not supported

ASP.NET Server Control Library

Class Library (.NET Framework)

Console App (.NET Framework)

Empty Project

Interop

Synergy/DE Repository

Unit Test Project

WCF Service Library

Windows Forms Application

Windows Forms Control Library

None
UWP on a Windows 10 operating system Required Class Library (.NET Standard)

Synergex.SynergyDE.synrnt
Synergex.SynergyDE.Build

a. See Licensing .NET assemblies for information on device licensing.

b. See Synergy/DE project templates for information on project templates.

c. See Synergy .NET libraries and NuGet packages below for information.

There are a number of advantages to developing with Synergy .NET. In addition to the benefits of managed code and the Visual Studio IDE, Synergy .NET assemblies can use .NET Framework classes, and they can interoperate with assemblies written in other .NET languages (such as C# or VB), and more.

Visual Studio projects and Synergy DBL: the building blocks

Project templates are the starting points for application and library development in Visual Studio. You'll use project templates in Visual Studio to create Synergy projects (and solutions to contain those projects), and you'll build Synergy applications and libraries from those projects. See Synergy files, projects, and solutions for more information.

In code files for your Synergy projects, you'll use Synergy DBL statements, routines, etc., that are supported for Synergy .NET. See Synergy DBL Support for .NET for information on which Synergy DBL features are supported for .NET, and note that the grid that appears at the top of each topic for a Synergy DBL routine indicates whether the routine or statement is supported for Synergy .NET. If WN is visible in the grid (as it is for XRETURN for example), the routine or statement is supported for Synergy .NET, although there may be restrictions. See Documentation conventions for more information on this grid.

Synergy .NET components

Synergy .NET is not a Synergy/DE product. Rather, it is a term for the use of Synergy DBL with .NET. The Synergy/DE components used for Synergy .NET development are Synergy DBL Integration for Visual Studio (SDI), the Synergy .NET libraries, and the Synergy .NET NuGet packages.

Synergy DBL Integration for Visual Studio

Synergy DBL Integration for Visual Studio (SDI) is a Synergy/DE product that enables you to use Visual Studio to develop Synergy applications and libraries.

SDI enables you to use Visual Studio features (such as IntelliSense, colorization, and regions) as you develop Synergy applications, and it hooks into and provides project wizards and designers. For Synergy .NET development, SDI includes the Synergy .NET compiler, which is invoked by Visual Studio build features (MSBuild). SDI also enables you to use the Visual Studio debugger to debug your Synergy .NET code for Windows applications. (Debugging is not currently supported for Linux.) If a Synergy .NET assembly interoperates with code from other languages, you can step seamlessly from one language to another.

See SDI Basics for more information on SDI, and see www.synergex.com/synergy-dbl-integration for information on system requirements.

Synergy .NET libraries and NuGet packages

Although Synergy .NET assemblies run under a common language runtime (CLR) for the .NET Frameworks they target, some Synergy-specific runtime functionality is required. This is supplied by runtime libraries, which are included in Synergy/DE for desktop/server applications and libraries, and are included in the Synergex.SynergyDE.synrnt NuGet package for .NET Core and .NET Standard. 

For .NET Core and .NET Standard development, there is another NuGet package, Synergex.SynergyDE.Build, which is used behind the scenes for project builds. A reference to this package is required and is automatically added to .NET Core and .NET Standard projects. Note, however, that references to this package are not visible in the NuGet Package Manager.

Note

Upgrading SDI does not update packages for existing projects (although it does update the packages used to subsequently create new projects). To update NuGet packages for existing projects, you must use the NuGet Package Manager. See Microsoft documentation for more information.

SDI also includes libraries that enable you to use the XML API and the Repository subroutine library (the DD_ routines) on desktop/server platforms.

Compile-time defines

The following compile-time defines enable you to conditionally compile code for .NET:

For more information, see Built‑in compiler definitions.

Using environment variables

Environment variables can be used for Synergy .NET development (e.g., for build-time settings) and runtime settings (although there are restrictions for UWP). See Environment variables and Visual Studio development for information.

Using Synergy/DE repositories

To use a Synergy/DE repository with a Synergy .NET project, you can either create a repository project and then reference that project, or use RPSMFIL and RPSTFIL (or RPSDAT) to specify the location of repository files. See Using Synergy/DE repositories in Visual Studio for more information.

Other options for .NET

Synergy .NET is the primary solution for Microsoft .NET Framework on Windows, and it makes UWP and Mono development possible. But there are other Synergy/DE options for .NET development for desktop and server applications on Windows: