.net core cross platform desktop app

15,365

Solution 1

As the other answer eludes to, .NET Core itself is cross platform, but it doesn't offer any GUI solution. You can run console/terminal applications, as well as web applications, but not desktop applications.

As of right now, there is no official Microsoft tech that solves a multi platform GUI. The two that I know of are Avalonia and Eto.Forms. Both have their pro's and cons, and both are kinda buggy. Not in the sense that it's unusable, but in the sense that it's evolving tech, don't expect them to blow your mind right off the bad.

Guides to get you started :

Solution 2

1) Console apps in .NET core are already cross-platform.

2) For those working with a GUI, .NET core finally has a cross-platform GUI option officially supported by Microsoft called .NET MAUI

This builds on the same APIs as Xamarian Forms.

Official .NET MAUI Github Repo

Solution 3

If I understand your question correctly, it could be devided into two questions.

1) Howto create a cross platform .net core app

2) Howto create a cross platform .net core UI app

To answer the second (2) question: It's not possible to create cross platform apps using only .net core and microsoft libraries. What you need is a cross platform UI library with binding for all of your your target platforms. The first search result I get is Avalonia https://github.com/AvaloniaUI/Avalonia

I doubt it will be an easy task to get it working as all the alternatives seems to be experimental and/or beta. But you can certainly prove me wrong.

Good luck!

Solution 4

You can try electron.js instead . At present its quite difficult to build a cross platform desktop application only with .NET Core

Solution 5

You have many solutions for making a cross platform application with .NET Core:

  1. Electron.NET
  2. Avalonia
  3. ...

If you want detailed information about how to do that you should check a dedicated book who provide project samples for .NET Core 3 Here . With that you will find the most adapted UI for your app.

Share:
15,365
Dilara Albayrak
Author by

Dilara Albayrak

I am a software developer, wants to build a career in the Machine Learning field. I have work experience as a programmer and recently have experience in ML. I feel confident to learn something new and have an urge to improve myself. Recently, I have finished my master's study in which I proposed a thesis about visual saliency by using different deep learning approaches. My focus in my work is a project on 3D object recognition along the assembly line. We come up with a Deep Learning solution for that problem. Basically, we train a proper DL architecture with renderings of 3D objects and try to reach high accuracy during inference which is conducted with real-time photographs of the objects. Within the scope of my thesis, I intend to apply the Generative Adversarial Network approach to the Visual Saliency topic. Very briefly, visual saliency is a field concerning people’s attention while seeing visual stimuli (an image or a frame in a video sequence) and visual saliency methods aim at reaching people’s eye fixations as much as possible. As a preliminary work of the visual saliency field, we published an article on the conference Cyberworlds 2019 and Computers and Graphics journal. After that, we enhanced our study and published a journal article titled "Deep into Visual Saliency for Immersive VR Environments Rendered in Real-time". I am an easy-going and coherent person in a professional manner. I have experience in both working alone and working with a team. I know English as a foreign language.

Updated on July 21, 2022

Comments

  • Dilara Albayrak
    Dilara Albayrak almost 2 years

    I'd like to develop a cross platform desktop app by using .net Core. The app needs to be executed on linux, mac os, and windows. For that purpose, should i create a console app and put below lines in settings xml?

    <PropertyGroup>
       <RuntimeIdentifiers>win10-x64;osx.10.12-x64;debian.8-x64</RuntimeIdentifiers>
    </PropertyGroup>
    

    Will it be sufficient? If so, should i write all platforms and separate by comma e.g.

    win7-x32;win10-x64;...

    If it is not the answer, how can i generate cross platform desktop app with .net Core?

  • Dilara Albayrak
    Dilara Albayrak about 6 years
    thank you. actually i do not know what exactly to do, i need to build a desktop app(with a simple ui and connects a web service) and make the app working in all os :/
  • omajid
    omajid about 6 years
    .NET Core is the wrong technology for cross platform desktop apps at this point. Things like Avalonia are experimental/unstable at this point. You might be better off targetting .NET Framework (on Windows) and Mono (Linux/Mac) instead.
  • user1337
    user1337 over 5 years
    I think Microsoft has a lot of work to do right know with pushing the development of the most important sutff of net core. Maybe we'll get a cross platform gui solution from them in the future. Would be so great!
  • FireController1847
    FireController1847 almost 4 years
    Electron is the worst possible option to go with for various reasons if you want anything but "a simple to make yet terribly performing app."
  • José Mancharo
    José Mancharo almost 3 years
    .NET MAUI is new in .NET 6. It offers all of this functionality. devblogs.microsoft.com/dotnet/announcing-net-maui-preview-6
  • Loïc Lopes
    Loïc Lopes about 2 years
    MAUI does not support Linux, which was a request in the question.