Search code examples
c#windowsuwpwindows-store-apps

Desktop app for windows- .NET Core or .NET Framework


I am interested in developing a a desktop app for windows desktop, and it must be on the Windows store.

As I see it there are two paths. Developing using .NET Core (UWP), or developing using the .NET Framework.

Currently I don’t care about none-desktop devices. I do care about the pain having only a subset of the .NET Framework, but I am worried only UWP will be supported in the near future.

What path should I choose and why?


Solution

  • First of all, you're mixing two different kinds of things. C# is a language (like C, C++, JavaScript etc.) while UWP is a platform (like WinForms, WPF and, lets say, console). UWP can run only on W10 devices and can be written in C#, HTML + JS, Visual C++, Visual Basic...

    As you've correctly said, UWP can use only a subset of APIs available in full .NET Framework. That's because it's based on .NET Core. Later this year UWP should get support for .NET Standard 2.0 which brings lots of APIs that were previously unavailable in .NET Core and .NET Standard, but, this upgrade will be available only to UWP apps with minimal version set to W10 Fall Creators Update (coming September or October 2017) so if you want to support older versions of W10 you cannot use these APIs in UWP.

    If you want your app to go to Windows Store, the easiest way is building a UWP app. You can also use Desktop Bridge to pack your classic (WPF, WinForms etc.) app and upload it to Windows Store.

    Your choice should be based on requirements of your app. I'd personally use UWP if I'd not need to use APIs that are not available there.