DEV Community

.NET Technology Stacks for Windows Desktop Development

Claudio Bernasconi on May 10, 2019

Despite the trend in modern software development to the web and mobile platforms, desktop applications are still all around us. When it comes to Li...
Collapse
 
timothymcgrath profile image
Timothy McGrath

If you do choose WPF or WinForms for any new projects, you should really consider targeting .NET Core 3.0, as it now supports both platforms.

This will remove your dependency on installed .NET Frameworks and allow you to move forward with .NET 5.0. Otherwise you'll be trapped.

Collapse
 
claudiobernasconi profile image
Claudio Bernasconi

Thanks for your excellent comment. I did not write that much about the runtimes. I would also say that it is a very good idea to target .NET Core 3.0 for new projects. For existing projects, it can be a lot of work to migrate. But I guess it is needed sooner or later.

Collapse
 
timothymcgrath profile image
Timothy McGrath

Yep, I have a huge WPF project that I'm looking at migrating. I haven't determined how hard it is going to be but I think it'll be easier than starting from scratch. It's the only way forward...

Collapse
 
nahartwell profile image
nahartwell

It would be great if you could try posting some articles here and on your [mapquest directions] blog at the same time as a test:)

Collapse
 
luturol profile image
Rafael Ahrons

Great article!!

I've been coding WinForms for the past 3 years now and I really enjoy using it with DevExpress. Never used others frameworks like WPF or UWP or Electron.Net and had always the curiosity to learn more about it, your article gave me ground to where to look for to learn more and which one should I pick to learn.

I'll try to learn more about Electron.Net and have already started WinForms repository on Git hahaha

Thank you for the article.

Collapse
 
kid_jenius profile image
Daniel • Edited

I highly recommend trying out UWP. It uses the most powerful yet easy-to-use version of XAML that Microsoft has created. It makes building modern UI applications a breeze. Here's a great Get Started tutorial to get you set up quickly: docs.microsoft.com/en-us/windows/u...

Collapse
 
claudiobernasconi profile image
Claudio Bernasconi

Thanks for your kind words. As an author writing for free, I always enjoy feedback.

If you want to learn something new Electron.NET can be a good fit. Just make sure you choose the technology that fits your project best. Avalonia can be interesting too because it runs on .NET Core and compiles to a native application instead of a browser-based application like Electron.NET.

You can always DM me or tag me on Twitter if you have any questions.

Collapse
 
viniciuscavagnolli profile image
Vinicius Cavagnolli

I'm working currently on a healthcare system, fully in WinForms and with around 18M lines of code.
I've been designing the UI in DevExpress for WinForms for about 3 years now, and it does feel great to use.
I'm now starting to migrate some parts of the application abusing the so-called XAML Islands, as some functionalities of our software are expected to run on Desktop for the next few years (other parts are going to be browser-based, but the Desktop will be kept for the functionalities that are needed in network-restricted scenarios in hospitals and etc.).
I am sure that many big applications like that will still have a space on Desktop for a long long time, and its really good to see some attention on this matter. Great post on that.
Lastly, thinking about security, performance and offline availability, Desktop will probably only die, if ever, together with Desktop OSs.

Collapse
 
euankennedy profile image
Euan

For me the key shortcoming of WinForms is how poorly it handles multiple monitor setups and different resolutions. I recently ported the UI of a small app from WinForms to WPF for this reason and have been very happy with the result - much more modern feel and seamless adaptation to moving the app’s dialogs between monitors with different resolutions.

Collapse
 
claudiobernasconi profile image
Claudio Bernasconi

Glad it worked out for you. I also think that WPF offers more features when it comes to user experience requirements. Multi-monitor is undoubtedly such a requirement. Thanks for your feedback.

Collapse
 
aravindk profile image
Aravind Kothandaraman

IMO, and with seeing the mem perf, although Electron.net is a great alternative, its eating memory like any other ElectronJs products which are chromium based. Except for that, they work well on cross platforms. If its only windows, i'd incline towards WPF/UWP.

While .net Core based WPF is grooming with some win32/com being excluded, i am hoping to see it turning to be supporting cross platform soon (at least in the growing future versions).

Collapse
 
claudiobernasconi profile image
Claudio Bernasconi

In the meantime, I see Blazor as an excellent alternative for cross-platform user interfaces. The web is cross-platform by its nature, and I see many people from the .NET community moving in that direction. Other than that,

I agree with your comment. There will always be different technologies around, and we, as developers, need to make the decision based on our requirements.

Collapse
 
noseratio profile image
Andrew Nosenko

πŸ‘to this and your blog post on WPF. It appears you've got a copycat from these folks, which means you must be doing something right! :)