Building a perfect wpf developer workstation
-
I haven't started playing with WPF yet, so my observations may be a bit uneducated. However, just from a glance, this appears to be aimed primarily at developing client apps rather than the dreaded browser based "application". If that's truly the case, I hope it catches on like wildfire. What I find is that these days, out on the streets, there just ain't much work for VC++ folks. That's okay, C# is fun too, but the overwhelming majority of jobs are for web development using ASP.NET rather than client Winforms apps. Because I find web development extremely limiting in comparison with native development, this is obviously less than inspiring to me. So, if WPF will renew interest in non browser development, I say fire it up.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Christopher Duncan wrote:
However, just from a glance, this appears to be aimed primarily at developing client apps rather than the dreaded browser based "application".
Not so. It's quite easy to write web apps using WPF. Josh Smith's even running a competition through his blog. Some of the entries are here :- http://joshsmithonwpf.wordpress.com/xbap-submissions/[^]
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*) -
Christopher Duncan wrote:
developing client apps rather than the dreaded browser based "application".
Actually from my early and not super educated experience with it the one thing I'm really excited about is the ability to build an app once that can be run as a windows client app or through a web browser without changing any code. In theory it could put an end to that debate. The type of web apps I typically need to write are alternative UI's for a winform app and are really heavy so I don't tend to need to do any light asp.net stuff and if this all works as it appears to then it's right up my alley.
John Cardinal wrote:
ability to build an app once that can be run as a windows client app or through a web browser without changing any code. In theory it could put an end to that debate.
That does sound interesting, but I don't see how it could escape the trap that cross platform libraries have always encountered: the lowest common denominator. Consequently, it sounds like this scenario would essentially amount to writing a web app (the lowest common denominator) and then spitting out an extremely limited client app. Yuck. On the other hand, if I could write an extremely cool client app using all the horsepower available to me (which is what I miss about web development) and then click a "by the way, generate the best web stuff you're capable of based on this" button and get the web app for free, well, that might be worthwhile. Got any idea which of these two scenarios approaches reality?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
-
Surely you're joking. Zero items on that list are required to write wpf applications on vista, it's all just tools and components to make life easier. If someone had posted the same list for MFC development back in the day it would have taken a book to list everything that you would need as a tool or add on to accomplish what you can with wpf and vista out of the box. Ahh never mind, your just being a luddite for self gratification and you know it! ;)
John Cardinal wrote:
Zero items on that list are required to write wpf applications on vista, it's all just tools and components to make life easier.
To exaggerate: "You don't need Visual Studio for that, you can write this in Assembler!" (and some people really did) I learnt, and did, MFC with VC++ 5 out of the box and MSDN. The list is scary for one reason: How many developers does it take to write the UI for an mid-size windows application? One? A half? zero point one? Or, to put it another way: In one year, how many developers will be available that are able to provide a commercially viable UI (i.e. doesn't fall over when it encounters a Spanish Windows or a non-standard Installation directory), and still have the skills and time to do something else? And how long will their skills be Industry Standard? Don't get me wrong: WPF looks cool. But turning book pages and slightly rotated note sheets won't get me one customer more. Still, people expect a "standard windows application", and if WPF raises the bar to high, we might be forced to be luddites for the sake of a product.
Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify!|Fold With Us! -
Christopher Duncan wrote:
Because I find web development extremely limiting in comparison with native development, this is obviously less than inspiring to me.
How so?
A native app is capable of accessing the full Windows SDK. Furthermore, if you're using C/C++, you have complete control of the box, down to twiddling bits at the hardware level. In short, there are no limits. As a developer, you have the maximum horsepower available to you. In contrast, a web browser app is constrained to the comparatively few things that HTTP is capable of handling. That's not to say that there aren't cool things about web sites - I'm typing this on one right now. However, in terms of developing software, it is without question an extremely limited environment in comparison. It's also worth mentioning that my intent is not to offer disrespect to web developers. I just find it personally frustrating to have worked for so many years with the most powerful tools available, only to find myself in an industry that now insists on working with a subset of the power that sits on my desktop. If web stuff was all I'd ever done it wouldn't be such a distraction, but it's hard going backwards.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
Christopher Duncan wrote:
However, just from a glance, this appears to be aimed primarily at developing client apps rather than the dreaded browser based "application".
Not so. It's quite easy to write web apps using WPF. Josh Smith's even running a competition through his blog. Some of the entries are here :- http://joshsmithonwpf.wordpress.com/xbap-submissions/[^]
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*)Thanks - I just went there to check some of them out. However, since I'm only running XP, I was immediately prompted to "download the .NET framework" (presumably .NET 3.0). Doesn't this kinda negate the big thing about the web? I mean, what are our Apple or Linux brethren going to do if you have to be running a Microsoft operating system to use a web page? Will Paul tear the flowers out of his hair when he finds he can't bring up a web site on his beloved Mac? :) Or perhaps I'm not understanding something fundamental here. My knowledge of the WPF stuff is really quite limited at the moment.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
John Cardinal wrote:
ability to build an app once that can be run as a windows client app or through a web browser without changing any code. In theory it could put an end to that debate.
That does sound interesting, but I don't see how it could escape the trap that cross platform libraries have always encountered: the lowest common denominator. Consequently, it sounds like this scenario would essentially amount to writing a web app (the lowest common denominator) and then spitting out an extremely limited client app. Yuck. On the other hand, if I could write an extremely cool client app using all the horsepower available to me (which is what I miss about web development) and then click a "by the way, generate the best web stuff you're capable of based on this" button and get the web app for free, well, that might be worthwhile. Got any idea which of these two scenarios approaches reality?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
From my understanding wpf is just wpf, one way you are running it within windows as full trust the other you are running it from "within" the browser but in reality you are still running it in windows just in a "sandbox" of partial trust without any installation being required. WPF/e on the other hand I know almost nothing about but it's a 3rd technology for running strictly as html / javascript for non windows client browsers and my hope is it's more like scenario two in your post, but info is so sketchy on it at the moment I'm just not looking at it in any more detail until I get through the wpf book I'm on now. For my customers they don't really care about the technology for the most part, they perceive it as being web accessible or running on their work station so despite the fact that it's essentially the same code running it's how easy it is to use from either method that they will care about. If we offer a UI that is really rich, responsive and powerful and can be accessed via web browser or in windows and is essentially the same application so no learning curve if you know one you know them both then they will more than likely be happy with that.
-
From my understanding wpf is just wpf, one way you are running it within windows as full trust the other you are running it from "within" the browser but in reality you are still running it in windows just in a "sandbox" of partial trust without any installation being required. WPF/e on the other hand I know almost nothing about but it's a 3rd technology for running strictly as html / javascript for non windows client browsers and my hope is it's more like scenario two in your post, but info is so sketchy on it at the moment I'm just not looking at it in any more detail until I get through the wpf book I'm on now. For my customers they don't really care about the technology for the most part, they perceive it as being web accessible or running on their work station so despite the fact that it's essentially the same code running it's how easy it is to use from either method that they will care about. If we offer a UI that is really rich, responsive and powerful and can be accessed via web browser or in windows and is essentially the same application so no learning curve if you know one you know them both then they will more than likely be happy with that.
John Cardinal wrote:
you are still running it in windows just in a "sandbox" of partial trust without any installation being required.
Well, this coupled with looking at the link to Josh's contest from Nish (below) starts to paint a picture. It sounds like something similar to the ActiveX paradigm where you can do a lot of cool things hosted in a web browser if you happen to be on IE running Windows. That's pretty cool if you're running on a corporate intranet as it gives you more horsepower. Doesn't sound like something you would use for a public Internet web site, though. The Apple and Linux guys wouldn't be able to access your pages.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
Yeesh, everybody's a critic. Well, i think it's a good list, and thank you for posting it. I have no use for it, but that doesn't keep me from recognizing the goodness of it. Just one question (and i apologize if it's a stupid one...): In this paragraph,
XamlPadX, Kaxaml and XamlCruncher: three enhanced alternatives to the XamlPad tool that ships in the SDK. Each have their strengths: XamlPadX has some nice add-ons and is based on the XamlPad codebase, Kaxaml is great for demos and has good tab / indent support and XamlCruncher has high-quality source code available.
Is he recommending the installation of three glorified text-editors? Only one of which supports proper indentation? :~
----
It appears that everybody is under the impression that I approve of the documentation. You probably also blame Ken Burns for supporting slavery.
--Raymond Chen on MSDN
-
John Cardinal wrote:
Zero items on that list are required to write wpf applications on vista, it's all just tools and components to make life easier.
To exaggerate: "You don't need Visual Studio for that, you can write this in Assembler!" (and some people really did) I learnt, and did, MFC with VC++ 5 out of the box and MSDN. The list is scary for one reason: How many developers does it take to write the UI for an mid-size windows application? One? A half? zero point one? Or, to put it another way: In one year, how many developers will be available that are able to provide a commercially viable UI (i.e. doesn't fall over when it encounters a Spanish Windows or a non-standard Installation directory), and still have the skills and time to do something else? And how long will their skills be Industry Standard? Don't get me wrong: WPF looks cool. But turning book pages and slightly rotated note sheets won't get me one customer more. Still, people expect a "standard windows application", and if WPF raises the bar to high, we might be forced to be luddites for the sake of a product.
Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify!|Fold With Us!peterchen wrote:
The list is scary for one reason: How many developers does it take to write the UI for an mid-size windows application? One? A half? zero point one?
I gurantee you it will take one because I've done it with MFC then winforms and from what I'm learning about wpf I'll be able to do it much more quickly with wpf. While you *could* have turning pages and rotating whatsits the real power and improvement I see is moving every last bit of the UI stuff *out* of the code and being able to do layout in a much cleaner and simpler way that results in better layouts that I currently have to write a *lot* of c# to get with winforms. To be honest the "luddite" replies I'm seeing and yours are symptomatic of not really taking the time to understand what the benefits are and how it all works, once you get into that you will see it intuitively. To be fair when Orcas is out you will again be writing wpf apps on a Vista station "out of the box". WPF has crossed the "bleeding edge" territory and is now firmly in the leading edge, something that I like to stay on top of in particular because we have a small shop and can't turn around a new app as quickly as some bigger shops. I really benefited from being on top of winforms in the early days and got a release out just on the sweet spot of .net adoption. You can't afford to be a "luddite" in this business unless you're content to be relegated to maintenance programming. People are understandably upset when they have to learn something new in any industry, but in the programming industry it's just a way of life. And I've learned and worked with 6502 assembly, 8080 assembly, cobol, C, MFC / C++ etc etc. It can suck if you take it with the wrong attitude but if you embrace it you can make a lot of money and get to play with cool new things and make a lot of customers happy.
-
John Cardinal wrote:
you are still running it in windows just in a "sandbox" of partial trust without any installation being required.
Well, this coupled with looking at the link to Josh's contest from Nish (below) starts to paint a picture. It sounds like something similar to the ActiveX paradigm where you can do a lot of cool things hosted in a web browser if you happen to be on IE running Windows. That's pretty cool if you're running on a corporate intranet as it gives you more horsepower. Doesn't sound like something you would use for a public Internet web site, though. The Apple and Linux guys wouldn't be able to access your pages.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Christopher Duncan wrote:
The Apple and Linux guys wouldn't be able to access your pages
Actually they will when MONO gets caught up and for the time being there is wpf/e which is "wpf everywhere" but I don't know enough about it yet to say how much code reuse there is with it.
-
Yeesh, everybody's a critic. Well, i think it's a good list, and thank you for posting it. I have no use for it, but that doesn't keep me from recognizing the goodness of it. Just one question (and i apologize if it's a stupid one...): In this paragraph,
XamlPadX, Kaxaml and XamlCruncher: three enhanced alternatives to the XamlPad tool that ships in the SDK. Each have their strengths: XamlPadX has some nice add-ons and is based on the XamlPad codebase, Kaxaml is great for demos and has good tab / indent support and XamlCruncher has high-quality source code available.
Is he recommending the installation of three glorified text-editors? Only one of which supports proper indentation? :~
----
It appears that everybody is under the impression that I approve of the documentation. You probably also blame Ken Burns for supporting slavery.
--Raymond Chen on MSDN
No they're not primarily editors at all, they are ways to rapidly prototype a ui or ui components or just mess around. XAML is what you can use to code the entire UI before you write a line of c# code to hook it up to something. So if you are learning it's particularly useful to not have to build a whole project in visual studio just to try out forms and buttons and layout panels etc, you just paste or type in there and then see the result immediately. No compiling or anything.
-
Christopher Duncan wrote:
The Apple and Linux guys wouldn't be able to access your pages
Actually they will when MONO gets caught up and for the time being there is wpf/e which is "wpf everywhere" but I don't know enough about it yet to say how much code reuse there is with it.
Apple & Penguins aside, I hope it catches on. Sounds like more fun than developing for HTTP.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
No they're not primarily editors at all, they are ways to rapidly prototype a ui or ui components or just mess around. XAML is what you can use to code the entire UI before you write a line of c# code to hook it up to something. So if you are learning it's particularly useful to not have to build a whole project in visual studio just to try out forms and buttons and layout panels etc, you just paste or type in there and then see the result immediately. No compiling or anything.
John Cardinal wrote:
So if you are learning it's particularly useful to not have to build a whole project in visual studio just to try out forms and buttons and layout panels etc, you just paste or type in there and then see the result immediately. No compiling or anything.
Ah, that makes more sense. To make an (admittedly sketchy) analogy to HTML, you use an actual text editor to write the code, then fire up your "browser" (XamlPad) to test it. Yeah?
----
It appears that everybody is under the impression that I approve of the documentation. You probably also blame Ken Burns for supporting slavery.
--Raymond Chen on MSDN
-
peterchen wrote:
"You just specify your UI using XML, it is very simple!"
Whoever said that was lying. I'm currently writing a WPF designer (basically a Cider clone, but hostable in non-VS applications; and one that doesn't crash every thirty seconds :-D ). WPF is both the most complicated and the most powerful UI framework I've seen. Maybe you can hide from the complexity if you only create Windows and UserControls in the designer (similar to Windows Forms), but once you write a custom control or do anything slightly non-standard, you need a to unterstand WPF well. But then again it's possible to write something like a WPF designer as a pure WPF application - no nasty P/Invokes, WndProc overrides or overlay windows for the drag handles that a Windows Forms designer would need.
Daniel Grunwald wrote:
But then again it's possible to write something like a WPF designer as a pure WPF application - no nasty P/Invokes, WndProc overrides or overlay windows for the drag handles that a Windows Forms designer would need.
That was one of the requirements I made of the framework that I work on (the VCF). The form designer that I built is built entirely using the VCF, no extra WndProc's or customizations beyond the framework itself. The proof is in the pudding: http://vcfbuilder.org/?q=node/116[^] http://vcfbuilder.org/?q=node/105[^] Plus the VCF uses a text based form file whoe format is extremely simple to read and parse, for example:
object Form1 : Window, 'ED88C0A1-26AB-11d4-B539-00C04F0196DA'
left = 200.1
top = 200.1
width = 500
height = 500
caption = 'My Form'object label1 : VCF::Label, 'ED88C09F-26AB-11d4-B539-00C04F0196DA'
anchor = [AnchorLeft,AnchorRight]
caption = 'This is a label!'
left = 20.00000
top = 20.00000
width = 100.00000
height = 35
color.blue = 0.50000
color.green = 1.00000
color.red = 0.00000
textAlignment = taTextLeft
verticalAlignment = tvaTextCenter
end
object button1 : VCF::CommandButton, '8B2CDC30-3CAD-11d4-B553-00C04F0196DA'
caption = 'Hola!'
left = 30
top = 367
height = 35
width = 300
end
endThe above will create a form, with a green label and a button.
¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Techno Silliness
-
John Cardinal wrote:
So if you are learning it's particularly useful to not have to build a whole project in visual studio just to try out forms and buttons and layout panels etc, you just paste or type in there and then see the result immediately. No compiling or anything.
Ah, that makes more sense. To make an (admittedly sketchy) analogy to HTML, you use an actual text editor to write the code, then fire up your "browser" (XamlPad) to test it. Yeah?
----
It appears that everybody is under the impression that I approve of the documentation. You probably also blame Ken Burns for supporting slavery.
--Raymond Chen on MSDN
-
Thanks - I just went there to check some of them out. However, since I'm only running XP, I was immediately prompted to "download the .NET framework" (presumably .NET 3.0). Doesn't this kinda negate the big thing about the web? I mean, what are our Apple or Linux brethren going to do if you have to be running a Microsoft operating system to use a web page? Will Paul tear the flowers out of his hair when he finds he can't bring up a web site on his beloved Mac? :) Or perhaps I'm not understanding something fundamental here. My knowledge of the WPF stuff is really quite limited at the moment.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Christopher Duncan wrote:
Doesn't this kinda negate the big thing about the web? I mean, what are our Apple or Linux brethren going to do if you have to be running a Microsoft operating system to use a web page? Will Paul tear the flowers out of his hair when he finds he can't bring up a web site on his beloved Mac? Or perhaps I'm not understanding something fundamental here. My knowledge of the WPF stuff is really quite limited at the moment.
WPF/E will eventually be made available on non-Windows OSes - it'll be pretty much like Macromedia Flash. And then it'll work everywhere. At least that's the current plan. How well that'd work out remains to be seen :-)
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*) -
peterchen wrote:
The list is scary for one reason: How many developers does it take to write the UI for an mid-size windows application? One? A half? zero point one?
I gurantee you it will take one because I've done it with MFC then winforms and from what I'm learning about wpf I'll be able to do it much more quickly with wpf. While you *could* have turning pages and rotating whatsits the real power and improvement I see is moving every last bit of the UI stuff *out* of the code and being able to do layout in a much cleaner and simpler way that results in better layouts that I currently have to write a *lot* of c# to get with winforms. To be honest the "luddite" replies I'm seeing and yours are symptomatic of not really taking the time to understand what the benefits are and how it all works, once you get into that you will see it intuitively. To be fair when Orcas is out you will again be writing wpf apps on a Vista station "out of the box". WPF has crossed the "bleeding edge" territory and is now firmly in the leading edge, something that I like to stay on top of in particular because we have a small shop and can't turn around a new app as quickly as some bigger shops. I really benefited from being on top of winforms in the early days and got a release out just on the sweet spot of .net adoption. You can't afford to be a "luddite" in this business unless you're content to be relegated to maintenance programming. People are understandably upset when they have to learn something new in any industry, but in the programming industry it's just a way of life. And I've learned and worked with 6502 assembly, 8080 assembly, cobol, C, MFC / C++ etc etc. It can suck if you take it with the wrong attitude but if you embrace it you can make a lot of money and get to play with cool new things and make a lot of customers happy.
John Cardinal wrote:
To be honest the "luddite" replies I'm seeing and yours are symptomatic of not really taking the time to understand what the benefits are and how it all works, once you get into that you will see it intuitively.
I fully understand that. However, the question for me is: Should I really look into it? (I guess this sounds heathenish to you ;)) The company I work for is leading (and often enough bleeding) edge for what it does, but the market does not throw at us the resources to jump on a new UI paradigm every seven years. My job is to provide engineers with the environment they can program in, and they have absolutely no patience for "that Windows Shit". They have a completely different opinion of what a UI may cost. My job can get very frustrating between them and the MSDN headlines of today, so to not get exhausted I have to leave one thing behind. Microsoft always pushed out new technologies, but recently it seems to me they get outdated before they mature. WPF is cool, but will it be still cool in five years, or can I sit it out and skip to the next best thing? No problem for cute small apps, but I happen to work on one that puts a lot functionality into one place.
Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify!|Fold With Us! -
peterchen wrote:
The list is scary for one reason: How many developers does it take to write the UI for an mid-size windows application? One? A half? zero point one?
I gurantee you it will take one because I've done it with MFC then winforms and from what I'm learning about wpf I'll be able to do it much more quickly with wpf. While you *could* have turning pages and rotating whatsits the real power and improvement I see is moving every last bit of the UI stuff *out* of the code and being able to do layout in a much cleaner and simpler way that results in better layouts that I currently have to write a *lot* of c# to get with winforms. To be honest the "luddite" replies I'm seeing and yours are symptomatic of not really taking the time to understand what the benefits are and how it all works, once you get into that you will see it intuitively. To be fair when Orcas is out you will again be writing wpf apps on a Vista station "out of the box". WPF has crossed the "bleeding edge" territory and is now firmly in the leading edge, something that I like to stay on top of in particular because we have a small shop and can't turn around a new app as quickly as some bigger shops. I really benefited from being on top of winforms in the early days and got a release out just on the sweet spot of .net adoption. You can't afford to be a "luddite" in this business unless you're content to be relegated to maintenance programming. People are understandably upset when they have to learn something new in any industry, but in the programming industry it's just a way of life. And I've learned and worked with 6502 assembly, 8080 assembly, cobol, C, MFC / C++ etc etc. It can suck if you take it with the wrong attitude but if you embrace it you can make a lot of money and get to play with cool new things and make a lot of customers happy.
John Cardinal wrote:
To be honest the "luddite" replies I'm seeing and yours are symptomatic of not really taking the time to understand what the benefits are and how it all works, once you get into that you will see it intuitively.
Doesn't help that half the demos (especially the ones MS puts in the promotional videos i've seen) come across as "Macromedia Director for the new Millenium!!!" Near as i can tell, the core concepts (declarative UIs, composite controls...) are great. Stuff i'd have loved to see from Microsoft years ago. Stuff i'd like to use in apps that will still need to support Win2000, when it comes right down to it... But i don't have spinning galleries of FMV with glowing mouse-over borders in mind. I have forms generated from massive rulesets merged with custom controls, mini-CAD tools, dialogs that, in any system worth its spit, would take less typing to create than what i've put into this post so far. You know, boring stuff that'll make boring people's lives less miserable. ...So i'll wait, asking questions now and then, 'till the rest of you have written down the real advantages, and i can write real applications for real people without worrying that they'll fall apart on a non-developer machine, or won't look shiny enough. ;)
----
It appears that everybody is under the impression that I approve of the documentation. You probably also blame Ken Burns for supporting slavery.
--Raymond Chen on MSDN
-
Reading that just convinces me more that it's time to retire.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
:)
Rocky <>< Latest Code Blog Post: OpenID/CardSpace - Is it time? Latest Tech Blog Post: Corel Lightning - what is the plan?