Microsoft Spooks Windows Desktop Developers By Calling WPF a … – Slashdot

Please create an account to participate in the Slashdot moderation system




The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Microsoft changes its GUI engine more often than I change underwear. It’s hard to gain traction and support like that. GUI engines take a while to tune right.
I think it’s time to have state-ful GUI markup standard. An open-source browser and/or browser pluggin could be built. I’d rather have somebody besides Microsoft, Oracle, Google, etc. do it, but if big-co’s are the only ones with the resources and influence, that’s better than what exists now.
It could be based off the Tk or Qt engines to avoid starting
You haven’t changed your underwear since 2006? WPF has been around for a long time. Winforms and MFC have been around even longer.
Yet in more recent years it was very unclear which way MS wanted you to go. Will WinForms be deprecated? Years ago it seemed that way and that MS wanted developers to use WPF and make mobile-friendly apps. But WPF was more restricted in what it could do API-wise because it was intended to be used with managed code in a sandbox, so most real apps continued to use WinForms and MS stopped pushing WPF on developers, although as near as I can tell it’s still used extensively in Windows 10 and 11.
Then a few yea
No wait I’m mistaken. Windows 10 and 11 extensively use UWP. How that differs from WPF I do not know. Insiders are saying Maui is the future and brings together the best parts of UWP, WPF, and Xarmarin Forms. WinForms is clearly a target for deprecation. But MS’s track record isn’t good with sticking to a GUI framework, so I don’t know.
Having WinForms as a community project is a great idea I think. I find it kind of funny so many people are panicking about this. Doesn’t this benefit them and ensure th
UWP is a framework for universal applications. Or was, I guess. Deprecated now. WPF is a UI framework. Winforms and WPF may be deprecated at some point, but there’s far too many of those apps out there to worry about ever actually removing support for those. It just means there will only be the barest minimum of maintenance going forward. It’s the same with native Win32 apps. As you said, I think it would be great if they were opened up as community projects. Really don’t see a downside there.
Anyhow, I’m pretty much done relying on MS for a UI framework, especially since last I heard, MAUI isn’t bothering to support Linux. My next personal project will probably use AvaloniaUI. They call it a “spiritual successor” to WPF, with a few improvements here and there). It’s completely open source and cross-platform: Windows, Mac, Linux, Android, iOS. Unlike Qt, it’s built on C#/.NET, which is a lot easier to use than C++. From my perspective, very little not to love about it, now that it seems to have stabilized a bit.
Yeah no support for Linux with Maui. MS is leaving that to the community to provide an implementation for Linux. MS loves Linux, but only on Azure really. Or under WSL2. I’m sure we’ll see a Maui implementation on Linux at some point. Would it ever attract Linux developers to C# and dot Net core? Not sure. Some maybe.
Good to hear AvaloniaUI is a good option. I think if I was doing a C# app I’d lean heavily toward it. There’s a WinForms application that is open source that I’d love to have ported to
WPF, and hence, AvaloniaUI definitely has a fairly steep learning curve. It’s an insanely powerful paradigm, but it’s so ridiculously flexible that sometimes things you’d think should be simple end up being harder than I’d like. Of course, a lot of other things you’d assume to be really difficult end up being trivial, so there’s definitely a tradeoff there. As you said, you need to get a handle on it’s XAML markup language, and for larger apps, you’ really want to learn how to use the MVVM (Model-View-Vi
The problem is the UI space is heavily fragmented on Linux. Do you use x11 or Wayland? GTK, Qt, or xfce? Now which window manager?
Most GUI frameworks, especially cross-platform frameworks, don’t make you worry about such low-level details. Just pick a framework that has a proper level of abstraction.
The problem is they’re writing the framework.
That’s very common on Linux, but, IMO, a memory-managed language makes far more sense than C or C++ for code interfacing with a GUI. There are now many to choose from, and most also have Qt bindings, although knowing basic C++ is still useful since many of those bindings are poorly documented compared to Qt itself.
For our stuff that needs to run on Linux, Chrome OS (also Linux) or Android (also Linux, but older), I’m going with mostly Web technologies for the front end. As we have a lot of legacy code tha
> Qt has QML
Isn’t QML proprietary? I couldn’t make heads or tails of its legal stance, as it would be nice to have a standard state-ful GUI markup/command language so we can get GUI’s over HTTP instead of deal with bloated buggy JS GUI libraries with 4 year learning curves (mostly to understand/prevent myriad gotcha’s).
You’d fire up your Gui Browser and put in a URL, and a server would send you wonderful GUI screens requiring little if any JavaScript.
The X Window system sort of has the right idea, but it
Aside from database, back-end and middleware, I did mostly rich-client development targeting Windows for almost 30 years. WPF was my bread and butter for at least the past decade. But it’s one of the few parts of the modern Microsoft stack that isn’t portable to Linux, Chrome OS, Android, etc., which some of our products now need to be.
Avalonia and Uno Platform looked promising to me, but, nevertheless, I decided to switch from WPF to HTML/CSS/JS for as much of my front end UI work as possible. I’m prett
Delphi/Lazarus mostly stayed the same. I can understand relatively minor changes for upgrades that may require app code changes. So did the Tk and Qt family. (Lazarus is based on Tk, as I understand it.)
> Some magical entity that doesn’t exist that does it 10X better than Microsoft
They don’t have to be 10x better; just stick with, document, and incrementally improve what you got. GUI’s are complex sub-systems, and thus can’t be flushed-and-redone all the time without making a mess.
Chasing mobile and sup
If I were starting out building a windows App today I would have no idea what to use.
How about CreateWindow()? What a concept.
> Yet in more recent years it was very unclear which way MS wanted you to go.
Exactly! Even when they don’t change they still re-point developers all over the place in terms of where MS’s GUI future is.
If there are stretches of stability for MS GUI’s, it’s because their NewThings failed, not because MS was rational.
For example, I remember when Siverlight was sold as the magic merging of web and desktop, and everyone was flocking to get into it. Then all the security holes became public and MS had to back
Tabilzer – free balling since 2006.
To me, Microsoft seems overly inept at making frameworks. It seems like they want to be fast rather than have quality or waste time on an actual design. And this applies to their GUIs. MFC was atrociously bad, if it had been a studen project I’d have given it a C (because if I failed it then parents would have been bitching at me). It’s like Microsoft heard about Object Oriented Stuff and decided to create something of their own, *before* knowing anything about Object Oriented Stuff. Just pitiful. So ma

MFC was atrociously bad, if it had been a student project I’d have given it a C

MFC was atrociously bad, if it had been a student project I’d have given it a C
What else was out there? Motif? Programmers were either hobbyists or electrical engineers in 1992…
Most importantly, they did not have agile development and daily stand ups.
It’s kind of old now and the memory is going, but it felt like it was very difficult to subclass off of their classes and other odd stuff. Ie, their string class was lacking important stuff. This was before C++ went and standardized on the templated strings instead of having a class. I wasn’t really a Windows programmer I just had to deal with it in a few ways when someone tried to adapt it to an embedded system. It felt like they just wanted a compiled variant of the jumbled mess they had in visual bas
MFC was atrociously bad

What year is it? MFC was a simple wrapper around the Winapi/GDI and COM/ActiveX. ATL came around as an alternative if you love using templates instead of classes and inheritance/overloading. Only the nutcases that felt it was “bloated” thing it was a turd. Those same people wrote their GUIs with straight GDI code and burned effort and time instead of using the development tools available.

the misunderstood Hungarian notion for example

Dude, you are clea

the misunderstood Hungarian notion for example

Dude, you are clearly living in the stone age. Hungarian Notation wasn’t a Microsoft thing, but it *was* prevalent with Windows developers as a means to appropriately sort the objects/functions in the IDE. More specifically, Visual Basic

the misunderstood Hungarian notion for example
Dude, you are clearly living in the stone age. Hungarian Notation wasn’t a Microsoft thing, but it *was* prevalent with Windows developers as a means to appropriately sort the objects/functions in the IDE. More specifically, Visual Basic
Hungarian Notation was invented or at the very least popularized by Microsoft (in particular a Hungarian named Charles Simonyi). (According to wikipedia the origins were probably Xerox PARC – where Simonyi had previously worked.) I don’t think it was much used outside of the Microsoft world but you are right, it isn’t unique to that world.
It really is/was misunderstood. The original use was much more useful than its use in the Windows API (which MFC inherited). It is meant to be a type system in the broad s
Hungarian used pragmatically with your own problem’s types makes code much clearer.
Ignore the naysayers who don’t get it.
> And what did [others] come up with in 1992 (or in any of the intervening years) that was so much better?
Delphi/Lazarus! Still around, still useful. They incrementally improved what worked rather than throw-it-out-and-start-over-every-7-years. (The Tk kit is still around from early 90’s also.)
Soyuz capsules did roughly just as much space-work as US Shuttle/Orion at 1/10th the cost because they perfected what they had rather than throw it out like NASA did with Apollo, and ended up eventually reinventing

Microsoft changes its GUI engine more often than I change underwear

Microsoft changes its GUI engine more often than I change underwear
MFC: 1992 onward
WinForms: 2002 onward
WPF: 2006 onward
UWPWinUI: 2015 onward (but was essentially WPF)
If you ignore the short space between Winforms and WPF there’s about a decade between releases… you can still make MFC applications.
Arguably Microsoft’s biggest issue is that they don’t “change” GUI engines often enough. Apple just flat out kills its old UX system periodically and forces you to upgrade to one that properly supports high DPI screens, HDR, resizable screens, etc. So almost all apple applications work well on a 4k modern monitor. You launch a winforms app and it technically runs but it’s probably a horrible experience on most modern computers.
The same is true of Linux. Lots of applications have dependencies on specific versions of Qt. Do you want Qt to stop releasing new backward compatibility breaking versions or do you want zero progress to take advantage of pens, touchscreens, HDR displays, 4k etc.
> You launch a winforms app and it technically runs but it’s probably a horrible experience on most modern computers
They could have rewrote the render engine to be vector-based instead of pixel-based. You’d have to recompile and make certain spot adjustments for the vector version, but otherwise most the API would remain the same. They’d didn’t have to flush the entire thing to solve the resolution problem.
Winforms is literally a wrapper around classic Win32 programming, so it does not support anything fancy like vector rendering.
If you wanted vector rendering, there’s Silverlight. Remember that?
> Winforms is literally a wrapper around classic Win32 programming, so it does not support anything fancy like vector rendering.
They could rewrite the API to use vectors underneath such that most API calls still work. Most WinForms methods are at a high-enough level that pixels vs. vectors won’t require rewriting most your app. Yes, there are edge cases that have to be dealt with, but roughly 98% would be the same.
> If you wanted vector rendering, there’s Silverlight. Remember that?
Silverlight failed
If you think of APIs in terms of capabilities and usability, then yes, MFC was great in terms of capabilities. It was kind of a pain to use, though.
Microsoft in that era wrote a lot of APIs with excellent APIs but horrible capabilities. COM comes to mind, great capability but hard to figure out how to usew. They kept on writing extra layers on top of it in attempts to make it more usable. And of course, the Win32 API is certainly functional, but as for usability:
http://www.johndcook.com/blog/… [johndcook.com]
Also WPF is
I like WPF. I’m an embedded guy so the desktop stuff I write is mostly stuff like automated test systems and programming tools, but WPF is great for that.
The XAML stuff is easy and let’s to build a nice, scalable GUI fast. It’s a bit of a pain to manage background worker threads at first, but once you get used to it it works very well.
The only real issue I have is that it’s not cross platform.
COM does a great job of solving the problem of being able to clean up objects created by another DLL file.
Reference counted objects where the objects themselves provide the cleanup makes it so it doesn’t matter what method of memory allocation was used to allocate the object.
“malloc” is one of those functions that does not work across DLLs because you might get HeapAlloc from one DLL, but then get VirtualAlloc + manually allocated from pages in another DLL.
It took me several years to understand COM, but once I understood it, I thought it was a really nice design.
However, in terms of usability, it was verbose and the function names weren’t memorable, and some things took way too many lines of code.
Microsoft bought FoxPro database and just discontinued it. They didn’t release it as open source, if you were a customer, you were just screwed.
I know this because I had to help someone extract their data from the database after the software was discontinued. What a pain.
> Microsoft bought FoxPro database and just discontinued it.
To be fair they didn’t outright discontinue it. It’s allegedly still purchasable (in a round-about way), but it hasn’t been updated in more than a decade.
For ad-hac data diddling I loved FoxPro/XBase. It was much easier to reuse code than MS-Access. I wish it were open-sourced because I have music sequencing scripts I wish to resurrect.
You can try using this:
https://github.com/infused/dbf [github.com]
That seems more of a data converter/reader API. Running xBase scripts (programming files) is another matter. But thanks for the suggestion.
You might be able to get a copy of the actual software that still runs on eBay.
MS should just open-source VB 6 and FoxPro. They took a lot of heat for discontinuing the Pre-Net VB line, as it left a lot of companies high and dry. They could make up some of that ill-will by open-sourcing so others can modernize the products. (Their conversion tools from VB6-to-Net didn’t work very well because the inherent architecture is too different.)
FoxPro does use a patented “Rush-More” indexing technology, but it probably can be removed and replaced with the pro-Rushmore engine or some other B-tr
Correction: “and replaced with the pro-Rushmore…”, should be “pre-Rushmore”. (Small fonts got me, Control-Plus, Baby!)
I believe all the Rushmore patents have expired.
I cointermed!

Microsoft bought FoxPro database and just discontinued it.

Microsoft bought FoxPro database and just discontinued it.
To be fair, they released five major versions before they discontinued it.

They didn’t release it as open source, if you were a customer, you were just screwed.

They didn’t release it as open source, if you were a customer, you were just screwed.
I support and maintain a Visual FoxPro application from 1996, most of it running under version 5, also from 1996. It still works under Windows 10. Incredibly reliably. I’m kind of happy MS is leaving it alone and not screwing it up. Hopefully it won’t stop running before I do.
Well how did you get the software?
The older version was purchased directly from MS oh so long ago. The later version had to be purchased on eBay, which appears to be still possible [ebay.com].
FoxPro isn’t sold anymore, but it’s still available as part of the Visual Studio Pro annual subscription. $1200 is kind of expensive just for that, though.
GTK is the most widely used gui toolkit on Linux, but it is a moving target so something that was written ten years ago may or may not work the same way when it’s compiled on a newer system.
For anyone who wants a stable gui toolkit for Linux, look at http://xforms-toolkit.org/ [xforms-toolkit.org]
It looks good, works on pretty much everything, and hasn’t changed in decades so stuff you wrote twenty years ago will still look and work the same.
It’s been pretty easy to keep up with Qt over the years. The migration from Qt 4 to 5 was pretty easy, and the transition to 6 looks to be pretty smooth. Qt is my go-to choice for desktop application design.
For mobile/touch screen, I’m warming to QtQuick. QtQuick is also usable from a variety of languages other than C++, thanks to its simplified object model and API.
I stopped using Qt after the horribly botched transition from 3.3 to 4. I had been writing Qt programs for a few years until then, but the tools provided to transition between 3.x and 4 didn’t work. It took me a year to rewrite just one of my dozens of Qt programs, so I went back to Java for all my desktop software.
I consider Qt to be a dead-end toolkit.
It would take me a year to be able to run again one of our attempt using Java. You’re a Java coder, I’m a C/C++ coder. That doesn’t mix very well.
I’ve been bothered by some Qt transition, especially by regex from v 5 to 6. But it’s manageable. And I can’t even remember a problem between 3 and 4, or 4 and 5 !
Is it the right place to tell how Java can be a pain in the ass when going a little bit low level ? It was so fun, you can’t imagine, to communicate with devices through I2C buses from a language that do
Java was designed to interoperate with C or C++ when necessary, via JNI (Java Native Interface). C# has similar capabilities, as do Python, Node, PHP, and pretty much everything else out there.
I’ve long believed that using higher-level, memory-safe languages for most application development (not systems), dropping down to C or C++ only when necessary, makes the most sense 95% of the time.
The most stable language/GUI system ever created is Java. I have Java programs I wrote in 1997 that still run, unmodified, today. This was back when AWT was the dominant Java GUI system. I haven’t had a need for any of those old Java programs for a long time now, but they are still there and still fully functional.
Every Java program I have ever written still runs, unmodified, on Linux (which was always my primary target) and Windows. Even my old applets still run on appletviewer (not that I’ve used them for
Surprising, as Microsoft can “open source” WPF and call it “Windows Package Flop” or some other Jim Dandy acronym…
JoshK.
It is open source actually, but still not portable, because it’s largely a wrapper around DirectX, which is not portable outside of Windows.
There are similar technologies including Xamarin Forms, MAUI, Avalonia, and the UNO Platform, which are a great deal more portable.
Open source, but coupled in software…again yet another surprise (please note my sarcasm…)
And agreed, there are similar technologies, I did not know specifics, so thank-you for sharing about the specific technologies.
Reminds me of organizations sharing a library, but it is coupled to a proprietary package and/or framework…
JoshK.
Windows may as well also be called a community run project, since we’re all unwitting beta testers for Microsoft.
“Who’s happy that WPF is now a community run project? This is soooo scary,” remarked Morten Nielsen, a senior principal engineer at ESRI working on the ArcGIS runtime, for location-based analytics.
Was it removed?
There may be more comments in this discussion. Without JavaScript enabled, you might want to turn on Classic Discussion System in your preferences instead.
Meta To Delay Closing Within Unlimited Deal by One Month
USPS Expects To Only Buy Electric Delivery Vehicles Starting in 2026
Is a person who blows up banks an econoclast?

source

Leave a Comment