4 ms·
I'm not entirely sure we're referring to the same WinForms but I distinctly remember loving C# in 2009 or so, just when WPF was coming out. But I refused to use
by jack_pp 8y ago
I'm not entirely sure we're referring to the same WinForms but I distinctly remember loving C# in 2009 or so, just when WPF was coming out. But I refused to use WPF for my apps because back then you'd have to force the user to install the latest .net which I thought was too much of a bother.
So I tried using the old GUI framework and boy was it a nightmare to customize anything. I remember having to override the default Button class and add like 50 lines of code just so I could get a custom background. This and the fact that C# back then couldn't do high scalability servers were what forced me to learn C++ and in my opinion QT is a much easier library to use than the old WinForms was.
- ocdtrekkie 8y agoWinForms' key is the quick drag and drop and edit properties type designer. It's not really intended for you to restyle it entirely (though you can). In that it was 'the style' of apps of the day, you could simply put whatever elements you needed on a form, and then double click on them to put some code behind them. Since WinForms' existing styling was the style of applications of the day, there was little reason to heavily restyle it. Honestly, if someone ran with the new open source WinForms and introduced a Windows 10 style that I could build with the same incredibly easy editor as the existing WinForms, I'd be set.
- blattimwind 8y ago> I remember having to override the default Button class and add like 50 lines of code just so I could get a custom background. That's mostly because you're not supposed to be doing that sort of thing in the first place. Customizing widgets = inconsistent look and feel. Custom widgets = Inconsistent LAF, inconsistent interaction, no accessibility etc. The idea of Win32 UI, WinForms etc. is that you have a look and feel dictated by the system, not by individual app developers, with the ultimate goal being not just a consistent look and feel of the whole system (including applications) but consistently applied patterns of interaction. This in turn makes computers easier to use. Of course, modern UI frameworks, whether in the browser (JS) or outside the browser (QML, UWP, JS, ...) run completely counter to that.
- jack_pp 8y agoThat's all well and good but in certain niches you need custom graphics. A good example is gaming, have you seen how beautiful the blizzard client is? Steam is nice too. Users of these apps don't care about a unified experience with the rest of the win32 ecosystem, in some ways these apps are a different ecosystem unto themselves. I was trying to write a poker client so same thing, using normal buttons just wouldn't have made any sense. It would've been ugly as hell. Modern UIs stray from a standard because standards are boring and if your app is boring then your not so boring competitor will snatch your users.
- jen20 8y agoYour “boring” is a blind persons “basically usable”. Standards exist for a reason. I actively judge apps with non-platform-standard UIs as worse than an equivalent with a standard UI.
- CuriouslyC 8y agoWhile I appreciate inclusivity, software isn't just utilitarian, it's also aesthetic. when it comes to aesthetics, slavish adherence to the lowest common denominator is a cancer... By analogy, would you like it if all books were written for a fourth grade reading level because some people can't handle more complexity? Or if the plots of all movies and television shows were simple enough for an idiot to follow?
- int_19h 8y agoComplexity is not an issue here, though, and in general the "boring" UIs tend to be the more complex ones, in terms of exposing more features etc. It's the custom-made ones that often trend towards fourth grade reading level...
- CuriouslyC 8y agoIronically, you got lost in the analogy. I'm not talking about interface complexity, but any intentional deviation from maximal accessibility (at least when it serves an aesthetic purpose).
- mrsteveman1 8y ago> But I refused to use WPF for my apps because back then you'd have to force the user to install the latest .net which I thought was too much of a bother. That always puzzled me, even though I've seen some of Microsoft's reasoning and blog posts about it. Microsoft has repeatedly stressed that you can't assume any particular version of Windows comes with a specific version of .NET preinstalled (or VC++ runtime, for that matter). Windows already bundles various things, and the major .NET frameworks seem like the thing to bundle and preinstall, and they actually do[0], just not consistently or universally. And, Windows Update can already update the .NET frameworks, in fact I recall that some new major .NET versions were treated as "recommended" installs by WU in the past and were automatically installed on systems that didn't already have them, but they aren't doing that consistently and universally either. [0] https://blogs.msdn.microsoft.com/astebner/2007/03/14/mailbag-what-version-of-the-net-framework-is-included-in-what-version-of-the-os/ https://blogs.msdn.microsoft.com/astebner/2007/03/14/mailbag...
- pandalicious 8y agoI think that’s one of the reasons that WPF never saw much use in terms of widely distributed desktop apps. You couldn’t assume the presence of a particular version of the framework on any given Windows install and (until now) you couldn’t bundle the framework with the app like you could with the JDK.
- ocdtrekkie 8y agoA lot of Windows applications built with .NET do a dependency check and launch the .NET Framework installer (often included in the installation package) if you are missing the minimum required version. Of course, that is a system-level change, which can potentially break other applications on your machine (if they're written badly and/or poorly supported). .NET Core removes that by supporting side-by-side versions and versions packaged with the app, but it certainly wasn't critical to assume a given machine already had a .NET Framework version in question. Honestly, with Windows 10 now including .NET Framework updates along with feature upgrades every six months, and the fact that pre-Windows 10 versions of Windows haven't that many more years to live, it feels like that advantage isn't as big as it used to be anyways. My concern is .NET Core may lead to a lot of unnecessary software bloat. Where Windows has the current .NET Framework, but we still have to have six versions of .NET Core installed, and then half the programs on the computer don't use those and have their own bundled versions as well. I find .NET Framework already being on-system to be a big perk of writing my app with it: My software is a 7 MB file because most of the code is already built into Windows.