In which our intrepid (or is that tepid?) Hero finds himself on the shores of the Sharp Sea looking through the Windows to the Presentation of the Foundation of all things.
Last time I mentioned that I was working on a project to simplify configuring our main product and that I decided to make it a regular Windows application instead of a (shudder) VBA application.
I like learning computer languages and so I thought that this would be a good time to learn C#. I had dabbled with it over the years and had written some small programs in it, but nothing serious–nothing that required learning the details or the dark recesses of a language. And with 3.0 out I figured I could learn about all the cool new features. That and I just can’t bring myself to use Visual Basic. It is a powerful language with some neat features but it just brings up too many old, painful memories.1
So I fired up Visual Studio and told it to create a new Windows Forms Application.
Hey, what’s that WPF Application template?
Oh, that is Microsoft’s latest attempt to make a good UI library. It’s just another reworking of their old stuff. Don’t worry about it.
Shouldn’t we at least look at it and see if it’s any better? I mean learning something new is fun and it’s one of the reasons were doing this on the side.
No, we know something about how Forms work and we don’t have the time to learn a completely new system if we want to show something soon to convince people not go the VBA route. Don’t worry it will all be fine.
OK, if you say so…
Talking to my inner self can be annoying. Where was I? Oh yeah, the application solution was created. Add a few support projects, steal code from other projects, rename a few things, and compile. Yay it runs!
Microsoft annoys me.
You talking to me?
Yeah. They’re really big, have very talented people and they still create complex, hard-to-use stuff like this. It’s a real pain to get things on the window, looking nice, and be functional. You have to write so much code. Ugh.
You know, there is the thing I heard about once…I’m think it was called WPF. Someone once said we should look at it. I can’t remember who…
OK, OK. I get the message. Just to make you happy I’ll take a quick look, you’ll see that it’s just the same old stuff repackage like always and we can get back to making this work.
Thanks, this will be fun…
Fire up a new solution, this time a WPF Application. Looks pretty much the same, an empty window. OK, the tool on the left look pretty much the same, maybe one or two new things. Nothing surprising there. I guess it time to read up on this. I’ll give it an hour or so.
OMG, this is even more complicated than Forms! Look at all the options and settings!
Wait, binding? Like Adobe Flex? We liked binding in Flex.
Item templates? Data templates? What?
I’ve got it! I get it! Wait! Microsoft made this? This is…good. This is…right!
I told you we should look at it.
But it was just another “Microsoft threw too many people at the problem” thing. How could I have known?
You should listen to me more you know. This half the brain has good ideas too you know.
For those trying to keep track, I, like many others, do not have the most favorable opinion of Microsoft products. I do have a lot of respect for the people who work for Microsoft. Some of the brightest stars of my field (software development) work for them. But in my opinion, the company somehow manages to infect them and causes them to produce things that are, shall we say, not so good. I think that it may have something to do with bureaucracy and inertia, but whatever the reason, I am not a fan of most of the products that have come out of Microsoft for the last few years (many years in fact).
But WPF changes all of that. Now mind you, it is not perfect. There are some things I would change but overall this is how a window system should be. The separation of concerns, the simplicity of execution (once you get over the “how does it work” hump), and the ability to change just about everything is fantastic. As time goes on and I learn about new features in the system I go “wow that’s great. I wish I had known about that before.”
And the great thing about this is that it works as a Windows application and a browser application. And with Silverlight using the same basic technology I see great possibilities ahead.