Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to make desktop GUI application in .NET Core?

People also ask

Can we use .NET Core for desktop application?

You can deploy the . NET Core platform with your applications and become completely independent of your end users environment – your app has everything it needs to run on any Windows machine.

Is .NET good for desktop application?

NET framework has good networking, memory management, security, APIs, and application deployment. The latest generation of . NET Core 3.0 will help you to create multi-platform apps that runs on Windows, Mac OS X, and Linux. It has a higher performance and is more modular than the traditional .

Does .NET have GUI?

Cross-platform development is great, so is . Net Core. But, as of the time of this writing, . Net Core doesn't provide a cross-platform windowed GUI.


You were not missing anything. Microsoft shipped no reasonable way to create GUI applications directly using .NET Core until .NET Core 3, though UWP (Universal Windows Platform) is partially built on top of .NET Core.

.NET Core 3.0 includes support for Windows Forms and WPF, though it is Windows-only.

.NET 6 will include .NET MAUI, which will support Windows and macOS desktop applications and mobile applications, with Linux desktop applications supported by the community (not MS). .NET 5 will include a preview version of .NET MAUI.

For third-party cross platform options, see other answers.


AvaloniaUI now has support for running on top of .NET Core on Windows, OS X, and Linux. XAML, bindings and control templates included.

E.g. to develop on macOS with Rider:

  1. Follow instructions to install the Avalonia dotnet new templates
  2. Open JetBrains Rider and from the Welcome screen,
  3. Choose New Solution → (near the top of the Templates List) → More Templates → Button Install Template...* → browse to the directory where you cloned the templates at step 1.
  4. Click the Reload Button
  5. Behold! Avalonia Templates now appear in the New Solution Templates List!
  6. Choose an Avalonia template
  7. Build and run. See the GUI open before your eyes.

GUI steps to install a dotnet new template into JetBrains Rider


You could use Electron and wire it up with Edge.js resp. electron-edge. Edge.js allows Electron (Node.js) to call .NET DLL files and vice versa.

This way you can write the GUI with HTML, CSS and JavaScript and the backend with .NET Core. Electron itself is also cross platform and based on the Chromium browser.


It is now possible to use Qt, QtQuick, and QML with .NET Core, using Qml.Net.

It is highly performant (not "P/Invoke chatty"), fully featured and works across Linux, OS X, and Windows.

Check out my blog post to see how it compares to the other options out there currently.

PS: I'm the author.