What was New in Visual COBOL 5.0

.NET Core Support

Back to Top

.NET Core is an open-source development platform that supports multiple operating systems. You can now use Visual COBOL to develop a COBOL application then publish it to be deployed on .NET Core.

The following project templates for .NET Core applications are available - Class Library (.NET Core) and Console App (.NET Core).

COBOL Formatting

Back to Top

You can now reformat your COBOL code in the editor according to your preference and standards. Formatting sets the indentation based on the configuration options which you can set in Tools > Options > Text Editor > Micro Focus COBOL > Formatting > Indentation (for Visual Studio).

You can find the COBOL formatting features on the Edit > Advanced menu (for Visual Studio) menu.

Code Analysis

Back to Top

You can now create the following views for your code:

  • Program Flow Graph - enables you to view the overall structure of the COBOL program with nodes representing sections and paragraphs. PERFORM statements between them which affect the program flow are represented by links joining the nodes. External calls to other programs are shown but cannot be expanded in the Program Flow Graph view. Hovering over the nodes shows a tooltip containing the code representing the respective sections or paragraph. Clicking a node or a link joining said nodes positions the code editor to that point in the source, allowing quick and easy navigation of the program.
  • Data Flow Analysis Tree - enables you to select a data item and then either statically trace what might change its value or what other data items it might affect.

Enterprise Server Common Web Administration

Back to Top

Note: This feature is in Early Adopter Program (EAP) release status.

Visual COBOL now includes a new Enterprise Server Common Web Administration interface (ESCWA). ESCWA is a web user interface and server for modern administration, monitoring and control of Enterprise Server. It offers improved usability that consolidates the different Enterprise Server user interfaces so that native and managed regions, and security stores can be managed in one place. Features include:

  • Administering directory servers across multiple hosts.
  • Monitoring and control of Enterprise Server instances.
  • Configuring and administering a security store, defined in an LDAP-compatible security manager such as Microsoft Active Directory or OpenLDAP.
  • Administering the Scale-Out features - enable you to specify logical groups of Enterprise Server instances, and configure and run Performance Availability Clusters (PACs) and their related Scale-Out Repositories (SORs).
  • Administering, monitoring and control of Enterprise Server for .NET regions and listeners.
  • The use of current web frameworks that have a greater focus on security.
  • (Included with 5.0 Patch Update 2 ) - support for Enterprise Server XA, MQ and PL/I configuration and monitoring. This includes support for XA resources, configuring MQ, Listeners and Writers, PL/I, MFCS console, Region Trace options, displaying the current ESMs on logon page and Local/loopback connections warning changes.

COBOL Language Enhancements

Back to Top

The following enhancements have been made to the COBOL syntax:

  • ISO2002 conditional compilation - an additional mechanism for conditional compilation, the ISO2002 Conditional Compilation method, is now available. This has been implemented as part of the support for Enterprise COBOL 6.2.

    The following compiler directing statements are supported:

  • The JSON PARSE statement enables you to convert JSON text into COBOL data formats. This has been implemented as part of the support for Enterprise COBOL 6.2.
  • Async and await syntax (.NET COBOL only) - support is available for asynchronous programming in .NET COBOL using the async and await syntax.
  • INSPECT statement - the performance of INSPECT... CONVERTING has been improved, particularly for cases where source-alphabet is long.
  • Support has been added for the portable syntax for SET - set[string].

Compiler Directives

Back to Top

The following Compiler directives are new in this release:

Determines the program elements that are normalized when a program is compiled to .NET or JVM COBOL. Normalization in this context results in replacing all $ and - (hyphen) characters with _ (underscore) characters in the name of the generated class file.

Consolidated Trace Facility (CTF)

Back to Top

This release provides the following enhancements:

  • Dynamic CTF - it is now possible to configure the CTF dynamically from outside the process being traced.

    Using a new command line utility - cblctd - you can alter the tracing events of running applications that already have CTF tracing enabled. You can alter trace levels, add or remove components to or from the trace, and also configure the emitters in effect.

    Additionally, there is also a new component that you can trace - mf.mfdbfh enables you to trace activity of the Micro Focus Native Database File Handler.

Data File Tools

Back to Top

