5 ms·
I remember when I wanted to get into C# desktop app development years ago and it was either WinForms or the newer WPF. I chose WPF and it took a while to get a
by tomalaci 4y ago
I remember when I wanted to get into C# desktop app development years ago and it was either WinForms or the newer WPF. I chose WPF and it took a while to get a hang of it (mostly I had to either import some libraries or create some common ones to handle variable updates through UI bindings). Unfortunately, WPF always felt unfinished and missing many QoL features. I was hoping they would further refine and make it easier to work with but I guess it was never meant to be.
Windows 10 was coming around corner with UWP being pushed as the big desktop app SDK. Then they ditched that because people just didn't like Windows Store and how they did the apps on it (I also wasn't big fan of it). Then everything went to extremely resource-hungry Electron. Now there is .NET MAUI and and some general WinUI framework [1].
I am utterly confused what is happening with UI development on Windows ecosystem. On rare occasion I want to develop desktop app, I have used Avalonia UI [2] which seems to be something more stable than what MSFT churns out every year or two, can highly recommend that.
Either way, they are really destroying Windows ecosystem by pushing out new framework every few years that always feels half-finished before they move on to the next one. This is, of course, on top of Windows versions in general with how they pile new half-finished UI reworks that just keeps piling on insane amounts of technical debt and legacy for future maintenance.
[1] https://learn.microsoft.com/en-us/windows/apps/winui/ https://learn.microsoft.com/en-us/windows/apps/winui/
[2] https://avaloniaui.net/ https://avaloniaui.net/
- arkitaip 4y agoNever heard of Avalonia before but Win development is a solved problem in the form of Electron. No, seriously. Microsoft's own frameworks are in various states of limbo and increasingly confusing to get started with.
- geodel 4y ago> I am utterly confused what is happening with UI development on Windows ecosystem. As you said MS is all in with React based development for UI nowadays. I read somewhere that new versions of Office 365 applications would be in React.
- recursive 4y ago> I read somewhere that new versions of Office 365 applications would be in React. I'll believe that when I see it. I think performance is too important to do vdom reconciliation on every keystroke.
- geodel 4y agoAsking corporates and individuals to upgrade computers is simpler than fixing performance issues. Many seem to be under the impression that there is thriving, competitive market for top rated UI frameworks. But I feel, in reality it is just Electron or bust. So even if laggards (like me) whine about crappy electron apps it is not like people who matter are going to listen and do something about it.
- pjmlp 4y agoYou can try to cross check it on browser developer tooling.
- rolenthedeep 4y agoThis exactly mirrors my experience. I got started just before WPF came around. I felt pretty confident with winforms, and did eventually sink enough time to get good at WPF. But WPF was never really fleshed out, it was missing so many features, and I ended up re-creating several winforms controls that just no longer existed. Then I stepped away from UI development for a few years. When I came back, WPF was in exactly the same state I left it, but we also had UWP. I made one UWP app and decided to fully abandon Microsoft. Microsoft is doing the same thing to the runtime, too. How many different versions of dotnet are there? Which one do you need? Are they interoperable? I tried to build a little WPF tool as an internal widget at work. In total, there's five checkboxes, two textboxes, six combo boxes, a console shoved into a text panel, and a button. No textures or assets. I attempted to build it as a single executable for convenience. What I got was a 140MB exe and a half dozen dlls. Now I've decided to abandon C# entirely and move to something less awful. C# was my first real programming language, and it's always been the first thing I go to, but between Microsoft going downhill and all the technical issues, it would be less effort to learn Rust than to ever open visual studio again
- pjmlp 4y ago> Microsoft is doing the same thing to the runtime, too. How many different versions of dotnet are there? Which one do you need? Are they interoperable? Easy, .NET Framework is the Python 2 of the .NET world. .NET Core, renamed to just .NET as of .NET 5, is the Python 3 of the .NET world. Xamarin (mono), matters mostly when targeting iOS or Android, and some parts of it were used in Blazor AOT compilation infrastructure. MDIL runtime was only for Windows 8.x, while .NET Native is only for Windows 10 UWP workloads. Unity uses mono for interactive development, IL2CPP for production deployments, and the HPC# subset with Burst compiler for DOTS. Yes there are plenty, but so there are C, C++, Java, Python, Ruby,.... implementations.
- rolenthedeep 4y agoThis wouldn't be so bad if each version of the framework supported the same features. What really killed the appeal of C# and windows was my recent experiences with Bluetooth. My job is building what is basically a Bluetooth game controller. The options on windows are the C++ WinRT library, a wrapper around that library in your chosen language, or the UWP libraries (which I suspect are still just WinRT). I started building a dll to handle the UWP functions so that I could use them from our other infrastructure. But no, a UWP library can only be referenced by a UWP application. The alternative is to run it through IL2CPP, which is where I gave up. I really enjoy C# as a language, but I'm so goddamn sick of Microsoft that it isn't fun to use anymore.
- boxed 4y agoLike Google with messenger apps. Apple destroys the competition in both UI libs and messaging because they pick a product and polish it.