DEV Community

Cover image for Writing UI in .NET sucks
Ayane Satomi
Ayane Satomi

Posted on • Updated on

Writing UI in .NET sucks

.NET is amazing. It allows me to write code for everything in one tooling, with minimal handholding, everything is (almost) self-contained, and most importantly, I can even code my own website using nothing but .NET if I wanted to...

...But I wouldn't wish anyone to code UI in .NET.

The UI tooling is bad... very bad

Before you cranky bunch of people decide to pull out your recently polished mechanical keyboards and clack at the speed of sound stating about UI Frameworks like Avalonia, Uno Platform, MAUI, etc. Please hear me out:

.NET never really had a good cross-platform GUI solution that allowed us to work to our full potential. Most, if not all, UI tooling is Windows-specific (looking at you Blend), we don't have good WYSWYG editors, and it took as long as .NET 6 until it became competitive enough to be used as a framework for writing applications like Flutter.

And we didn't have proper UIs for embedding them inside applications too!

Sure, we have the imgui framework and tons of other niche UI frameworks, but really, that's all we have. - and even then, they were cumbersome to integrate, usually taking more time to implement them in .NET than natively

Did I mention even the most popular CEF bindings are also Windows-only? This is sloppy on our part because we might have a fancy new framework, but we never evolved beyond .NET Framework-isms.

And to put the icing on this dysfunctional cake, Microsoft's own WebView2 library lacks some of the core facilities such as off-screen rendering, and still had some problems here and there by its own standards too, not a good look for a framework being championed by a company who is touting it as their own modern solution for writing things everywhere.

Oh, did I mention the only working embeddable UI right now I can find is also proprietary and requires a license?

Our attitude with UI development needs to change

While I love the new innovations coming to .NET, most of them do not relate to what I need, and it feels like every second the community has neglected this side of development of .NET. This toolkit is more than just for ASP.NET, or for writing servers, or just for Windows-related stuff.

Where and what else does .NET's ecosystem or feature set do you find extremely lacking? Let's discuss in the comments.

Top comments (0)