There is something really appealing about native applications. As a user, having a “real” application – as opposed to a web application – often feels better. Native applications feel like a real piece of productive software.
Maybe that’s why I enjoy working on them. I know that my work will produce something I might enjoy using.
My first job was working on a C++/MFC application. While I don’t think C++/MFC was a particularly productive development platform, the application felt good.
During my career, I have also worked on Windows Forms applications. Windows Forms was probably the best example of great tooling combined with great software. You could develop an application really fast, and I still think it was faster than almost any no-code solution out there today.
Then came along WPF, which was almost a great platform. Certain things, such as layout, they got right. But WPF never was really given the v2 it needed.
Then came Windows 8 and the confusion of application development options. With Windows 10, Microsoft pushed developers to build UWP applications, which were part WPF, part web, and part unique. This muddied the waters for us C# developers. Should we go UWP or WPF?
Microsoft also hasn’t had a great strategy for mobile applications. Up until they purchased Xamarin, they were basically out of the mobile space. Xamarin has some great technology, and the combining of Microsoft’s resources with Xamarin’s plan seemed like an amazing pairing.
.NET MAUI was supposed to be the next big evolution of Xamarin Forms, but now it would include desktop apps. This would allow us to use C# and XAML to write applications for Windows desktop, Mac desktop, iOS applications, and Android applications. This could be a huge deal from a C# developer perspective. It could also give us a platform to bet on for developing desktop applications and those that need to be cross-platform.
Unfortunately, .NET MAUI won’t ship with .NET 6 this fall. .NET MAUI has been pushed off to 2022. This is sad news for someone who wants a good C# desktop development story.
Now some will argue that you can currently develop C# applications for Windows in a variety of ways. And that statement is very true. Win Forms, WPF, and UWP are all good options. But if you want to use C# to write an application that runs on many platforms, you don’t have many choices.