Summary of Differences

The majority of the applications created with Net Express or Server Express will continue to work in Visual COBOL without any changes. However, there are some differences between these development systems you should consider when you upgrade to Visual COBOL.

Compiling and Building Differences

There are several aspects of compiling and building applications that behave differently in Visual COBOL. You might need to change the project properties and update some of the Compiler directives and settings that you previously used.

Output File Formats
Each project compiles into a single file (.dll, .so or .exe), or to multiple files of the same file type with one output file for each source file (.dll, .so, .exe, .int, or .gnt). As well as an .lbr file, which contains a collection of .int and .gnt files on Windows, you now can use a .dll as the container for application components.
Compiler directives
When you upgrade your source code to Visual COBOL some Compiler directives that were specifically designed for 16-bit systems now produce an error on compilation because they are no longer relevant. You should remove them from your code and directives files before you compile.
Linking
The static run-time system and the single-threaded run-time system on Windows are no longer required and they are not shipped with Visual COBOL. Applications built with Visual COBOL are now linked to the shared or dynamic run-time systems. On UNIX, you can link to the single-threaded or multi-threaded shared or dynamic run-time system.
Called Programs and Dependencies
At run time, called programs are found in the same way as before. However, there are some new ways to set COBPATH and copy files into a common folder.
File Handler
The File Handler .obj files are not available in Visual COBOL. Visual COBOL uses the File handler packaged in the mffh.dll file instead.
Makefile Conversion
You cannot use existing makefiles from inside Visual COBOL for Eclipse without changing some Eclipse defaults and adopting a modified build process. Where makefiles invoke commands supported by Visual COBOL they will continue to work as before. Please contact Micro Focus for more information on using existing makefiles.
OpenESQL Assistant
The OpenESQL Assistant data source names (DSNs) in Visual COBOL must be configured as ODBC
SQL Compiler Directive Options
When you upgrade your to Visual COBOL, some SQL applications could require additional SQL Compiler directive options to avoid compiler errors.
XML PARSE Statement
In Net Express, Server Express, the default setting for the XMLPARSE Compiler directive is COMPAT, which causes the XML PARSE statement to return information and events for IBM Enterprise COBOL Version 3. In Visual COBOL, the default is XMLPARSE(XMLSS), which returns information and events for IBM Enterprise COBOL Version 4.

Run-Time System Differences

There are some differences between the run-time systems supplied with Visual COBOL and those supplied with Net Express, Server Express. These, however, do not affect your existing applications if you recompile them from the source code in Visual COBOL.

OpenESQL
Visual COBOL sets the BEHAVIOR SQL Compiler directive option to MAINFRAME by default to provide optimal performance. To revert to the default behavior exhibited in Net Express, Server Express, set the BEHAVIOR directive to UNOPTIMIZED.
Single-Threaded Run-Time System
The single-threaded run-time system is not available in Visual COBOL on Windows. Instead, both single-threaded and multi-threaded applications run using the multi-threaded run-time system. This has no effect on your existing applications. On UNIX, the single-threaded run-time system is available, so that applications can link with third-party code.
Static-Linked Run-Time System
The static-linked run-time system is not available in Visual COBOL. Instead, you now link native code to the shared or dynamic run-time system. This has no effect on your existing applications.
Setting the environment on UNIX
You use the cobsetenv script to set your COBOL environment on UNIX.
Visual COBOL Co-existing with Earlier Micro Focus Products
Some additional configuration is required to ensure Visual COBOL and Net Express or Studio Enterprise Edition work properly when installed on the same machine.

Restrictions and Unsupported Features

Some features in earlier Micro Focus products are not available in Visual COBOL. However there are alternative techniques for many of these features.

