Combined languages in server and client implementations

You can choose to combine languages for the server implementation and the optional client implementations of your opaque data type: C or C++ for the server implementation and ActiveX for the client implementation.

The following table describes some of the advantages and disadvantages to consider when you choose server and client implementation languages.
Option Advantage Disadvantage
Using the same server and client implementation language You have less code to edit.

With C++, much of the server and client code overlaps (see Choosing C++ for both client and server projects).

C++ has restrictions on the functionality of the opaque data type.

You can use C++ to implement only opaque data types; you must use C or Java™ to implement other DataBlade® module objects.

You cannot port a C++ server project from Windows™ to UNIX™ operating systems.

See Limitations of opaque types for each language for more information.

Using different languages for the server and client implementations If you use C as the server language, you can implement functionality that is not available for Java or C++. You have more code to edit because you have separate server and client source code.
The following figure illustrates the advantage of choosing C++ for both the client and server implementations: much of the same generated source code can be used to compile each project.
Figure 1: Choosing C++ for both client and server projects


See Implement ActiveX value objects for more information about the generated files.
Important: It is recommended that developers create DataBlade modules in C++ only for client projects and for server projects that use HCL OneDB™ on Windows only.