Comparing .NET Core and .NET Framework

This topic looks at .NET Core and .NET Framework, summarizes their similarities and the differences between them, and gives some guidance on when you should use one over the other. The key points are summarized in the section Comparison Overview, with more information provide in the sections that follow.

The information presented in this topic is intended to be a summary rather than fully comprehensive. For more information on .NET Core compared to .NET Framework see Microsoft: .NET Core - Comparison to other .NET Implementations.

Comparison Overview

The main points when comparing .NET Core and .NET Framework are as follows:

  • .NET Core is cross-platform whereas .NET Framework is Windows-only.
  • .NET Core does not include all the functionality that is available in .NET Framework, and Visual COBOL does not currently support all the functionality for .NET Core that it supports for .NET Framework.

    See .NET Core Known Issues and Restrictions for information on functionality that is available in .NET Core but is not currently supported by Visual COBOL.

  • .NET Framework 4.8 was the final major release of .NET Framework, whereas new versions of .NET Core are still being released. .NET Framework 4.8 is planned to be available for as long as Windows is available, but new features, performance improvements, and IDE features will only be added to .NET Core.

    This does not constitute a requirement for you to move from .NET Framework to .NET Core, but Micro Focus anticipates that you will probably need to do so at some point as more and more systems move to .NET Core.

  • If you are deploying a new application to .NET, you should use .NET Core.

Similarities

The following list summarizes key areas in which .NET Core and .NET Framework are similar:

  • NET Core contains a large subset of the .NET Framework Base Class Library (albeit with a different factoring).
  • .NET Core and .NET Framework have a shared API, .NET Standard, which is available on all .NET implementations.
  • .NET Core and .NET Framework support Windows and Windows Server.

Differences

The following list summarizes significant areas in which .NET Core and .NET Framework are different:

  • .NET Core runs on Windows, Linux and macOS. NET Framework runs on Windows.
    Note: Micro Focus does not currently support COBOL applications on .NET Core on macOS.
  • .NET Core does not currently support creating desktop applications with a user interface.
  • .NET Core is fully open source, whereas only a subset of the .NET Framework is open source.

.NET Core Advantages

Targeting .NET Core rather than .NET Framework offers the following advantages:

  • .NET Core is seen as the future architecture of the .NET platform that will ultimately replace .NET Framework.
  • .NET Core enables you to isolate your applications. Your applications can be completely self-contained, so don't rely on files shared with other applications.
  • Deploying an application to run on .NET Core can be as straightforward as copying the published files to the target machine.
  • The fact that your .NET Core-based applications are isolated means that once they have been deployed you can make updates to them without affecting the behavior of any other applications.

Choosing Between .NET Core and .NET Framework

Deciding whether your applications should target .NET Core or .NET Framework depends on which platform most closely meets the requirements of your applications. The following lists outline when each platform might be most appropriate.

  • Use .NET Core when:
    • Deploying a new application, unless it relies on functionality only available in .NET Framework.
    • Using microservices, because .NET Core allows a mix of technologies, is lightweight and can be minimized for each microservice.
    • Performance and scalability are vital for you. In these cases, Microsoft recommends running .NET Core with ASP.NET Core.
    • You need to run applications that require different versions of .NET side-by-side.
  • Use .NET Framework when:
    • You need to use functionality that is not available in .NET Core. For example:
      • ASP.NET WebForms
      • WCF services
      • Any .NET Framework API that is not part of .NET Standard
    • You need to use functionality that is available in .NET Core but is not currently supported by Visual COBOL. For example, the following are not currently supported:
      • Deploying to macOS.
      • Deploying to a Linux/Windows container running in Docker.
      See .NET Core Known Issues and Restrictions for more information.
Note: The information in this topic is only a summary. Micro Focus recommends that before making a decision about which platform to target, you check the Microsoft website for comprehensive information about the different platforms that are available.