CBL2XML Utility
The CBL2XML utility is currently available as a command line tool only.
Character-Mode Dialog System
Support for creating character-based user interfaces for applications that run in character environments is available for Visual COBOL if you install the Compatibility AddPack for Visual COBOL which includes a compatible version of the Character-Mode Dialog System. The AddPack is distributed for free through the Micro Focus SupportLine Web site.
DBMS Preprocessors
Earlier Micro Focus products supported DBMS preprocessor versions that are not supported in Visual COBOL. For a list of currently supported DBMS preprocessors, see the Database Access Support with Native COBOL topic.
Dialog System
Dialog System applications are not supported in Eclipse but you can upgrade the non-GUI components of an application to Eclipse, and then recreate the GUI components using the GUI tools in Eclipse.
Form Designer
Form Designer is the Net Express tool for creating user interfaces for CGI-based Internet and intranet applications. Form Designer and the HTML page wizard are not available in Visual COBOL.
FSView
FSView is a utility for administering Fileshare servers. The FSView GUI is not supported in Visual COBOL.
GNT Analyzer
GNT Analyzer is not available in Visual COBOL. It has been replaced by Test Coverage.
Host Compatibility Option (HCO)
Host Compatibility Option (HCO) is not supported in Visual COBOL.
INTLEVEL Support
The INTLEVEL directive is rejected by the Compiler in Visual COBOL.
NSAPI
There is no support for NSAPI in Visual COBOL.
Online Help System
Net Express provided the Online Help System for creating online help from character-based applications, and displaying it on screen. It is not available in Visual COBOL and the Online Help System information file type (.HNF) is not supported.
OO Class and Method Wizards
The OO Class and Methods wizards are not available in Visual COBOL. However, the run-time components for the base and COM OO class libraries are available.
OpenESQL
In both Net Express and Studio Enterprise Edition, support is provided for Oracle OCI in OpenESQL. Visual COBOL does not support Oracle OCI in OpenESQL.
Solo Web Server
The Solo Web server in Net Express enabled you to debug CGI-based Internet applications on the same machine you used to develop them. It is not available in Visual COBOL.
SQL Option for DB2
SQL Option for DB2, also known as XDB, is not supported in Visual COBOL.
Type Library Assistant
Type Library Assistant is not included in Visual COBOL but the run-time components for the COM and the OO COBOL libraries are still available.
UNIX Publish
The UNIX Publish feature is superseded by the remote development functionality in Visual COBOL for Eclipse. You use the Eclipse IDE on a local machine as the development interface. You use Visual COBOL Development Hub on a remote development server where you host your source code.

Run-Time Technology Differences

Some technologies behave differently in Visual COBOL and this might affect how you upgrade existing applications.

COM Interop
The tools to help create COM objects are not supplied with Visual COBOL. However, the COM run-time components are supplied, so that COM is supported and your applications can interoperate with existing COM objects.
File Handling
The way you integrate your own security modules into Fileshare has changed. Also, the FILEMAXSIZE setting is different for Visual COBOL and for Net Express and Server Express .
Java and COBOL
The cobsje script is not available in Visual COBOL for Eclipse on UNIX. Visual COBOL uses the COBOL run-time system to load JVM based on LIBPATH, LD_LIBRARY_PATH, JAVA_HOME etc...
Test Coverage
Test Coverage replaces GNT Analyzer, which was available in Server Express. Code coverage for native COBOL applications available from within the IDE in Visual COBOL integrates the Test Coverage functionality.

Editing and Debugging Differences

Much of the edit and debug functionality in Net Express, Server Express is available in Visual COBOL, but some of it has a different name or slightly different behavior. In addition there are some new features such as background parsing.

Data Tools
The Net Express Data Tools are available as the Classic Data File Tool utility in Visual COBOL for Eclipse on Windows, but not on UNIX. On UNIX, there is a new Data File Tools utility which is a standalone text editor in which you can create and edit data files .
Debugging Native Object-Oriented COBOL
In Net Express you can examine an object while debugging OO COBOL and display the class that defined the object and also other objects derived from that class. In Visual COBOL, you can also view the class information of native OO COBOL but not while debugging.
Interface Mapping Toolkit
The Interface Mapping Toolkit is available in Visual COBOL for Eclipse; however it does not support CICS or IMS service interfaces.
Mixed Language Debugging
With Net Express you could debug mixed language applications. In Visual COBOL, you can debug native COBOL and Java or native COBOL and C with some additional configuration.
Program Breakpoints
Program breakpoints are breakpoints that stop execution each time a specified program or entry point within the program is called. They are supported in Visual COBOL, but by default their behavior is different from their behavior in Net Express
Remote Debugging
The Net Express animserv utility used for debugging programs remotely has been replaced by cobdebugremote (Windows) or cobdebugremote32 (UNIX) (or cobdebugremote64 when debugging 64-bit processes) in Visual COBOL.
Source Pool View
The source pool view in Net Express showed all source files available in the project directory, regardless of whether or not they are used in the current build type. This view is not available in Visual COBOL.