This release provides the following enhancements:

  • The Data File Editor now includes a Compare Files tool that enables you to compare the contents of two data files side-by-side.
  • Structure files, and the layouts within them, can now be created within the Data File Editor; you no longer need to use the Classic Data File Tools utility to manage your layouts.
  • When connecting to a VSAM dataset stored in an enterprise server region, you can store any passwords required for access, for the duration of your current session.
  • You can view archived JES spool jobs that have been merged into one spool file using the merging archived spool files process.
  • You can now quickly duplicate records in non-indexed files, using the Duplicate Record option.

Database Access

Back to Top

Enhancements are available in the following areas:

OpenESQL ADO.NET Connection Editor Toolbar

  • A new "i" (information) button is available that provides all the details of any installed .NET provider. Provides additional information mitigating resource definition and use within the ADO.NET Connection editor
  • Static XA switch modules "Reconnect" - At the beginning of a global transaction, the XA switch will attempt to reconnect temporarily broken connections to the database. If there is a temporary disconnect to the database, there is no need to manually re-enable the XA switch to run transactions.

Database Connectors

Back to Top

You can now create an identity column in your database by using a new XFD directive - IDENTITY_COLUMN. This must be specified on a numeric field.


Back to Top

This release includes the following enhancements:

  • COBOL Visualizer - a new window in Visual Studio enables you to view and edit a data item during debugging in either text or HEX forms. You invoke the window from the DataTip for the data item.
  • Conditional watchpoints - you can now specify conditions and hit counts for COBOL watchpoints. A condition can be in the form of an expression or it can be a hit count (for the number of times memory associated with a data item has been updated). The condition is evaluated each time the data item being watched changes. If the condition evaluates to true, then program execution stops. This enables more fine-tuning of the current watchpoint support and is useful when debugging large, complex programs.
  • Dynamic core dumps - you can now invoke a core dump programmatically and continue execution of your program. A new library routine, CBL_CREATE_CORE, enables you to produce a core file for the current process or a process owned by the same user that owns the current process.
  • Improved visibility of the PERFORM stack - the PERFORM stack and PERFORM range names are visible in system debuggers such as gdb in many cases on 32-bit Linux with Intel architecture and Solaris with Intel architecture. This was already the case on AIX, 64-bit Solaris-Intel, and all other Linux platforms (including 64-bit Linux-Intel).
  • In order to include source line numbers in run-time error messages, which makes the diagnosis of issues in your program easier, the COBOL compiler now produces .idy files by default when building from the command line, unless the NOANIM directive is specified. You can safely remove .idy files after compilation if you do not need them; they do not need to be distributed with your application unless you want to debug your code. However, unless you specify the ANIM directive, generated executables such as .dll and .gnt will not be debuggable, which is consistent with prior behavior.
    Note: Behavior has not changed if you are using an IDE or build scripts generated by an IDE.

Enterprise Server Security

Back to Top

This release includes the following enhancements:

  • Security - security features can now be employed when developers and administrators install new COBOL services (web services and EJBs) into an enterprise server instance over the network. There are a number of authentication and authorization options that can be enabled. See Deployment Listeners and The .mfdeploy File.
  • Vault Facility - a new security feature has been added that enables some Enterprise Server components to keep certain sensitive information in a form of storage defined as a vault, accessible via a configurable vault provider. The default vault provider stores data in encrypted format on disk.
  • OpenSSL 1.1.1 - the OpenSSL security provider has been updated to OpenSSL version 1.1.1.

    This is the stable Long Term Support version of OpenSSL.

    • Added support for the ratified TLS protocol version 1.3. TLS 1.3 benefits include:
      • Much shorter initial connection negotiation sequence. This reduces the time taken to establish a link before starting to transmit data.
      • Using only the most secure ciphers and hash methods.
      • TLS 1.3 will be negotiated in preference to the older TLS protocols.
    • Added support for new Ciphers and Key Exchange groups in line with TLS 1.3 requirements.
    • The default security level for previously configured endpoints has been moved from Security Level 0 to Security Level 1. This removes the ability to accidentally make use of known-weak elements such as SSL3 and MD5. Similar changes to the default Security Level have recently happened to Java, Chrome, Firefox, and other systems providing secure connections.
  • Fileshare Security - the Fileshare Secure TCP/IP transport provider now supports the trusted use of X509 certificates bearing the name of the Fileshare service as the Common Name element of the certificate.

    In previous releases, a secure connection to a Fileshare server was made using a certificate that represented the network location upon which the Fileshare service was located. This method is still supported, but does not distinguish between the exact Fileshare server that is being connected to when more than one service can exist on a single host system. With this change, individual Fileshare services can identify themselves by using a unique certificate. While running on the same host and registered with the same network endpoint.

  • Support for Active Directory user groups and group name mapping - the Enterprise Server External Security Facility's MLDAP ESM Module can now use Active Directory user group objects for Enterprise Server user groups. Also, the module can now map long group names to the 8-character-maximum names required for mainframe emulation.
  • Selective auditing - administrators can audit only security activity of particular interest, reducing audit overhead and the volume of events. The Enterprise Server External Security Facility's MLDAP ESM Module can now enable ESF Audit events only for particular users, groups, and resources.
  • Improved interaction with LDAP client libraries resulting in fewer LDAP-related issues and easier diagnostics - the Enterprise Server External Security Facility's MLDAP ESM Module has improved interoperation with LDAP client libraries:
    • The client library vendor and version information is logged after the library is loaded
    • The module has better heuristics for loading the correct library supplied by the OS vendor, so the "provider" configuration option can generally be omitted
    • For OpenLDAP, the module sets its proprietary "connect timeout" option
  • SNI support (requires 5.0 Patch Update 1 or later) - support has been added in Patch Update 1 for the Server Name Identification (SNI) extension to TLS. This helps to avoid connectivity issues related to a growing number of Web services being hosted on SNI servers.

