|
So I have to write a new extension for VS, which means I have to deal with WPF... DataGrid in this case...
Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
|
|
|
|
|
I know what you mean ... it's like they had a good idea but it never really got finished. With a good intelligent design UI it could have been so good. As it is it's too clumsy and just feels unfinished to develop in. Pity.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: just feels unfinished to develop in
You'll have similar feelings about UWP. Not a surprise since developing in WPF and UWP is so similar.
|
|
|
|
|
Agreed. The framework incorporates some really great ideas and then falls flat in the implementation.
My biggest complaint (vs WinForm) is that the design UI completely sucks by comparison. In VS, with WinForm, everything is drag-and-drop / point-and-click. With WPF, I need to constantly resort to editing the XML. There is no reason it needs to be this way. They really need to either get a better UI team or give the team they already have time to fix it.
The other problem is the (effective) lack of immediate-mode graphics. I understand that for line-of-business apps this makes perfect sense. However, they should support a fall-back for graphic intensive applications. Try drawing and re-drawing a few thousand lines. Performance is fine in WinForm, but its frustratingly slow in WPF...even when you take advantage of all the WPF performance tweaks.
To solve this performance issue, we're left playing with 3rd party work-arounds...using writeable bitmaps. They work great. This means there is absolutely no reason, other than arrogance, that MS can't incorporate some of these concepts into WPF...in a better supported/more seamless fashion.
Also, provide better support for WinForm-style docking. Yes, I understand the other layouts are far more flexible and worth learning. I took the time. I still find them less intuitive. So, why punish WinForm developers making the transition? Keep the cool new layouts and add better support for docking layouts as well.
As it stands now, for me, WPF is an interesting toy for occasional play. I use it when I want some really flexible layouts...in line-of-business apps. Or, when a customer requests it. Or, when I play with UWP. Otherwise, I still use WinForm.
Its a real shame. I'd prefer to move full time to WPF, to ease the wear-and-tear switching back and forth causes on my poor brain. Come on MS...finish what you started!
|
|
|
|
|
Eric Lynch wrote: I need to constantly resort to editing the XML XAML - I was full time in WPF and have never used drag and drop to get controls on a view I had forgotten how easy winforms UI layout is. Thankfully I have never been into graphics, purely LOB work and I still run up against performance issues.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I've never used the UI designer, and do everything in XAML. Even Blend still scares the hell out of me to this day, and I'm a proficient WPF/XAML developer.
Writing XAML is no different to a web developer writing HTML - nobody uses drag'n'drop interfaces on that platform. Admittedly it's easier to see your changes by just pressing F5 in the open browser window, rather than have to run the app...
|
|
|
|
|
I haven't done anything in WPF for a while so I'm not sure if it works the same there, but while starting my 1st UWP app a few months ago I discovered that I could live edit the xaml while the app was running and have UI changes show up immediately in the app. On the plus side, no need for that pesky Alt-F-S, Alt-Tab, F5 to see changes; on the minus at times VS would interrupt the live editing to complain that a half typed bit of markup was generating a parse error.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
I'm currently working on a graphics intensive application as well. Redrawing using WPF took about 7 seconds. We're currently using a SharpDX based renderer instead and when we need to update ALL the primitives and redraw it takes about 25ms.
WPF is based on Dx9(and needs to be updated to 12 tbh) so it shouldn't need to be this freaking slow!
|
|
|
|
|
Yeah, there is no reason it should be soooo painfully slow. Its significantly worse than any other presentation framework I've used. The excuse that its retained-mode vs immediate-mode doesn't really cut it.
It does not seem to be a DX issue. I've written code directly accessing older versions of DX...without similar performance problems. Somebody at MS needs to meter the WPF code and find its major malfunction.
Instead, all you see on the boards are apologists telling everyone they're simply "doing it wrong". This advice isn't entirely incorrect...people really do some dumb stuff.
However, this advice doesn't explain away all of WPF's performance problems. They're very real...and not going away until someone at MS fixes them. Regrettably, there seems to be absolutely zero movement on that front.
|
|
|
|
|
"Quote: The framework incorporates some really great ideas and then falls flat in the implementation.
I agree, to some extent. WPF uses the GPU instead of the CPU as WinForms does so rendering should be faster. But, in my case, I started with WinForms and before that MFC. Drag and dropping the controls was much easier and I spent less time on coding my window and more time on my application. There is a lot techniques you can do in WPF that you cannot do in WinForms to make a flashy presentation with great graphics, but WinForms is good for basic applications. I have found that I can get flashy usable controls from 3rd parties like Infragistics.
To me, drag and drop is much easier whereas, in the project I'm currently working on, WPF is the workhorse for us, since we keep adding more and more to the controls and sub-controls. Xaml allows us to finely control what we show. If we were to do it programmatically in C#, then it would be similar to QT.
|
|
|
|
|
Is it possible to tie HTML and CSS to compiled C# (instead of JavaScript)? To me, it seems that HTML is much more understandable that Xaml.
|
|
|
|
|
No!
C# does not run on your browser, only JS does.
C# requires the .NET framework, which is pretty huge (and doesn't work on iOS for example).
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
We tried it, but none of our developers really liked it, also judging from the lack of posts on CodeProject it does not seem very popular ...
|
|
|
|
|
It is actually very unpopular... My problem that extensions are using it by default, and the only other option is moving to WinForms... And even that is too easy...
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
|
|
|
|
|
I liked WPF when I used to work with it - you can make some really nice looking apps.
|
|
|
|
|
Granted - I saw some very nice looking ones...
But! If you put a DataGrid on a form and bind it to some data, plus add some buttons to each row (template)... It looks awful...
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
|
|
|
|
|
hehe "it looks aweful" ?
I'm sure you made it so.
|
|
|
|
|
Kornfeld Eliyahu Peter wrote: plus add some buttons to each row Ah thinking like a web developer, I cannot remember when I last had buttons on each row. My VM knows precisely what row is selected so all I need is the action directive, also double click is your friend.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Yes, the default look isn't very nice - it takes a bit of effort to style the app, but webpages are like that as well. You can get WPF themes or third part controls that look nice out of the box.
|
|
|
|
|
Jacquers wrote: you can make some really nice looking apps.
...if you're willing to allocate the resources to do it. Otherwise WPF apps can be made to look every bit as ugly as WinForms-based apps.
If your focus is not on the UI, then WPF adds a lot of cost (in terms of learning overhead) with very little return, IMO.
|
|
|
|
|
Yes, the default look isn't very nice - it takes a bit of effort to style the app, but webpages are like that as well. You can get WPF themes or third part controls that look nice out of the box.
|
|
|
|
|
Kornfeld Eliyahu Peter wrote: Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
Because they decided instead to focus on an inane XML syntax instead that requires, among other things, custom instantiators instead of a simple parser and is almost (if not completely) impossible to express and correctly render in a designer, requiring you to hand code the XML, which when I wrote my articles on MyXaml, everyone screeched about how nobody would want to hand-code XML to design a UI, but when Microsoft put out WPF, that's what everyone was forced to do and even seemed to enjoy doing. Um.. end rant?
Oh, and because Microsoft likes to leave the professional UI design to third parties.
Latest Article - A Concise Overview of Threads
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
Marc Clifton wrote: professional UI design
Don't go that far...
I would like - for start - that vertical alignment in DataGrid of the content would be logical (bottom for all RTL and LTR languages)...
It is not that professional level request...
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
|
|
|
|
|
I am an old fossil — when I started there was no such thing as a graphics interface. Input was either punched cards, magnetic tape or an IBM Selectric or ASR 33 console. I definitely prefer XAML to drag-and-drop. It is much easier to write parameters to modify a control than to have to open a property window. Extending a WinForms property window? Not trivial. Adding a parameter to an XAML control, by way of contrast, is almost effortless!
I LIKE WPF!! I just wish it had better error detection at coding time.
__________________
Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now.
© 2009, Rex Hammock
|
|
|
|
|
Why do you need to write an extension in the first place? . There are third party grid components like xceed that can make life easier...anyway..
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|