WPF is dead in the sense that Microsoft doesn't want to be promoting a non-cloud, non-mobile technology. WPF is alive in the sense that it is the best solution for meeting certain customer needs today.<p>For example, we have a very heavy desktop application that needs to run on Windows 7 PCs with IE 8. When we started developing this application a year ago, the cost to do it in HTML5/CSS/JS given the maturity of the tools at that time, compared to WPF, made WPF the obvious choice. In a few years when local web databases and synchronization frameworks have improved (we just saw a really neat one a day or two ago here on HN) and all the machines have been replaced with Windows 10 and IE 11, an offline web app would be the right choice. But we can't (or, don't want to) delay development until that time. So, for now, WPF is the right answer.<p>But anyone who thinks WPF is still a first-class citizen or that Microsoft is going to come back in marketing support of it is probably kidding themselves.
I actually wrote an application using WPF, and what's worse is it was <i>relatively</i> recently. The project was an audio/visual control application, and our CEO (not CTO) made the decision to use WPF because "the Mac fad was in its final days." (Never mind the obvious, platform-neutral rebuttals.)<p>Truth be told, though, the development process was pretty straight-forward and I don't have anything negative to say about that aspect of the project (though our application was pretty straight forward). The only downside was we deployed the application at a university, where about 90% of students and staff were running OS X and unwilling to install Silverlight on their machines, which made sense; the iPhone 4 was already out, and responsive, cross-platform access was already considered MVP by most product managers at the time.
What is never really can grasp is the conclusion that no new versions equals a dead platform. In the case with WPF(and Silverlight to some degree) the platform is so mature, that one got all the features that is needed to create rich applications, while having a nice developer experience. It`s just done, no need for future versions and fixes, so one can start build things with it instead.<p>I have(as many others) made the transitions from building WPF/Silverlight applications to HTML/JS and im astonished over how eager the community is it solve the same problem over and over again. It seems like everyone just goes ahead and reimplementing their own solution instead of improving whats already exists.
Every week someone releases a framework, tool etc. thats exactly the same as the five alternatives already existing and often the only difference is that it`s "implemented by us".
And I will not start with NodeJs, 40 frameworks for spinning up an http-server. Congratulations.<p>So my two cents, long live WPF, the mature framework for creating Windows applications for many, many years to come!( at least in enterprise ;) )
Given enough constraints on the development environment, WPF can turn out to be the best choice.<p>Those constraints are usually as follows:<p>- Our developers cannot use anything not written and distributed by Microsoft, and can use only our existing licenses.<p>- The end users will not have full administrative control over their workstations. They might not be able to install a Java VM, Flash, Silverlight, or even a browser other than the version of IE that came with their OS.<p>This sort of environment is depressingly common in the government contracting sector. When your choices are WPF, WinForms, ASP.NET, Excel macros, or Access database, the first option seems pretty attractive. And this is especially relevant when the documentation from Microsoft promotes a model-view-viewmodel design pattern for WPF applications. That's a great way to get people who haven't read a single paragraph about best practices since graduation to step boldly into a new decade, even if it is not the one the rest of us currently live in.
I've had limited exposure to WPF, but I found it absolutely delightful. When you work with web development for so long, working on a desktop app feels very refreshing. The toolkit lets you focus (choice is hard); data binding is awesome; components are all readily available; there's rich IDE integration which mostly just works; you can easily offload almost everything from the backend; and with some good sense, you can drag & drop yourself to a reasonably good looking and usable interface in record time.
WPF died to me because of its complexity. I absolutely hated my last job doing development in that environment.<p>The complexity of the design was overwhelming and yet pointless. Architected to space it was. Take a look at the signature and inheritance diagram for the "Rectangle" class.<p><a href="http://msdn.microsoft.com/library/system.windows.shapes.rectangle(v=vs.110).aspx" rel="nofollow">http://msdn.microsoft.com/library/system.windows.shapes.rect...</a><p>How can they possibly extend upon that without making it uglier!? Just leave it in maintenance mode like with all the other failed MS GUI frameworks.
I've been doing Windows development for over a decade now. WPF was too different from WebForms (or less often, WinForms) to get most of the other developers on every team I've worked on to agree to switch to it. I wish we had switched way back when, because it is a much better design than (Web|Win)Forms.<p>That said, now that I'm on my own, I'm not switching to it. The legacy windows-only apps I support I'm sticking to WinForms, because I don't want to spend effort on learning yet another Microsoft ecosystem API. I'm actively getting out of MS-only work now.<p>Unfortunately, there are no UI toolkits that I would call "good". They all have some weird idiosyncrasy to them. It's like they all start out with a great idea, and then beef it in the face halfway through completing the full set of controls that would be useful to most people. It necessitates 3rd party control libraries of vastly variable quality, and makes it extremely difficult to tell clients "yes, we can do that, and it will be done by XYZ date".<p>So, lacking a better alternative, I'm going all-in on HTML5. It's the closest to "ideal" of what I want for a UI toolkit. I've about decided that I really, really don't want my UI to be anywhere near my application layer. A node-webkit-style deal might be bothersome to some people, but for my ideals, it's exactly how I want to arrange my applications.<p>I'd just like it very much if Node weren't my only readily available option. I like Node for small things, and I use it in a few projects, but there are some other projects where I'd really prefer to be writing the backend in C#, or C, or anything with a wide variety of libraries that aren't mostly just a weekend project for a CS grad somewhere like half of everything on NPM often appears to be.
WPF is another victim in ever changing technological landscape in Microsoft. Who uses or even remembers these days ATL/WTL, MFC, OLE DB, ADO, DAO, ODBC etc. etc.?
WPF is only dead for those that cannot think out of the box.<p>What matters is XAML and data binding and it is pretty much alive.<p>Just because the XAML and .NET classes used by WPF are a little different than the XAML and .NET classes from Silverlight or XAML and .NET classes from WinRT, the concepts are always the same ones.
I thought this pretty apparent a few years ago? Has everyone still been on the bandwagon and still developing in WPF heavily? I sure Microsoft is not going to kill it but it's not the active area of focus with RT. It's unfortunate. Friends that develop components have had to go from VB6 (native ActiveX/OLE C++ components) to WinForms to WPF to Silverlight (then back to WPF) and now RT. No one UI system to rule them all. Always uncertainty that it will change. Hell it changed a lot from CE 6.5 to WinMo 7 to WinMo 8.<p>On Mac we had classic (carbon) and then AppKit (which is arguably the same UI toolkit since the 90s on NextStep but still doing ok.. although feeling a little dated compared to UIKit).<p>Linux is a cluster of UI systems but at least X is stable.
I felt a similar betrayal that this author felt when Adobe started to drop support for Flash, stopping any development. Their claim of supporting every device with AIR went south not by dropping AIR support (which happened when they stopped Linux support), but by not developing the Flash platform as new devices and OSes poured into the markets.
I have since successfully moved on, but I did feel weary for more than a year, unsure where I was heading.<p>Consider this a mistake, and learn from it: don't depend on any vendor's altruism, always look to diversify your knowledge and options, avoid vendor lock-in at all costs. I believe Apple will be a much bigger drama when this happens.
It will be interesting to see if the editor in Visual Studio is re-written again (it has been WPF based since VS 2012). If a hint of that comes out, then I think we can safely declare WPF as dead.
Personal plug here: I've been tinkering with writing a GUI toolkit along the lines of WPF here: <a href="https://github.com/grokys/Perspex/" rel="nofollow">https://github.com/grokys/Perspex/</a>. It's obviously very early days and this is as much for my curiosity as to how things could be done differently as setting out to replace WPF, but it may interest some of you...
I'm planning on developing a collaborative helpdesk application for my small team (perhaps 30 users), having only previous experience in standard HTML/CSS/JS/PHP/SQL development.<p>I was thinking of going the web application route but I get the sense that a Windows executable is the way to go here, with its faster/more responsive interface. Major features needed: Embed and modify web pages in tabs (recreate a web browser), social "ticker" or feed, lots of cross-connections between different types of content (KB articles and tickets, for instance).<p>Should I go with a WPF application? I would have to teach myself XAML and C#. It would be limited in scope so that's good but it could still take forever.<p>Make a browser plugin in HTML/CSS/JS?<p>Make a full page Angular app?<p>In all these cases I'm going to have to learn something new, learning about Windows development may help me get ahead at my company more than other technologies, but if this project takes too long then it won't be worth it.<p>Any thoughts?
We make a software for licensing WPF applications, <a href="http://www.licensespot.com" rel="nofollow">http://www.licensespot.com</a>, and it's been growing pretty steady in the last few months so I guess there are still a lot of people developing and selling apps in WPF.<p>It just works. Some niche markets still prefer to use desktop applications.
If I was writing line of business software these days, I'd either go the web route and use JavaScript and HTML 5, or if it was something that preferred to live on the desktop, I'd use Qt.<p>Now, if you've only heard a little bit about Qt, you might be tempted to think you only need it if you need cross-platform, but in my experience it's actually better than any of the Microsoft frameworks even purely on Windows. (A simple test: write a Hello World program in Winforms, WPF and Qt, then try doing some simple drag operations with the mouse, moving the window around, resizing it. Last I tried, Qt was the only one that updated the window correctly, without flicker. This remained true even after I tried the recommended solutions in Winforms and WPF to reduce flicker.)<p>The fact that Qt gives you the option of going cross-platform if you ever need it in the future is just a nice bonus.
There is another question beyond WPF being dead or not.<p>Is there any single UI framework that a dev can invest in for Microsoft's various platforms and have confidence that they won't be moving to some other UI framework in 12 months?<p>They seem to be in disarray moving forward in this area.
As a developer for my company's internal LoB tools, I really enjoy WPF more than Winforms. I feel very empowered and, as a Microsoft shop, it seems to be really great for meeting a specific aesthetic and function for my users.<p>Could I do it in a web app? Probably. But it would take a lot more work for me and I'd be battling compatibility with IE7 (yes, we're still on IE7) as the corporate web minimum spec.<p>WinRT felt half-baked when I used it about a year and a half ago. Furthermore, I doubt Win8 is on the docket for quite some time.<p>WPF hasn't been the 'cool thing' for quite some time (ever?), but both I and my users seem to really enjoy what it's doing for us. And that's good enough.
I was told 3 or 4 years ago by a Microsoft MPV that WPF was effectively in maintenance mode with only a single guy working on it.<p>A shame, because it's probably the best UI framework I've used. I liked it much better than HTML.
I am a Microsoft fan but my thinking recently is like this: why WPF => why Windows => why Microsoft? If crappy HTML5 and JS are their agenda, then what's the point sticking to their ecosystem?
Same topic. Different Author.
<a href="http://greglevenhagen.com/is-wpf-dead-no/" rel="nofollow">http://greglevenhagen.com/is-wpf-dead-no/</a>
You can get quite far with the simple equation XAML + Control Library = WPF = Silverlight = Windows Phone UI = ... some of the runtimes are more powerful, some are less powerful, but they are really similar to develop with. I can see runtimes come and go but the way you build UIs on top of them does not look like going away soon. And - at least to me - this is a good thing, it is a great way to build UIs.
I think the best thing that Microsoft could do for developers right now is to backport a reasonable subset of WinRT to Windows 7 and provide it as a redistributable, even if we have to pay for it. I'd suggest backporting the XAML-based UII toolkit and at least some of the other APIs, but not the app container or store-based distribution.
WPF is not dead. It is mature as Winforms is.<p>Microsofts now is more open to the open source community. That does not mean that 'old' mature frameworks are dead. It's all about choice.
A lot of the criticism I've heard stems around the steep XAML learning curve. OTOH I've only done WinForms and ASP.NET stuff, so I haven't had first hand experience.