I don’t mean that in the literal sense, of course. But I have been taking the advice of Joel Spolsky and Eric Sink, by using Krypton within an internal application I have written.
This is the first post in over a week because I have been knocking up an application to manage customers and serial keys. Rather than try to find and buy an off the self solution I thought it would be easier to just create exactly what I need myself. Like most programmers I prefer the feely of complete control that comes from writing it to do exactly what I need myself.
It can import sales information directly from an SWREG report or connect to directly to Microsoft Outlook and scan for the sale notification emails. As well as updating the sales database it will generate any required outgoing emails.
So if an order for a 4 Navigator licence arrives it will automatically generate and send out the three additional serial keys (the first one is sent directly by SWREG at the time the order is completed). It has all the usual features you would expect in order to make life easier, the ability to search based on order numbers, email addresses etc.
I can leave it running overnight or over a weekend when I am away and know that the additional emails are being generated. This gives me a high degree of automation, I have Outlook and my internal application up and running at startup and know that my database and emails are taking care of themselves.
This is really important as a small ISV, make sure you automate just about anything you can. That way your not spending time on daily manual tasks and instead can concentrate on the important stuff, like adding features!
The only feature missing that I need is the ability to send reminders at the end of the 12 month subscription period, but I can leave that until closer to the anniversary of the first sale!
So why am I explaining this straight forward application that is no use to anyone else? Well I used Krypton to build the user interface in order to ensure that it really does work as expected in a real world scenario.
During the process I found the ‘anchor not working for controls inside KryptonGroup/KryptonHeaderGroup’ bug. It also gives me more of an insight into the pain points in developing a typical client application.
Now back to the real business of fixing the list of bugs reported for the 2.0 release. As some are quite critical it might be worth issuing a new release that just contains the bug fixes but without any new functionality.