How do you design a Windows App?
Ever since I was in high school, all I really wanted to know how to do was write the programs I use on my computer (back then it was games). So I went to school for Computer Science, and you know what, not a single class showed me how to write a Windows program.
Eventually, after a lot of searching I found some stuff online and some books that showed me how to write programs for Windows in C++ and MFC. I remember spending a whole weekend or two cranking out C++ to produce a crappy Blackjack program. Well now, I could probably make that same program in about 3 hours with C#, but still at no point in my professional career was I ever shown "how" one should make a Windows app.
So here I am making my third windows app (second that I'd be putting for sale), and although I've become better aquainted with the standards and ways of Windows apps, I still probably don't do things "the right way". So here is how I set about making my app.
First, I think about the design. What's going to power the app? Will it need a database? What's the general look and feel? Once I have a general idea about that, I start dragging controls onto a blank form to get a basic feel for the app. This is what I had around Tuesday of last week:
Ugly as all heck, but most of the functionality is actually there. It probably even looks worse then your typical windows app because I am trying to maintain a consistent UI to the current website my users are used to. Keep that ugly look in mind on Friday when I show the screenshots with the UI prettyfied.
So once I have the basic layout, I start throwing down all the code. I get the app doing all the features I want for version 1.0. I'll make sure to add in some basic error checking, but its still pretty much bug filled.
Once the program basically works, I go back and make it look pretty. Now it's starting to feel like a real application. At that point, I'm motivated enough to really starting hitting it hard for bugs. The last two paragraphs should all come together this week.