System overview: xfNetLink .NET
xfNetLink .NET, in conjunction with Microsoft’s .NET Framework, enables you to create a .NET client for xfServerPlus. Using the component generation tools in xfNetLink .NET, you can create a Synergy .NET assembly that references Synergy methods defined in the SMC. (These tools can be accessed from within Workbench or from the command line.) The assembly can be used in any .NET environment to call routines residing on the Synergy server. For example, the client might be a Windows application written in a .NET-capable language such as C# or Visual Basic, or a web application that uses ASP.NET, or a web service. We discuss a few of these options below in Development options. The .NET redistributable must always be deployed on the Windows client machine. Although .NET is a Microsoft solution, your Synergy routines can reside on any supported Synergy platform.
Figure 1 shows the primary components of a distributed application that accesses Synergy code from a .NET client. The diagram describes two machines:
- A client machine running xfNetLink .NET, the .NET Framework, and an application that uses a Synergy assembly. If you’re developing a two-tier system with a Windows client application, the client is the end-user’s machine. If you’re developing a three-tier system with a web client application, the client is the web server machine.
- A Synergy server running xfServerPlus, which handles the remote execution of Synergy routines. The routines are made available for remote execution by including them in an ELB or shared image and defining them in the Synergy Method Catalog (SMC), also located on the server machine. You can populate the SMC with routine information by entering it manually through the Method Definition Utility or by attributing your code, running dbl2xml to create an XML file, and then loading that file into the SMC. You may use multiple servers; each machine requires an xfServerPlus license.
xfNetLink .NET enables you to use your existing Synergy code without rewriting it, provided that the code is already written in the form of an external subroutine or function. If any of the routines require input from or send messages to the user, or if they might generate untrapped errors, they must be adjusted to work as server-level logic.
Development options
Visual Basic
Using Visual Basic, you can create a two-tier xfNetLink solution: a VB desktop application on a Windows client accessing Synergy logic residing on a remote Synergy server. See the Microsoft website for more information on Visual Basic. (At one time this product was called Visual Basic .NET to distinguish it from the original Visual Basic. Now Microsoft simply refers to it as Visual Basic.)
ASP.NET
Active Server Pages .NET are a combination of HTML coding and scripting language. For ASP.NET, the scripting language can be any Common Language Runtime-compliant language; the most commonly used are C# and VB. Using ASP.NET enables you to create a three-tier distributed system, which includes an end-user machine running a web browser, a web server where xfNetLink and your ASP.NET pages are located, and a Synergy server. ASP.NET requires a Windows web server running Microsoft IIS.
Web services
Web services are business components that provide functionality to a web or desktop application. They serve as “black boxes”: callers use the API that you publish and don’t need to know anything about the inner workings of the component. Web services provide you with discreet, reusable components. They are easily upgraded and can be called by multiple applications. Because web services are a .NET solution, you can write them in any language that supports .NET; however, they can be deployed only on Windows servers running Microsoft IIS.
A web service is not a complete solution. It is simply a component that is called by another application. Web services must be published on the web so that anyone can use them, which requires that you establish and adhere to strict security protocols.