Intro
 

Microsoft .NET originally came in one flavor. However as it has expanded to different platforms, it has spawned variants.

The original .NET platform is known as the .NET Framework. It includes many sophisticated features but these are heavily based around the Windows platform.

The .NET Core platform is a version adapted for cross-platform deployment. As the name suggests, some features from the original .NET Framework are not available. The numbers of missing features are not large but they tend to be important. On the plus side, the .NET Core platform can be faster than the original .NET Framework, though this is rather dependent on your particular code and requirements.

The .NET Standard platform is an abstraction of the features common to both the .NET Framework and the .NET Core. The benefit here is that it allows assemblies to be built that will run on both platforms. However of course it is a lowest common denominator approach which means for practical purposes you are limited to the features in .NET Core.

Current Microsoft policy is to push .NET Core. However there are practical problems here as relates to the useful features that the .NET Framework provides. Microsoft may want people to move to a core platform but people who are relying on these features are likely to wait until they have been implemented. However Microsoft are unlikely to do this because there are good reasons for each missing feature in .NET Core. Some features have been intentionally deprecated while others are so heavily dependent on Windows that they amount to a port of the entire system.

Microsoft policy is driven by the massive growth in Azure, which up to 2018, has doubled in revenue every year. Should this change then it is possible that there might be a change in Microsoft policy - perhaps to a more unified architecture. But until then the focus is likely to be on .NET features which further fuel Azure.

 

   

Variants
 

There are variants of ABCpdf for both .NET Core and .NET Standard.

These variants are currently for Windows only and there are a few features which are disabled because they are not supported by the .NET Core runtime. Namely,

  • The ABCChrome HTML engine is used for all HTML rendering (the MHSTML and ABCGecko engines are not available)
  • The MS Office and OpenOffice.org import modules are not available
  • The RTF import module is not available
  • The XpsAny import module is not available
  • Export to XPS, HTML and DOCX is disabled
  • Windows only - not Linux or Xamarin

The .NET Core variant is an assembly named ABCpdfCore.dll and this replaces the ABCpdf.dll assembly you would normally use.

The .NET Standard variant is an assembly named ABCpdfStandard.dll and this replaces the ABCpdf.dll assembly you would normally use.

Both variants are also available as NuGet packages.