Synergy/DE project templates

Synergy DBL Integration for Visual Studio includes project templates for

In Visual Studio, Synergy project templates are available in the New Project dialog, which opens when you select a Visual Studio option that creates a new project (e.g., File > New > Project). Synergy project templates are also available in a NuGet package, Synergex.Projects.Templates, which can be used with the .NET CLI to develop Synergy .NET 6 and higher applications (see Developing for .NET 6 or Higher).

Traditional Synergy project templates

For information on using these templates to develop traditional Synergy applications and libraries, see Developing a traditional Synergy application in Visual Studio.

Executable Library (ELB)

For creating a traditional Synergy executable library (ELB), which is a collection of traditional Synergy routines that can be used in traditional Synergy OLBs, DBRs, and other ELBs. Note the following:

  • You can build an ELB directly from an OLB. To do this, open the ELB project and add a reference to the OLB project. Then remove any source files from the ELB project, and build the ELB.
  • To include gennet40/gennet-generated source files in an ELB, add the source files as compile files, add the .inc file generated by gennet40/gennet as a content file, and set the “Concatenate source files (-qconcat)” option on the Compile page of project properties before compiling the project.
  • For OpenVMS development, use this template for code that will become a shared library. See OpenVMS development.

Projects created with this template can reference traditional Synergy ELB, OLB, and Repository projects.

Video

See the Synergex YouTube video Using the ELB Project Template.

Multiple Mainline (DBR)

For creating a traditional Synergy project that results in multiple traditional Synergy mainline programs. Use this to create an application that is distributed as a number of DBRs (which are typically linked against common libraries). Note that each source file results in a separate .dbr file, and each source file can be run and debugged separately. To do this, right-click the source file in Solution Explorer and then select “Start Debugging” or “Start Without Debugging” from the context menu.

To specify which program in a multiple mainline project is the entry point for the application, set the “Startup object” option on the Application page of project properties, or right-click the source file in Solution Explorer and select “Set as Startup object” from the context menu. (The program set as the startup object is displayed in bold text in Solution Explorer.) For more information, see Application page of Visual Studio project properties (traditional Synergy).

Projects created with this template can reference traditional Synergy ELB, OLB, and Repository projects.

Video

See the Synergex YouTube video Using the Multiple Mainline Project Template.

Object Library (OLB)

For creating a traditional Synergy object library (OLB) that can be linked to or referenced by other libraries and applications. Note the following:

  • To build only sources that have been added or changed since the last build, select a Build option from the Visual Studio Build menu. To rebuild the entire project or solution, select a Rebuild option from the Visual Studio Build menu. You will need to do this if you remove a source module and you want the build to reflect that change.
  • An OLB project should be referenced by only one project in the solution. (Referencing an OLB project from multiple projects causes the OLB code to be compiled into multiple files for the application.) When creating a library for shared code, use an ELB rather than an OLB.
  • To include gennet40/gennet-generated source files in an OLB, add the source files as compile files, add the .inc file generated by gennet40/gennet as a content file, and set the “Concatenate source files (-qconcat)” option on the Compile page of project properties before compiling the project.

Projects created with this template can reference source files and Repository projects.

For information on building an ELB directly from an OLB, see Executable Library (ELB) above.

Video

See the Synergex YouTube video Using the OLB Project Template.

Script

For creating a UI Toolkit window library. Script projects accept window script source files and compile those sources to produce the result. May reference Repository projects to automatically supply RPSMFIL and RPSTFIL to the Script compiler.

Synergy/DE Repository

For creating a repository that can be referenced by traditional Synergy and Synergy .NET projects. Repository projects replace RPSMFIL and RPSTFIL settings and enable the build system to know when a project should be rebuilt due to a repository change. See Using Synergy/DE repositories in Visual Studio and Repository page of Visual Studio project properties for more information.

Video

See the Synergex YouTube video Using the Repository Project Template.

Traditional Application (DBR)

For creating a traditional Synergy program with a single .dbr file. (Only one source file will contain a MAIN.) Projects created with this template can reference traditional Synergy ELB, OLB, and Repository projects.

Unit Test (Traditional)

For creating an MSTest unit test project for traditional Synergy unit tests. When built, a traditional Synergy unit test project results in a traditional Synergy unit test library, which is an ELB. See Unit testing for traditional Synergy for more information.

Synergy .NET project templates

For information on using the following templates to develop Synergy .NET applications and libraries, see Developing for .NET Framework, Developing for .NET 6 or Higher, and Developing .NET Standard Libraries. Note that project templates for .NET 6 and higher and .NET Standard are referred to as SDK-style project templates.

ASP.NET Server Control Library

For creating a library assembly (.dll) that contains ASP.NET web server controls—i.e., controls that extend System.Web.UI.WebControls.

Class Library (.NET)

For creating a library assembly that targets .NET 6 or higher. See Developing for .NET 6 or Higher for more information.

Class Library (.NET Framework)

For creating a library assembly (.dll) that targets .NET Framework on Windows.

Class Library (.NET Standard)

For creating a library assembly (.dll) that targets .NET Standard. See Developing .NET Standard Libraries for more information.

Console App (.NET)

For creating a console application that runs on .NET 6 or higher. See Developing for .NET 6 or Higher for more information.

Console App (.NET Framework)

For creating a command-line application (.exe) that targets .NET Framework on Windows.

Empty Project

For creating a project with no source files or references. By default, projects created from this template generate application assemblies (.exe).

Interop

For accessing Synergy routines from a .NET assembly created with another language. This template was designed for converting xfServerPlus routines for native .NET access, but it can be used in other cases. See the following for more information.

For information on project properties specific to Interop projects, see Interop page of Visual Studio project properties (Synergy .NET).

Synergy Custom Action

For creating an MSI custom action when using the Windows Installer XML (WiX) toolset. Use this when you need to invoke Synergy-specific functionality in a WiX installer—e.g., if you want to create or modify an ISAM file as part of a WiX install.

Synergy/DE Repository

For creating a repository that can be referenced by traditional Synergy and Synergy .NET projects. Repository projects replace RPSMFIL and RPSTFIL settings and enable the build system to know when a project should be rebuilt due to a repository change. See Using Synergy/DE repositories in Visual Studio and Repository page of Visual Studio project properties for more information.

Video

See the Synergex YouTube video Using the Repository Project Template.

Unit Test (.NET)

For creating a project that contains .NET 6 or higher unit tests. See Unit Testing for .NET.

Unit Test Project (.NET Framework)

For creating a project that contains unit tests.

WCF Service Library

For creating a library assembly (.dll) with Windows Communication Foundation (WCF) services.

Windows Forms Application

This project type is deprecated. Synergy Windows Forms projects are no longer supported.

For creating an application with a Windows Forms user interface.

Windows Forms Control Library

This project type is deprecated. Synergy Windows Forms projects are no longer supported.

For creating a library assembly (.dll) with controls to use in Windows Forms applications.

Windows Service

For creating a Windows service (.exe).

WPF App (.NET Framework)

This project type is deprecated. Synergy WPF projects are no longer supported.

For creating a Windows Presentation Foundation (WPF) application.

WPF User Control Library

This project type is deprecated. Synergy WPF projects are no longer supported.

For creating a library assembly (.dll) with user-defined Windows Presentation Foundation (WPF) controls (i.e., controls that extend System.Windows.Forms.UserControl).