4 ms·
This 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
by rolenthedeep 4y ago
This 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.
- pjmlp 4y agoOr use DirectX APIs...
- naasking 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? Yeah they really made a mess of that a few years ago, but it's sorted out now. As of .NET 5.0 it's just .NET, no more core or framework.