Synergy .NET Basics
This topic includes the following sections:
- Visual Studio projects and Synergy DBL: the building blocks
- Synergy .NET components
- Compile-time defines
- Using environment variables
- Using Synergy/DE repositories
- Other options for .NET
.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 Synergy .NET executables and libraries for .NET Framework and .NET Core on Windows x86 and x64.
|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)
Synergy Custom Action
Unit Test Project
WCF Service Library
Windows Forms Application
Windows Forms Control Library
WPF User Control Library
|For .NET Standard only: Synergex.SynergyDE.synrnt and
|.NET Core on Windows x86 or x64||Not supported||
Console App (.NET Core)
Class Library (.NET Core)
Class Library (.NET Standard)
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, they can interoperate with assemblies written in other .NET languages (such as C# or VB), and more.
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 projects, solutions, and files 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 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. If a Synergy .NET assembly interoperates with code from other languages, you can step seamlessly from one language to another.
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,
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.
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.
- To use the XML API, add a reference to Synergex.SynergyDE.synxml.dll. This is not supported for .NET Core development.
- To use the Repository subroutine library, add a reference to Synergex.SynergyDE.ddlib.dll. This is not supported for .NET Core development.
The following compile-time defines enable you to conditionally compile code for .NET:
- _DEBUG — Enables you to conditionally include or exclude code based on whether or not a program is compiled in debug mode.
- DBLNET — Enables you to conditionally compile code for Synergy .NET.
- D_NETSTANDARD — Enables you to conditionally compile for .NET Core and .NET Standard.
- D_PORTABLE — Enables you to conditionally compile for .NET Standard.
- RUNTIME_TARGET — Set at compile time to the runtime compatibility setting for a program. RUNTIME_TARGET enables you to programmatically exclude runtime features that aren’t available in the version you target. (E.g., you could exclude Join functionality if the runtime version does not support it.)
For more information, see Built-in compiler definitions.
Environment variables can be used for Synergy .NET development (e.g., for build-time settings) and runtime settings. See Environment variables and Visual Studio development for information.
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.
Synergy .NET is the primary solution for Microsoft .NET Framework on Windows, but there are other Synergy/DE options for .NET development for desktop and server applications on Windows:
- The Gennet40 utility and the Synergy .NET assembly API enable existing Synergy code to take advantage of .NET features on Windows while still using the traditional Synergy compiler and runtime on Windows. See gennet40 utility and Synergy .NET Assembly API for information.
- UI Toolkit .NET routines enable you to embed .NET forms, .NET controls, and Windows Presentation Foundation (WPF) elements in Toolkit applications using the traditional Synergy compiler and runtime on Windows. See .NET Routines.
- xfNetLink .NET Edition enables a .NET client to call Synergy routines residing on a remote server machine. Using the component generation tools, Visual Studio, and the .NET Framework, you can create an assembly that references Synergy routines. xfNetLink .NET is supported on Windows platforms only; however, you can create an assembly from Synergy routines that reside on UNIX or OpenVMS. See Part IV: xfNetLink .NET Edition.
- The .NET Framework Data Provider for ODBC (which is included with the .NET Framework) enables you to access Synergy data from .NET applications on Windows. See Accessing Synergy data in a .NET environment.