.NET Core 3.0 Support for ASP.NET Core, WinForms, and WPF Controls

ctodx
24 September 2019

.NET Core 3.0 and some supporting libraries, such as Entity Framework Code 3.0, is being launched at the online .NET Conf conference this week. As a .NET developer, you should have a myriad of questions: What benefits does .NET Core 3.0 provide compared to .NET Core 2.x or the full .NET Framework? Should you wait or start upgrading right away? Are DevExpress controls ready to be used in the .NET Core 3.0 environment?

Without further ado, let me explain where we are, and what we're doing with .NET Core 3.0.

Advantages of .NET Core 3.0

Starting off with ASP.NET Core, .NET Core 3.0 introduces many improvements to your projects - support for gRPC, new features for SignalR (such as streaming), performance optimizations, ReadyToRun images, assembly linking, and much more.

And now, for the first time, version 3.0 also expands .NET Core to cover desktop technologies, by which I mean: WinForms and WPF. Even though some parts of WinForms and WPF for .NET Core are still very much under active development (such as the WinForms designer, whose first preview was announced at .NET Conf), there are several features that desktop developers can look forward to. Self-contained deployment allows you to publish your app with a specific .NET runtime build and not worry about version conflicts and breaking changes. ReadyToRun images generated in advance on a build server can improve the application startup performance without the hassle of using the Ngen.exe tool. And the inclusion of WinForms and WPF to .NET Core gives developers hope for more underlying enhancements to these platforms in the future.

Finally, and perhaps most importantly, Microsoft has clearly stated that .NET Core is the future of the .NET family. .NET 5, which was announced back in May and scheduled for release in November 2020, is going to build on the work done in .NET Core 3.0 to create a unified platform for all .NET development. The plan for the unified .NET platform

At this juncture, it is safe to say that any significant enhancements and new features to be worked on in the future will be exclusive to .NET Core and will not make it into the full .NET Framework.

Useful links:
What's new in .NET Core 3.0

Having had a quick look at the advantages of .NET Core 3.0 and its future, let us now explore the effects it has had on our components and libraries.

ASP.NET Core Controls

Our ASP.NET Core controls support .NET Core 3.0 without limitation and are production-ready starting with v19.1.6.

The only exception to this is the Diagram control, which is currently in CTP and works as a jQuery component. We plan to release it as a native ASP.NET Core 3.0 component in v19.2 later on this year.

The DevExtreme ASP.NET Data library responsible for the data binding functionality within our controls is also fully compatible with Entity Framework Core 3.0, which was released alongside .NET Core 3.0.

We made sure that the Visual Studio tool that adds DevExtreme to existing projects can work with projects targeting ASP.NET Core 3.0. In the future, we also plan to add new project templates specifically made for ASP.NET Core 3.0.

Where to get:
DevExpress .NET Products Installer v19.1.6+
npm and NuGet packages

Useful links:
DevExtreme-Based ASP.NET Controls support ASP.NET Core 3 Preview
Add DevExtreme to an Existing Project

WPF Controls

Our WPF components for .NET Core 3.0 will be officially released before the end of this month. They've been extensively tested and are ready for production. We encourage you to try migrating your current projects to see if they are compatible.

Our WPF suite for .NET Core 3.0 includes all the controls and components available for the .NET Framework, with the following notable exceptions:

  • Theme Designer
  • Scaffolding Wizards
  • ApplicationJumpListService

Data-bound WPF controls also support Entity Framework Core 3. In v19.1, you can configure the CriteriaToEFExpressionConverter class to use Server Mode and Instant Feedback sources with EF Core 3. Starting with v19.2, no configuration will be needed: the Entity Framework version will be resolved automatically.

In terms of Visual Studio integration, .NET Core 3.0 introduces some significant changes. The WPF designer in Visual Studio now uses a new Surface Isolation architecture, which prevents third-party extensions such as ours from directly accessing elements in the designer area. As a result, most of DevExpress WPF designer features such as Smart Tags and wizards will not work for .NET Core 3.0 projects. We are working together with Microsoft to resolve this situation, and are starting to rewrite those designer features for the new architecture. Some basic features such as the Toolbox and switching tabs in TabControl are already working, and there is a chance that other extensions will make a return in the fairly near future.

Where to get:
DevExpress .NET Core Desktop Libraries Installer v19.2.2 Beta (currently available to active Universal and DXperience subscribers)
DevExpress NuGet feed

Useful links:
.NET Core Support | WPF Documentation
Creating a New .NET Core 3.0 Application
Migrate WPF Applications to .NET Core 3

You can also download a preview build of our WPF controls for .NET Core from our Early Access NuGet feed here: https://github.com/DevExpress/netcore-wpf-demos

WinForms Controls

The entire WinForms product line supports .NET Core 3.0. However, since the new WinForms designer is not yet available in Visual Studio (the first preview of this was only released alongside .NET Core 3.0 -- we got it at the same time as everyone else!), it is only possible to work with UI controls in code or use a workaround with linked files. Our components remain in the CTP (Community Technical Preview) stage, and you are welcome to experiment with them in our demos or in your own projects.

Where to get:
DevExpress .NET Core Desktop Libraries Installer v19.2.2 Beta (currently available to active Universal and DXperience subscribers)
DevExpress NuGet feed

