10

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
  • 314
  • 1
  • 3
  • 23

5 Answers5

16

As the other answer alludes 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 pros 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 bat.

Guides to get you started :

MindingData
  • 11,924
  • 6
  • 49
  • 68
  • 1
    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! – user1337 Nov 12 '18 at 10:07
  • .NET MAUI is new in .NET 6. It offers all of this functionality. https://devblogs.microsoft.com/dotnet/announcing-net-maui-preview-6/ – José Mancharo Jul 14 '21 at 17:40
14

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

Zachary Canann
  • 1,131
  • 2
  • 13
  • 23
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!

  • 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 :/ – Dilara Albayrak Feb 23 '18 at 15:03
  • .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. – omajid Feb 23 '18 at 19:54
2

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

faiaz000
  • 39
  • 4
  • 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." – FireController1847 Jun 23 '20 at 17:41
2

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.

TomJackson
  • 21
  • 3