.NET Core Support

  • 4 minutes to read

.NET Core is an open-source, general-purpose development platform maintained by Microsoft and the .NET community on GitHub.

Prerequisites

The table below shows the versions of DevExpress WinForms Controls that support .NET Core.

DevExpress Version .NET Core 3.0 .NET Core 3.1 (LTS) .NET 5.0
v21.1 (current) yes yes yes
v20.1-v20.2 yes yes yes
v19.2.5+ yes yes no
v19.1-v19.2.4 yes no no

Prerequisites to build .NET Core applications:

Create .NET 5/.NET Core Applications

You can use the Project Template Gallery to create projects with DevExpress controls that target .NET 5/.NET Core.

Template Gallery - .NET Core Templates

Version 21.1+ installs local DevExpress NuGet packages on your machine. You can add these packages to your existing .NET Core/.NET 5 projects from the NuGet Package Manager:

  1. In the Solution Explorer, right-click the project and select Manage NuGet Packages from the drop-down menu.
  2. Select the DevExpress Local package source.

    NuGet Package Manager - Local Package Source

  3. Install the DevExpress.Win NuGet package.
  4. Build the project.

You can also add DevExpress NuGet packages to an existing project from a remote feed:

  1. Obtain your NuGet Feed URL. You need to be logged in as a registered DevExpress customer and have an active WinForms/DXperience/Universal subsription.
  2. Register the NuGet Feed.
  3. Install the DevExpress.Win NuGet package.
  4. Build the project.
IMPORTANT

The release versions of DevExpress NuGet packages do not support design-time features. We recommend that your apps target .NET Framework during the development stage and are then ported to .NET.

You can also have two project files in the same directory as your WinForms project: the .csproj file from the existing .NET Framework project and the new SDK-style .csproj file from the new .NET project. Unload and reload the project with a corresponding project file (depending on whether you want to use the designer).

More information: Design-Time Support for DevExpress WinForms Controls for .NET 5 - FAQ | How to port desktop applications to .NET Core 3.0

Design-time Features Preview

To test designer tools for DevExpress controls, install the pre-release DevExpress.Win.Design package from the local NuGet feed (same feed that contains the core DevExpress.Win package). This is a preview package and should not be used for production code/apps.

The DevExpress.Win.Design package is available in the local feed for v21.1.4 and newer installations. For earlier versions, install this package from the EAP feed:

  1. Register the following NuGet package source: https://nuget.devexpress.com/early-access/api.
  2. Install the DevExpress.Win.Design package.

Upgrade .NET Framework Applications

There is currently no way to port .NET Framework apps to .NET Core in Visual Studio - you should copy project folders and replace .csproj files. See the How to port desktop applications to .NET Core 3.0 article for more information.

Deploy .NET Core Applications

Self-Contained Deployment

Your applications can be deployed in two different ways:

  • Framework-dependent deployment - the application does not include .NET Core. The application may not work on a client machine if the correct .NET Core version is not installed.

  • Self-contained deployment - .NET Core is a part of the application package. The disadvantages of this approach are that you must select target platforms in advance, and distrubute larger deployment packages.

You can deploy self-contained applications in Visual Studio or call the following command in the command-line interface:

dotnet publish -c Release -r win10-x64 --self-contained true

See the .NET Core application deployment article for more information.

Single-File Applications

You can publish .NET Core applications as one executable file. To do this, run the command prompt, navigate to the application folder, and call the following command:

dotnet publish -r win10-x64 -c Release -p:PublishSingleFile=true

See the “Single-File Applications With .NET Core 3” blog post for more information.

Limitations

  • Global .NET platform limitations, not specific for DevExpress controls.
  • Visual Studio Toolbox integration and design-time features (smart tags, collection editors, and other designer dialogs, Scaffolding Wizard, etc.) are not supported.

Additional Information

Q: Will DevExpress WinForms .NET Core 3 controls support Linux and\or MacOS?
A: Any WinForms control relies on WinAPI that is not available in other operating systems. According to Microsoft Contributing Guide, support for cross-platform implementations for Windows Forms or WPF is not planned.

Q: Should I install a separate .NET Core installation?
A: For v21.1 and newer we ship a Unified Component Installer that includes libraries, source code, and templates for .NET Core Desktop and .NET Framework development. In earlier versions, .NET Core and .NET Framework product lines are split into two separate installations:

  • DevExpress Component Installer (includes components and libraries for .NET Framework)
  • NET Core Desktop Product Installer (includes WinForms (CTP) and WPF components, libraries built for .NET Core, and .NET Core templates).