Useful links:
.NET Core Support | WinForms Documentation
How to: Port a Windows Forms desktop app to .NET Core
WinForms - Single-File Applications With .NET Core 3

You can also download a preview build of our WinForms controls for .NET Core from our Early Access NuGet feed here: https://github.com/DevExpress/netcore-winforms-demos

Reporting

You can run applications with DevExpress Reporting targeting .NET Core 3.0 on all platforms – WinForms, WPF, and ASP.NET Core. ASP.NET Core 3.0 reports maintain the feature parity with previous .NET Core versions and use the same report designer approach as before. A Visual Studio extension associated with XML report definition files launches the Report Designer window and saves your edits back to XML.

Visual Studio's integrated report designer in desktop platforms (WinForms and WPF) is based on the standard WinForms designer. Since the new WinForms designer for .NET Core is not yet fully available, the best way to design your reports is to use the workaround with linked *.cs and *.Designer.cs files. Because of this limitation, WinForms and WPF reports for .NET Core 3.0 remain in the CTP stage.

Where to get:
ASP.NET Core Reports: DevExpress .NET Products Installer v19.1.6+
WinForms and WPF Reports: DevExpress .NET Core Desktop Libraries Installer v19.2.2 Beta (currently available to active Universal and DXperience subscribers)
All platforms: DevExpress NuGet feed

Useful links:
Reporting in .NET Core 3 (CTP) | Documentation

Dashboard

ASP.NET Core Dashboard will support .NET Core 3.0 starting with v19.1.7. The new EndpointRouteBuilderExtension class is going to provide extension methods for endpoint routing enabled by default in version 3.0.

WinForms and WPF Dashboards can run on .NET Core 3.0 without issue but lack the integrated Visual Studio designer due to changes in the architecture for .NET Core. You can still load XML dashboard files and edit them at runtime using the WinForms Dashboard Designer. The WinForms Dashboard Viewer & Designer for .NET Core follow other WinForms controls and remain in the CTP stage. The WPF Dashboard Viewer for .NET Core releases together with other WPF controls and can display dashboard files created in any WinForms or Web Dashboard Designer.

Where to get:
ASP.NET Core Dashboard: DevExpress .NET Products Installer v19.1.6+
WinForms and WPF: DevExpress .NET Core Desktop Libraries Installer v19.2.2 Beta
All platforms: DevExpress NuGet feed

Useful links:
ASP.NET Core Dashboard | Add Route Definition

Office File API

The Office File API library fully supports .NET Core 3.0 and is ready to be used in production.

Where to get:
ASP.NET Core and cross-platform projects: DevExpress .NET Products Installer
WinForms and WPF projects: DevExpress .NET Core Desktop Libraries Installer v19.2.2 Beta (currently available to active Universal and DXperience subscribers)
All projects: DevExpress NuGet feed

XAF

You can build and run desktop XAF applications on .NET Core 3.0. All desktop modules except for obsolete ones and those relying on deprecated functionality (such as the Windows Workflow Foundation) are already supported. In line with the WinForms controls on which it relies, XAF for .NET Core remains in the CTP stage.

XAF's .NET Core 3.0 support currently does not span mobile and web apps. Back in August, we made a decision to cancel XAF's React-based SPA UI project in order that we might target Blazor instead. In v19.2, we will release .NET Standard 2.0 Nuget packages that you can use implement XAF features like the Security System in non-XAF web and mobile apps (see How to: Use the Integrated Mode of the Security System in Non-XAF Applications). After this, you can expect more updates from us regarding XAF and Blazor in 2020.

Where to get:
DevExpress .NET Core Desktop Libraries Installer v19.2.2 Beta
DevExpress NuGet feed

Useful links:
.NET Core 3.0 and .NET Standard 2.0 Support
XAF - Important Changes to the SPA UI Strategy: The Future is Blazor

XPO

The XPO library supports .NET Core 3.0 and is ready to be used in production on all platforms: WinForms, WPF, and ASP.NET Core. The XPO build for WinForms and WPF comes with the .NET Core Desktop Products Installer where the ORM Data Model Designer is unavailable. To use XPO's design-time features, you should run the main .NET Products Installer.

Where to get:
DevExpress .NET Core Desktop Libraries Installer v19.2.2 Beta (currently available to active Universal and DXperience subscribers)
DevExpress.Xpo on NuGet
DevExpress NuGet feed

Useful links:
Getting Started with .NET Core
.NET Core 3.0 and .NET Standard 2.0 Support

Blazor Controls

Blazor is an exciting new technology for .NET developers looking to build interactive web apps using C# instead of JavaScript. There are two versions of Blazor: Server-side Blazor, which runs on the server and interacts with the browser via SignalR; and Client-side Blazor, which uses the WebAssembly (WASM) standard in the browser.

Server-side Blazor was released as a platform with .NET Core 3.0, whereas Client-side Blazor is no longer considered "experimental" and will be released some time later as a future part of .NET Core.

To support those already trying to create Blazor apps, we provide a set of UI components (Data Grid, Pivot Grid, Scheduler, Charts, data editors, and all-purpose layout controls) for both server-side and client-side Blazor platforms.

Where to get:
DevExpress NuGet Feed (free download)

Useful links:
Introduction to Blazor
Create a New Blazor Application Demos: Blazor UI Components

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.
No Comments

Please login or register to post comments.