6 ms·
Coincidentally, Win32 is also the only stable API on Windows. WinForms and WPF are still half-broken on .NET 5+, WinRT is out, basically any other desktop deve
by codebolt 4y ago
Coincidentally, Win32 is also the only stable API on Windows.
WinForms and WPF are still half-broken on .NET 5+, WinRT is out, basically any other desktop development framework since the Win32 era that is older than a couple of years is deprecated. Microsoft is famous for introducing new frameworks and deprecating them a few years later. Win32 is the only exception I can think of.
- ahtihn 4y agoSince when is .NET 5+ part of Windows?
- markmark 4y agoAnd .NET 4.8 is still installed by default on Windows 11 and will presumably happily run your WPF app if you target it.
- solarkraft 4y ago.NET 4.8 might be one of those things they won't be able to get rid of.
- int_19h 4y agoWindows 11 still ships msvbvm60.dll - that's the runtime for Visual Basic 6, released back in 1998. And it is officially supported: https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy https://docs.microsoft.com/en-us/previous-versions/visualstu...
- codebolt 4y agoSince MS decided to deprecate .NET Framework, making .NET 5+ the recommended basis for C# desktop development going forward. Yes you will still be able to run your old apps for many decades still, but you can never move to a newer version of the C# language and maintaining them is going to be an increasing pain as the years go by. I've already been down this road with VB6.
- pjmlp 4y agoWinRT lives on as WinAppSDK.
- solarkraft 4y agoThe names aren't getting better either ...
- Longhanks 4y agoMetro lives on as UWP lives on as WinRT lives on as Project Reunion lives on as WinAppSDK. Exactly the point the OP was making. Win32 is stable.
- pjmlp 4y agoIt is all COM, all those marketing names only reflect a set of interfaces, using .NET metadata instead of TLB files and processes being bound to an App Container. Win32 is stable indeed, raw Win32 is stuck in Windows XP API surface, most stuff that came afterwards is based on COM.
- FpUser 4y ago>"Coincidentally, Win32 is also the only stable API on Windows" And this is what I use for my Windows apps. In the end I have self contained binaries that can run on anything starting from Vista and up to the most up to date OS.
- ninkendo 4y agoHonest question, do you get HiDPI support if you write a raw win32 app nowadays? I haven’t developed for windows in over a decade so I’ve been out of the loop, but I also used to think of win32 being the only “true” API for windows apps, but it’s been so long that I’m not sure if that opinion has gotten stale. As a sometimes windows user, I occasionally see apps that render absolutely tiny when the resolution is scaled to 200% on my 4k monitor, and I often wonder to myself whether those are raw win32 apps that are getting left behind and showing their age, or if something else is going on.
- FpUser 4y agoI use Delphi for my "official" windows desktop applications. They have GUI library that wraps Win32. Seem to handles HiDPI just fine. I do use raw Win32 but not for GUI stuff.
- ripley12 4y agoIIRC yes but you have to opt into it with a manifest (or an API call).
- kevin_thibedeau 4y agoGDI32 has always had support for configurable screen DPI. You used to be able to customize it in Win95 but they hid the setting because too many poorly developed applications were written with inflexible pixel based dimensioning. If you lay everything out in twips it will scale without any special effort.
- alkonaut 4y agoWinForms is just mostly a managed Win32 wrapper so unsurprisingly it’s very stable on the OS frameworks (4.X). Building for .NET Framework using any APIs is extremely stable as development has mostly ceased. You pick a target framework depending on how old windows versions you must support.
- int_19h 4y ago.NET Framework is still there by default out of the box, and still runs WinForms and WPF like it always did.
- actionfromafar 4y agoWhich version of it? 1.0?
- kevingadd 4y ago4.8x ships and still gets security updates
- jiggawatts 4y agoMicrosoft insisted on introducing a bunch of breaking changes into .NET Core (and all future .NET versions), making 4.8 a "dead end" in which many enterprise customers of mine have become stuck. ASP.NET Web Forms sites are especially stuck, and on top of that I have customers that have developed Web Forms sites in VB.NET! Luckily there are some good bulk-conversion tools available now, but still, there is no smooth upgrade path for a lot of popular systems. Similarly, Windows Communication Foundation, Workflow Foundation, and a bunch of other popular libraries or frameworks are dead in the water. SAP Crystal Reports is surprisingly common, but doesn't even have an official NuGet package!
- int_19h 4y agoThat's a different story, though. The point is that old apps written against .NET Framework still work - you don't have to port them to .NET 5+ to get them to run on Win11.
- codebolt 4y agoYes, they will run, as will most VB6 apps from 1998. But if you have developed a .NET Framework app that you want to see living into the future a decade or more from today, you need to know that maintaining it is going to be increasingly painful as time goes on. You are locked to an old version of the C# language, and you absolutely can't count on third-party dependencies to stay supported. At some point MS might well decide to drop tooling for .NET Framework development in new releases of Visual Studio.
- taneq 4y agoI was gonna say, I think Win32 is the only stable API full stop. Everything else is churn city.
- IYasha 4y agoYeah. And MFC on top makes it a bit more chewable :3