Looking at C# UI Alternatives (WPF, WinForms, CharMode, WebUI)

I’ve got some tools development coming up at work as my current program winds down (I’m now pretty much leading myself). These tools will need a user interface to control them (and this need applies to various personal sandbox work as well).


I’ve worked with a number of technologies that might fit the bill here and have been refreshing my memory on them to make a choice:

  • WPF was the first option that came to mind. It has been Microsoft’s leading option for C# native UI development for some time. I have done a bit of prototyping with it, but nothing of any significant size.
    The more I refreshed my memory and read more recent discussions of WPF the more it became clear that the technology has a steeper learning curve and more incidental complexity than I want to take on for this work.
  • Windows Forms is the MFC in C# alternative. It was created first and I have done a decent amount of MFC work in the past. It leverages the native windows mechanics with a C# wrapper on top and likely provides easy access to dialog windows (which suite this sort of fixed tooling surprisingly well).
    This might be an option but I have done virtually no work with Windows Forms. The possibility that there might be hidden , steep learning curves and the apparent  near obsolescence of the API makes me reluctant to spend much time on it.
  • Character Mode Interface is the old school option. It has been suggested as worth considering. It would certainly be easy to implement.
    It does present a primitive and limiting interface to the user. I’d like to have better user experience and the flexibility to provide expert mode tools and other such in supplementary UI areas. Character mode makes anything of the sort ugly and difficult to use.
  • ASP.NET Web UI looks like my preferred option at this point. I can take the easy route and host it under IIS where I can find excellent examples and plenty of support. I have a book from my recent book buying spree that talks directly to ASP.NET with Angular. This is also a forward looking choice as web UI seems to be the place to go for most things at this point.

I expect to read through the ASP.NET with Angular book (ASP.NET Core 2 and Angular 5). Once I’ve read through it I’ll play with some implementations and see what I can build quickly and easily. I think these tools point towards Visual Studio 2017 rather than the Visual Studio 2015 that I’ve been using for the last year or so, but I don’t see why that should be an issue.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.