Micro Focus Unit Testing Framework

Back to Top

This release provides support for the following functionality:

  • Data-driven unit tests - a new type of test suited to testing data where values read from a source are passed through the same tests.
  • Test output colorization - test output can now include basic colorization for supported terminal emulations. This feature must be run from the command line.

Platform Support

Back to Top

Support is now available for the following additional or updated operating systems:

  • SUSE (Power) 11 SP3, 12
  • Red Hat (Power) 7.2, 7.3
  • Windows Server 2019

For a full list of supported platforms, check HTTPS://SUPPORTLINE.MICROFOCUS.COM/PRODAVAIL.ASPX.

Product Documentation

Back to Top

The following is new in this release:

  • Online context help in Visual Studio - online context Help is now the default setting for Visual COBOL and opens the documentation available on Micro Focus SupportLine.

    Visual COBOL local help is still supported and can be installed manually, if required. See After Installing for details.

  • The Comparison of COBOL with Other Managed Languages document has been updated to reflect the recent enhancements in the .NET and JVM COBOL support.

Visual Studio Integration

Back to Top

This release includes enhancements in the following areas:

COBOL editor:

  • Code snippets - new snippets are available for $if and $region statements, and for specifying *cblformat off which indicates the area of code that is unaffected by formatting.
  • Collapsible regions - outlining is now available for IF, EVALUATE and PERFORM statements.
  • Peek Definition context menu command - this invokes a pop-up window, embedded in the editor, showing the data item definition. You can use the feature both while editing and while debugging.
  • IntelliSense suggestions - IntelliSense suggestions for the COPY statement now include directories to add.
  • (Introduced in 5.0 Patch Update 1) Choosing a separator for qualified field names - you can configure IntelliSense to either use OF or IN as a separator in qualified field names - e.g. A-COUNT OF A-WORK-1 or A-COUNT IN A-WORK-1. You can specify this in Tools > Options > Text Editor > Micro Focus COBOL > IntelliSense, and on the Completion Lists page.
  • Find All References - the Find All References output window for COBOL has been enhanced, so you can now filter results, group results, order results and search results.
  • Quick actions - the editor now displays light bulbs for creating a missing section or a paragraph, for adding and sorting $ILUSING statements, and for removing or commenting out dead code.

Visual Studio tool windows:

  • The Error List window now includes a column for the Sequence Number.
  • You can use Visual Studio's Find All References tool window to search for references in your COBOL projects.

New settings in the project property pages:

  • The Debug project properties page for managed projects now includes settings for either generating a portable symbol file (.PDB) or for embedding the portable symbol information directly in the assembly.
  • The Smart Linkage section in the properties of managed projects now offers two new settings for enabling the ILSMARTTRIM and ILSMARTANNOTATE Compiler directives.

New project template categories:

  • The COBOL project templates are organized in a new set of categories that better represent the tasks and workloads used in modern development. Some of the categories, such as Azure or .NET Core, only show if you have installed the support for these features in Visual Studio. For more information, see To install missing features from the IDE.