I am really proud of Kajabity YearChart because it is the first time I have produced a complete application all on my own and published it.
Oh, I know it’s hardly a world shattering innovation – it doesn’t do very much and it’s not particularly “cool” to capture the imagination (and idle fingers) of teenagers. But it is a complete, polished, productized and marketed application and I have made every bit of it myself.
Most of the effort has been in finding out how to go about the task and I have learned a lot on the way. So I am going to save you all that bother and describe the whole process, warts and all for your education and entertainment. And all of it will be done using free software (even publishing on the Web can be free).
First, the History
The original idea was to produce a form where I could write in my mileage each day (I was on a project that involved a lot of travelling). There was a suitable one at the front of my diary, but I had already used it to mark up the kids’ school holidays. A hand drawn paper version didn’t seem like a good idea so I resorted to using a Microsoft Excel spreadsheet. The first attempt took ages and I think I had to print a couple of copies due to mistakes.
That was fine for a couple of years, but then, early in January 2004 I thought it might be a nice simple project for me to learn some C# and in particular to use Printing and Drawing features. So I wrote version 0.1 of “YearChart” using Microsoft Visual Studio 2002 (version 7) and .NET version 1.0.
This original version was a C# windows application that drew the chart in the main window panel with a popup dialog box to set the year, title, extra columns. It included Print, Print Preview and Page Setup dialogs and would print on whatever size of paper was required.
Now, roll forwards to Christmas 2008. Two things came together – firstly I was trying out SharpDevelop (http://www.icsharpcode.net/OpenSource/SD/) which had been mentioned by a colleague of mine and I quite liked some of the features I could see especially docking menu and toolbars in .NET 3.0 – the other was that I had just created this Blog.
I decided that it would be a good idea to rewrite the application using SharpDevelop and then publish it.
So I did.
However, it required a broad range of skills and technologies and many hours of searching for information on the internet. So I thought it would also be welcomed if I put it all together and describe the whole process in full Technicolor detail.
In the next posting I begin writing the application again from scratch one part at a time – explaining the what and the why as I go along. I’ll also mention any problems I came across and how I solved them – although some of those might warrant their own posting.