5 ms·
Can anyone explain, why would anyone ditch WinForms in favor of a newer technology on .NET stack? I mean complex apps, not simple forms? Winforms is close to me
by polskibus 9y ago
Can anyone explain, why would anyone ditch WinForms in favor of a newer technology on .NET stack? I mean complex apps, not simple forms? Winforms is close to metal (in the sense it is close to Windows), it's high performance in contrast to WPF and its virtualization, it's been here for ages and can't really disappear because WINAPI won't disappear.
- tonyedgecombe 9y agoFor me supporting high dpi in WinForms was a lot more work than I'd have liked, other than that is a very productive framework.
- pjmlp 9y agoXAML is closer to the metal than Winforms. Forms uses GDI+, while XAML uses DirectX.
- Jaruzel 9y ago> Forms uses GDI+, while XAML uses DirectX. Both of which are abstraction libraries, so I don't understand your point ? Yes DirectX is more powerful than GDI+, but I challenge that it's 'closer to the metal'.
- pjmlp 9y agoWell, GDI has quite a few more translation layers to go through between app and GPU. "Comparing Direct2D and GDI Hardware Acceleration" https://msdn.microsoft.com/en-us/library/windows/desktop/ff729480(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ff7... Also, XAML has been fully rewritten in C++ for UWP, consumed by .NET Native as UWP components.
- Jaruzel 9y agoIn order to make a WinForms app look native on Windows 10, you have to do a LOT of manual layout/padding work. It is do-able but it's a lot of work. Of all the main code platforms that MS push, I'm still pretty much tied to WinForms - I prefer it, and it feels more intuitive to the way I think. It's also been around over 2 decades now, and you can pretty much do ANYTHING with it. I skipped the WPF revolution, and am just about to dip my toe into UWP apps (I'm not a professional coder). I think I'm going to find it a steep learning curve :( What I'd LIKE to see, is UWP running on Linux? That would really cement MS's 'run anywhere' concept.
- pjc50 9y agoWhy would anyone want to make an app look Win10 "native"? It looks horrible (something is always up with the font rendering) and I'd actually prefer a WinForms app.
- skocznymroczny 9y agoWhat is considered "native" on Win10? The 'Metro' apps or normal 'boring' Windows apps?
- Jaruzel 9y ago'Win10 Native' in this context is making your app look like it's seamlessly part of the OS. The big change is the default font: Segoe UI Font: - Standard usage: 11pt Regular - Sub Headings: 14pt Semi-bold - Headings: 20pt Regular WinForms in Visual Studio still defaults to MS Sans Serif 8pt - so you have to change that at the form level before you even start. Plus all the controls have NO padding around them, so you have to add padding manually or use panel controls to space stuff. It's a pain, but not insurmountable.
- vitorgrs 9y agoMicrosoft it's already working on Xamarin.Forms for Linux.
- megaman22 9y agoThe thing that kills me, is that I can whip together a fairly complex application in WinForms in hours, and it just works, and is easy to reason about. Trying to do the same with a web app, is like pulling teeth, there's so much ceremony, and so much surface area where things can go wrong. I miss the thick client days...
- WorldMaker 9y agoMicrosoft wants to be able to ship Windows machines without the legacy Win32 API at all. Win32 has a lot of baggage and dumb APIs that UWP manages to do better. Windows 10 has already migrated more of Win32 out of the kernel and into a not-close-to-the-metal-at-all emulation layer and its only going to get less performant and more virtualized.
- deleted 9y ago[deleted]
- polskibus 9y agoIs this based on some internal information or can you provide citation? It'd be really interesting if what you're saying was on the roadmap officially.
- WorldMaker 9y agoWindows for ARM just recently debuted, with Win32 entirely running in an emulation layer. Reading through the Insider blog posts shows a long thread of disconnecting Win32 from Windows as a part of the OneCore efforts. Win32 may remain mostly performant (the word on the street is that the ARM emulation is very performant), but the days when it was the most "blessed" API set for Windows have passed.