Comparing .NET and .NET Framework

This topic looks at .NET 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 compared to .NET Framework see Microsoft: .NET Core - Comparison to other .NET Implementations.

Comparison Overview

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

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

    See .NET Known Issues and Restrictions for information on functionality that is available in .NET 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 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.

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

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

Similarities

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

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

Differences

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

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

.NET Advantages

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

  • .NET is seen as the future architecture of the .NET platform that will ultimately replace .NET Framework.
  • .NET 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 can be as straightforward as copying the published files to the target machine.
  • The fact that your .NET-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 and .NET Framework

Deciding whether your applications should target .NET 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 when:
    • Deploying a new application, unless it relies on functionality only available in .NET Framework.
    • Using microservices, because .NET 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 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. 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 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 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.