As I mentioned in a previous post, on June 1, I started a new project that entails re-writing a VB6 desktop application. I actually led the team in 2000 that wrote the original VB6 application, so I’m excited to be the one that’s re-writing the application. I wanted to give a little more detail about the project and some of the things I’m doing.
The original application took myself and 3-4 other developers about 6 months to deliver back in mid-2000. The consulting firm I was working for at the time had a “process” and it was called Waterfall. We spent weeks gathering requirements, a few more weeks on a “BDUF” (big design up front) before we finally got to writing code. In the end, we generated a huge stack of paper that was looked at once and then ignored for the remainder of the project.
At the time, we followed Microsoft’s guidance for creating client-server desktop applications (aka Windows DNA). The user interface wasn’t necessarily thin, but it wasn’t exactly thick either. It called into our business objects which, at the time of rollout, were hosted in Component Services (COM+). Over the years (while another consultant was maintaining the application), it was decided that COM+ was unnecessary, so the business logic was removed from Component Services and re-located to each workstation that runs the application (currently 6-8 systems).
Besides that change (and a couple other minor enhancements), the application has remained pretty much untouched since we rolled it out in October 2000. Even with 8-years of data, the application remains very snappy and stable. There is one issue that appears at “random” times, but I think it’s a display driver issue and not an application problem. The end-users (most of whom were there when we developed the original application) are still happy, but are also looking forward to some enhancements.
As I mentioned in my previous post, I decided to go with C#/WPF. This decision was made with input from my client and it was based on a few things: first, we (the client and I) wanted to get away from the plain old battleship gray application and make some usability improvements. I saw WPF as being a good way to do that. Third, my plan is to re-use/share some of the Xaml between the main application and a Silverlight-based application. Finally, it’s 2008 and I wanted to work with some cutting-edge technology.
I’ve done a couple walkthroughs with some early prototypes and they seem to like it. Time will tell of course. I’m hoping to get a version on their desks soon and then get into the rhythm of releases every 2 weeks. I want to reduce the amount of manual work they do as well as eliminate the work-arounds they’ve come up with over the years. This is harder than it sounds because these particular users consider these things (work arounds, etc.) “normal”.
Overall, I find this project to be really fun and exciting. My next post will talk about some of the tools and technologies I’m using outside of WPF/C#.
Sounds like a fun endeavor. I have yet to make the WPF plunge on a project, so I look forward to hearing how it goes – especially since this is an update of a previous project.
I would be very interested to find out what kind of pain / ease you encounter while you implement this.
Good luck!