WPF Rant
-
I know I'm late to this game, but ..... WPF WTF? X| An impenetrable object model... X| A million-and-one different ways to do everything... X| Brings all the horrors of CSS to application development... X| I'm waiting to see some advantage... :mad: Thank-you! :)
I am always interested when people make the argument that learning something new will make you more productive, efficient, or valuable than using old technology without any qualification on the type of project being developed. We have been developing a project in winform for seven years. We looked at doing the next version of the project in WPF and after months of development concluded that there would be a negative ROI based on the type of project we were developing. Maybe XAML / WPF is valuable on some projects, but not ours! So quit making claims without qualifying the type of development. I would really like to have discussions on what type of development projects WPF/XAML work BEST. And what changes could be made to WPF to make it better for more types of projects.
-
I do LOB in Silverloght (WPFs little brother for the web) and have to now look at MVC with all it's attendant tools (CSS, javascript, knockout, bootstrap, kendo etc). Makes WPF seem simple. Mind you I consider graphics development the most difficult and would not even attempt what you are learning on, give me business data any day!
Never underestimate the power of human stupidity RAH
Agreed. WPF is a lot simpler when compared to doing something equivalent for the web. There are too many frameworks and too many moving parts with web development, I find it a pain. Makes me appreciate what Microsoft has done to streamline desktop development.
-
The results available with WPF can be great. The way to achieve those results is a pain in the backside. When someone develops a GUI tool to effectively edit XAML it will be a vast improvement. Personally I don't think that is now ever going to happen and Xaml will eventually die.
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
-
I just started, too. So far, the only thing I like about it is that I can have a rounded-corner chromeless window without using third-party code. Whee.
-
I am always interested when people make the argument that learning something new will make you more productive, efficient, or valuable than using old technology without any qualification on the type of project being developed. We have been developing a project in winform for seven years. We looked at doing the next version of the project in WPF and after months of development concluded that there would be a negative ROI based on the type of project we were developing. Maybe XAML / WPF is valuable on some projects, but not ours! So quit making claims without qualifying the type of development. I would really like to have discussions on what type of development projects WPF/XAML work BEST. And what changes could be made to WPF to make it better for more types of projects.
I suppose I would like to know what it is about your winform application that made WPF not a good fit. We personally don't have any WPF in the shop, but have two Silverlight applications. The primary one has several hundred views. Between the Silverlight UI layer and all supporting services, etc, there's roughly 1.2 million lines of code. Personally I can't imagine writing it in HTML5/CSS/javascript. The loss of the power of XAML and the loss of strong typing all the UI code would make me cringe. Yes, XAML is a little more verbose than HTML, but crazy more powerful. Templates, binding, converters, etc. It's a markup language designed for building UIs, not a markup language for hyperlinking text. Whoever that it was a good idea to continue to dress up the pigs that are HTML and JavaScript have done our profession a huge disservice. Someone should have come along years ago and said, "Hey, in theory all of this web development stuff is great, but we need to start with a clean slate" and made the languages that we needed. Personally, I would love to see C# native development cross platform, and XAML as a choice for UI. As for WinForms, I've done my share. But, it seemed like significantly more work in WinForms to adopt patterns built for testing -- MVVM or MVC, dependency injection, etc. I did one WinForm app using PRISM back in the day, but it's no where near as elegant as what we could do in Silverlight.
-
Technically assembler can do everything you need as well. Are you still using that? The power of xaml and therefore wpf, is that it is implemented in an incredibly consistent and logical fashion. Meaning that you can often predict where to do or find things in the xaml code even if you don't know what it is yet. I primarily contrast that to html which is the ultimate design by committee end product. There is a learning curve both for xaml and mvvm, but once over that curve you will be amazed at just how productive you can be.
I am still using assembly language as a matter of fact, though more for fun than for actual applications, though it can be useful. I'm sure that WPF offers rewards, but I have too much on my plate at the moment to take up WPF. It is not high on my list of priorities. Isn't that the problem? Too many technologies to choose from?
-
I suppose I would like to know what it is about your winform application that made WPF not a good fit. We personally don't have any WPF in the shop, but have two Silverlight applications. The primary one has several hundred views. Between the Silverlight UI layer and all supporting services, etc, there's roughly 1.2 million lines of code. Personally I can't imagine writing it in HTML5/CSS/javascript. The loss of the power of XAML and the loss of strong typing all the UI code would make me cringe. Yes, XAML is a little more verbose than HTML, but crazy more powerful. Templates, binding, converters, etc. It's a markup language designed for building UIs, not a markup language for hyperlinking text. Whoever that it was a good idea to continue to dress up the pigs that are HTML and JavaScript have done our profession a huge disservice. Someone should have come along years ago and said, "Hey, in theory all of this web development stuff is great, but we need to start with a clean slate" and made the languages that we needed. Personally, I would love to see C# native development cross platform, and XAML as a choice for UI. As for WinForms, I've done my share. But, it seemed like significantly more work in WinForms to adopt patterns built for testing -- MVVM or MVC, dependency injection, etc. I did one WinForm app using PRISM back in the day, but it's no where near as elegant as what we could do in Silverlight.
I have similar feelings - Web technology ought to be more consistent and more powerful than JavaScript alone (not to say anything isn't possible in JavaScript, but thinking about effort invested). However, JavaScript is ideal for so many Web applications that don't require massive data processing. It is good for hobbyists and small businesses (like mine), as it is fairly easy, with HTML 5, to get cool things done. C# could never comfortably replace JavaScript in these functions as it is simply too heavy a tool to use for many purposes, even if it was truly cross-platform (and I wish it was). I have space on two servers, one using SQL and PHP, the other using .NET technology, but I find it easier to get most things done with the former. However, I anticipate that the .NET server would be more useful for processing large amounts of data or for running code which really requires more than a few thousand lines of script. Hence, I have plans to use it in the near future, initially for one specific project I have in mind. The same goes with all software - each language and framework has advantages in certain applications, which is why I have quite a wide spread of skills in different languages, but that makes me more a jack of all trades, than a master of any one (but that's OK because I am a hobbyist and so can afford to be a generalist).
-
I am still using assembly language as a matter of fact, though more for fun than for actual applications, though it can be useful. I'm sure that WPF offers rewards, but I have too much on my plate at the moment to take up WPF. It is not high on my list of priorities. Isn't that the problem? Too many technologies to choose from?
lol cool! I haven't used assembler since college days. The analogy I was trying to draw was not that nobody uses assembler; rather that assembler can do everything, so why bother programming with anything else? Its the same logic you used to invalidate wpf. (To your very valid concerns/points on time) I guess when I am looking at a technology I prioritize gains in productivity and maintainability ahead of technical capabilities. I suppose largely because most platforms/techs these days have very similar technical capabilities... Think java/web/winform/wpf/Silverlight/winrt/etc. when you consider what is technically possible there is not *that* big a difference. If time is that critical keep in mind you do not have to go all in right away. It is absolutely possible to ease into wpf using the same coding workflow you would do in winforms, (drag and drop designer, double click to add handlers, etc.). Its just that MVVM pays huge dividends via time saved during refactoring down the road, its makes it hard to roll a UI in xaml and not just go ahead with MVVM as well.
-
I suppose I would like to know what it is about your winform application that made WPF not a good fit. We personally don't have any WPF in the shop, but have two Silverlight applications. The primary one has several hundred views. Between the Silverlight UI layer and all supporting services, etc, there's roughly 1.2 million lines of code. Personally I can't imagine writing it in HTML5/CSS/javascript. The loss of the power of XAML and the loss of strong typing all the UI code would make me cringe. Yes, XAML is a little more verbose than HTML, but crazy more powerful. Templates, binding, converters, etc. It's a markup language designed for building UIs, not a markup language for hyperlinking text. Whoever that it was a good idea to continue to dress up the pigs that are HTML and JavaScript have done our profession a huge disservice. Someone should have come along years ago and said, "Hey, in theory all of this web development stuff is great, but we need to start with a clean slate" and made the languages that we needed. Personally, I would love to see C# native development cross platform, and XAML as a choice for UI. As for WinForms, I've done my share. But, it seemed like significantly more work in WinForms to adopt patterns built for testing -- MVVM or MVC, dependency injection, etc. I did one WinForm app using PRISM back in the day, but it's no where near as elegant as what we could do in Silverlight.
I can vouch for this. ;) MM
-
lol cool! I haven't used assembler since college days. The analogy I was trying to draw was not that nobody uses assembler; rather that assembler can do everything, so why bother programming with anything else? Its the same logic you used to invalidate wpf. (To your very valid concerns/points on time) I guess when I am looking at a technology I prioritize gains in productivity and maintainability ahead of technical capabilities. I suppose largely because most platforms/techs these days have very similar technical capabilities... Think java/web/winform/wpf/Silverlight/winrt/etc. when you consider what is technically possible there is not *that* big a difference. If time is that critical keep in mind you do not have to go all in right away. It is absolutely possible to ease into wpf using the same coding workflow you would do in winforms, (drag and drop designer, double click to add handlers, etc.). Its just that MVVM pays huge dividends via time saved during refactoring down the road, its makes it hard to roll a UI in xaml and not just go ahead with MVVM as well.
Well, I sat down and tried a WPF tutorial. All seemed very simple, very much like Winforms and I was beginning to become optimistic. However, when I run (debug) the application all I get is a black page, a crashed browser and no error message. For some reason I was not surprised as it brought back painful memories of problems I have had with other MS technologies.