Saturday, August 4, 2018

Moving a C#/WPF desktop application forward into the future?

Apologies for the maybe overly spectacular title but I couldn't come up with other words. Here's the deal: we have a Windows desktop application written in C# and WPF (and AvalonDock and Prism), bridged with C++/CLI to a C++ layer which is cross-platform. 8 years or so ago C# with WPF seemed like a solid choice (mainy because it took way less time to get a prototype running than with QT). Now somewhat less: there's this fear, possibly ungrounded, the WPF and Windows-only part might become a problem in the next 10 or 20 years. Also even with MVVM etc I find WPF still quite verbose and sometimes hard to seperate pure UI from the rest of the code through bindings. Hence we got the idea to look around for something new.

First of all: I didn't follow the recent .Net developments closely but am assuming .NET Core is the thing to go for for cross-platform C# possibly mixed with some F#?

Up next, what would be the framework to choose currently instead of WPF if it's Windows desktop only? And if OSX/unix should be targetted as well? And if it could be C++ instead of C#?

Last but not least: due to lack of resources a complete rewrite is not possible so we're tinkering with the idea of developping the next new feature with the new framework/tools selected (or maybe multiple prototypes even), and host it inside the current application. Practically I'm for example envisioning building a dll with e.g. .NET Core, calling into it from the current application (not even sure that works, but usually MS got their shit dialled when it comes to interop like that) and showing it's window there. While at the same time using that dll in a minimal application shell on OSX for instance to provide just that functionality there. Any thoughts?

Moving a C#/WPF desktop application forward into the future? Click here
  • Blogger Comment
  • Facebook Comment

0 comments:

Post a Comment

The webdev Team