SDI features

This topic includes the following sections:

When you install Visual Studio Components for SDI (see the Synergy DBL Integration Requirements page), the Synergy DBL language, the Synergy compilers, and Synergy debugging are integrated with Visual Studio. This integration enables you to

Note that you can install MSBuild Components for SDI without installing SDI’s Visual Studio Components. This enables you to set up a build server for Synergy project builds without requiring the Visual Studio IDE. (See the Synergy DBL Integration Requirements page for more information.) The features described in this documentation apply to SDI with the full Visual Studio IDE, not to MSBuild Components when installed without SDI Visual Studio components.

Features for both .NET and traditional Synergy projects in Visual Studio

For Synergy projects, SDI adds the following to the Visual Studio Build menu:

Note

Enabling Stop Build on First Error may have unexpected consequences and may cause errors when used in conjunction with parallel builds.

Note

Due to a conflict with SQL Server Data Tools (SSDT) projects, Stop Build on First Error does not automatically cancel builds when an SSDT project is detected in the current solution.

The difference between the commands under Project Only and the standard project-specific build commands (e.g., Build > Build MyProject) is that the Project Only commands do not affect referenced projects. The standard project-specific commands do affect (i.e., they do build, rebuild, and clean) referenced projects. Note, however, that we generally recommend using solution builds to ensure that resulting assemblies are built correctly. If you do build projects separately, the Clear Error List command (discussed below) can make it easier to use the Visual Studio Error List.

Additionally, a few menu entries are added to the Tools menu when a solution with a Synergy project is open in Visual Studio:

The following are also added:

Synergy DBL Integration Improvement Program

The Synergy DBL Integration Improvement Program, which is the name of SDI’s telemetry functionality, collects information to help debug issues with customer projects, and it tracks issues and project information to help us prioritize fixes and new features. SDI includes a number of features related to this telemetry, including features that enable you to participate in or opt out of this program and allow or prevent the collection of additional build-related data. For details on SDI telemetry, including information on what is collected, how we use telemetry data, how we remove personal information from collected data, and how to opt in or out, see Synergy DBL Integration Improvement Program (SDI telemetry).

Additional features for Synergy .NET

For Synergy .NET projects, SDI also includes the following:

Additional features for traditional Synergy

For traditional Synergy development, SDI also includes the following:

xfODBC specialization file

SDI includes the xfODBCSpecialization15.dll file, which is specifically for xfODBC. This file enables xfODBC data sources to be used in the data designer for Visual Studio. To use xfODBC data sources in these versions of Visual Studio, you must install SDI (even if you don’t plan to develop Synergy applications or libraries in Visual Studio).

Synergy comments, XML doc comments, and task list tokens

In both traditional Synergy and Synergy .NET code, the semicolon (;) is used for code comments. And with Synergy .NET, three consecutive semicolons (;;;) are used for documentation comments. See Comments and Documentation comments for general information, and note the following:

Synergy code snippets

SDI includes the following code snippets for use in Synergy source files. To see these snippets, open the Code Snippets Manager (Tools > Code Snippet Manager) and select Synergy as the language in this dialog. The Code Snippets Manager lists all the Synergy code snippets, includes a description of what each code snippet does, and shows the shortcut for each snippet. For more information on using code snippets, see Visual Studio documentation.

Snippet shortcut(s)

Snippet adds...

.region

A region (.REGION-.ENDREGION)

~

A destructor

attribute

An attribute

begin

A BEGIN-END block

case

A CASE statement
class A class
common A shared data record (COMMON-ENDCOMMON)
ctor A constructor
cw A Console.WriteLine statement
delegate A delegate

;;;
or
comment

A summary documentation comment
doforever A DO-FOREVER loop
dountil A DO-UNTIL loop
enum An enumeration
equals An Equals() method
exception An exception
external An external function
for A FOR-FROM-THRU loop
fordo A FOR-DO loop
foreach A FOREACH loop
forfromthru A FOR-FROM-THRU loop
foruntildo A FOR-UNTIL-DO loop
function A Synergy function

gds
or
global

A global data section
group A group
if An IF statement
ifthenelse An IF-THEN-ELSE statement
indexer An indexer
interface An interface
invoke A safe event invocation
iterator A simple iterator
iterindex A named iterator/indexer pair using a nested class
literal A literal
main A Synergy main routine
mbox A .NET MessageBox.Show statement
method A method
namespace A namespace
.if A preprocessor .IF statement
.ifdef A preprocessor .IFDEF statement
prop An auto-implemented property with a field for the getter and setter
propa A dependency property
propauto A property
propdp A dependency property
property

An auto-implemented property (without a field for the getter and setter)

record A record
structure A structure
subroutine A Synergy subroutine
using A Synergy USING statement
try A TRY-CATCH statement
tryf A TRY-CATCH-FINALLY statement
while A WHILE loop