We're looking for a GUI to replace WinForms in a client application running on Windows 10.
- It needs to work with c# (that's what we're familiar with and existing code is written in)
- It needs to work well with a touchscreen
- It needs to be more "modern" than WinForms
- We need to be able to call certain .NET Framework (it might be possible to call them from .NET Core)
- We need to be able to print images (and\or pdfs) on specified printer with specified page settings from our application
- Save some files (or settings) on the client machine
Additionally, if the framework helped us push new versions to target machines easily it would be great.
Initial research points to WPF, UWP and Xamarin, but it looks like UWP would complicate the distribution process.
We also considered going with an ASP.Net MVC app (running on the server), but that would break printing, which we need.
We have a WinForms client application. The application runs on a variety of Windows 10 computers, all of which have a touchscreen (with the exception of the one it is developed on). Most are AllInOne Desktops without keyboards, some are laptops (one or two tablets). Besides touchscreen, we also use barcode readers (in keyboard mode).
There is a number of problems with this application:
- WinForms doesn't work well with touchscreens (we managed to solved this somewhat)
- When we try to display some more data on the screen (text and images) UI can become slow
- We can't always make WinForms display things the way we want (scaling, layout etc.)
We've considered switching to ASP.Net MVC, because HTML could probably work better as an UI than WinFroms, but we still need to do some things that a browser could not. One of which is processing and printing pdf files on the computer the client is running on.