|
I moved over to WPF a number of years ago simply because it had been touted as the technology to replace WinForms.
To me WPF biggest advantage is that you can program it in similar style to that of an ASP.NET WebForms application. However, this is about its only real big advantage.
WPF documentation is notoriously fragmented, and in some cases just downright bad.
The complexity in developing a nice interface with WPF is terrible. And like ASP.NET MVC, forces developers to take on more complexity than is actually needed.
Having to rework templates for a single control simply to have it work in a manner consistent with how you may want it to work with your application is beyond ridiculous. And the time-worn excuse that WPF is designed to be highly flexible as a result, is pathetic. On average, how many developers really require such flexibility. I have never seen a need for it in my career.
The problem is that Microsoft is still trying to set trends instead of maintaining mature platforms that have made it very easy for developers to build and implement applications. As a result, you have gotten such implementations such as ASP.NET MVC, WPF (with all the complexity), and LocalDB (supposedly to replace SQL Server CE).
Though I believe that WPF would have seen many more developers gravitate towards it had Microsoft streamlined its interface design with less complexity, they don't seem to be interested in refining this development environment. The form designer is still terrible in that you cannot accurately gauge where anything will actually show up as with the WinForms designer.
My complaint about a lot of this can be encapsulated around LocalDB. Though an excellent refinement for SQL Server Express it can hardly be seen as a real replacement for SQL Server CE, probably the finest desktop database ever produced to date.
SQL Server CE served a very specific purpose for those developers concentrating on the desktop. And as of a recent Microsoft survey (I believe), 46% of all development, despite all the hype is still for the desktop. With a few refinements, SQL Server CE would have been a snap to deploy and would have remained the desktop database of choice for a long time.
Instead, with the new directions of Microsoft under Nadella, who like all technology idiots with a "vision", he is enamored with cloud computing, which was a major factor in SQL Server CE's demise. Instead of offering both, SQL Server CE is simply removed from the product lineup. At the very least it could have been Open Sourced to a third party.
True, LocalDB can be used with desktop applications but it is a far larger implementation. To avoid user intervention during an installation process one has to set up their installation with a silent install. If you want to control any of the features of LocalDB from your application (beyond data access) you have to use a "Process.Start" method to run the "SqlLocalDB" utility to create instances, databases and the whatnot.
The idea of on-demand servicing, where LocaldDB remains dormant until a call is made for a request is rather ridiculous, considering that it will then only stay active for several minutes at a time.
With this milieu, Microsoft now claims this is a great database for developers and desktop applications. I would like to know how, when SQL Server Express is a snap to set up and SQL Server CE avoided a lot of the LocalDB issues.
Thinking like this is why WPF is a great way to program but a painful implementation to deal with...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Steve Naidamast wrote: Having to rework templates for a single control simply to have it work in a manner consistent with how you may want it to work with your application is beyond ridiculous.
Steve Naidamast wrote: WPF documentation is notoriously fragmented, and in some cases just downright bad.
Steve Naidamast wrote: The form designer is still terrible in that you cannot accurately gauge where anything will actually show up as with the WinForms designer.
These are all the exact things I was thinking as I wrote my original post.
The designer where you have to see XAML and Design View takes up so much space, controls are often invisible --- no borders or anything show up.
Documentation is extremely fragmented!!
All great points and reasons that XAML dev never really took off like it should've.
And, yes, desktop development is still a huge part of ongoing development in the Enterprise (where most money is probably dedicated to development too) and yet everyone is so (supposedly) focused on web apps, cloud, etc.
It doesn't add up.
Thanks for a great post.
|
|
|
|
|
Steve Naidamast wrote:
The form designer is still terrible in that you cannot accurately gauge where anything will actually show up as with the WinForms designer.
I admit the form designer in WPF sucks that way. I happen to love setting up grids in xaml to get everything precisely where I want it without having to drag and drop. I may be weird...
|
|
|
|
|
Feature for feature, WPF has more to offer than Windows Forms; except maybe for the "Open / save", etc. common dialogs.
You fail to find an answer to you "obvious" question, and therefor discount the entire platform.
Funny thing is, I'm currently looking at a panel which has multiple ListViews with GridViews inside a WrapPanel, and ALL the ListViews are showing the "items that lost focus" as having a "different hilite" than the ones that were not selected. Looking at other implementations, they ALL show the item that "lost focus".
And I did "nothing" to activate that functionality. Maybe that's why there are no "articles".
Default behaviour out-of-the-box (if you don't override it; like one of the "system colors").
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Yeah, a lot of developers forget the wonderful experience that is writing a <control value="Bind"> and then everything just works with no edge cases, allowing you to expand on the complex stuff. That's how you get sh*t done.
|
|
|
|
|
As a caveat, what works for me does not necessarily work for others. That said...
For quick and dirty little utilities, I still use WinForms. But not for projects beyond personal use and little complexity. WinForms can do the large and complex, but that is not my preference.
I use UWP as part of Xamarin.Forms development. While the Android and iOS projects are targeted to phones and tablets, the UWP project extends my program to Windows tablets, laptop, and desktops.
I suspect as I get more proficient with XAML, and hopefully MS/Xamarin get over their cranial-anal inversion on a XAML designer that works with Xamarin.Forms projects, WinForms will no longer be my choice for the little one-off utility programs I do.
|
|
|
|
|
I just wrote two utilities using MFC as dialog apps. The UI work took almost no time, which let me concentrate on the guts of the programs. I debated using WinForms, but it wouldn't have given me the control I needed over the guts, plus everything else in the project is in C++.
(I also debated using Qt, but I'm rusty in it and couldn't justify the deployment pains associated with Qt.)
I've thought of rewriting the simpler of the two utilities to be a UWP app, on my own time just for learning sake, but it's hard to get the energy for that since my love is still embedded programming in C++.
|
|
|
|
|
Great post and it illuminates another topic about this whole UI (WinForms, XAML, etc) thing.
For many years, we developers could be completely ignorant about graphic design -- and it was great.
We could take the basic controls and drop them on a form and we got this standard look that worked.
Sure, there were tweaks we could do but basically there was a nice standard look created by this.
We never looked at the designer files -- okay, rarely. We just let windows and controls be windows and controls.
Then, with WPF, XAML all of a sudden we have another layer of technology to think about very specifically.
It's really all just more work.
Sure, people would say you get more control over everything, but it's also more work.
And it's work related to graphical elements. We aren't graphic designers or HFE (Human Factors engineers), we are devs!!!
|
|
|
|
|
Thank you posting this! Micro$oft built its reputation on making it easy for developers to get competent in its products (e.g., Visual Basic/C++, ATL/COM, and then later WinForms C#), but then lost it way as it kept releasing the newest k3wl stuff, only to kill it a year later. This type of churn does not help anyone that is not writing books about this stuff. After a while, folks get burned out on devoting the time to learn the new stuff, only to have it go obsolete before being able to make any coins from it. Micro$oft, like Apple, had the heft to be able to be "market leader" in a standard, but it blew it big time, making folks like Yours Truly just want to throw in the towel and retire early.
|
|
|
|
|
|
|
|
|
And I wish Randal and his wife many more happy years together. They have been through a lot.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
|
...it made me laugh.[^]
So I thought I'd share.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
Could Central Banks Dump Gold In Favor Of Bitcoin? "Volatile"
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
No they will not. It goes against their job description. Bitcoin will certainly have unforeseen consequences, but this wont be one of them.
My two bit-cents.
... such stuff as dreams are made on
|
|
|
|
|
I am seeing Bitcoin as a PayPal or AliPay competitor rather than a gold replacement.
|
|
|
|
|
Nothing like those two. Bit coin is an alternative currency, not a payment method.
And it is heading for disaster, on a massive scale.
|
|
|
|
|
If that is the case, then why are these companies accepting Bitcoin payment: Virgin Galactic, Overstock.com, TigerDirect, Dish Network, Expedia, Newegg, Directnic, Microsoft, Zynga, Starbucks, and Subway.
|
|
|
|
|
Nice job taking the first google result that showed up but I actually went to the microsoft store sight, put a laptop in the cart, went to checkout and they had 2 selections as form of payment. Visa and Paypal. Let me know how that 15,000 dollar footlong tastes. Most companies don't take it anymore because of the volatility of the bitcoin/us dollar exchange. I believe overstock might still take it. Expedia says if you don't book in 10 minutes they don't guarantee price. Sounds convenient to me. With 1,300+ there may be a couple winners, but more losers. Just like the dot com bubble.
|
|
|
|
|
If what is the case, Bitcoin NOT being like paypal (a way of paying using a mainstream currency) or bitcoin being about to implode?
Believe me, it is about to implode, big style. Ever heard of the tulip bulb bubble? Bitcoin just got to the frenzied public phase. It has months to last.
|
|
|
|
|
Munchies_Matt wrote: months Let me bookmark that.
I do not disagree that it is inflated but predictions of an immenent crash were made years and many magnitudes ago.
It "crashed 40%" in September.
And quadrupled after that, so exactly how do we define crash?
... such stuff as dreams are made on
|
|
|
|
|