Comparing .NET Core and .NET Framework

Attention: .NET Core on Linux is provided as an Early Adopter Program (EAP) feature only. It is being made available to allow you to test and provide feedback on the new capabilities. Be aware that file locking does not work in all instances, and may cause exceptions or the ignoring of file locks. We will continue the development of this feature and provide additional interfaces via patch updates and future releases. Please contact Micro Focus SupportLine if you require further clarification.

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 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.

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).
  • 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 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:
    • 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:
      • Windows Forms and WPF applications
      • 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: This information 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.