I work on a large code base with a large install base of users. The code was originally written in vb6 with a few c++ COM modules for low level work.
It is completely infeasible to rewrite all of the code that is already written in vb6 and is being used by our customers every day, but we are also continuing to make improvements and customizations to the software (large and small).
My solution so far is to write most of the new code in c# (winforms and even wpf now) and then use COM interop to call the modules from vb6.
Does anyone out there have experience with long term software suites like this (10+ years) that can't be stopped for a complete rewrite, but need continual new development at the same time. Also, in mixed systems like this, what is the best way to interface the modules? I am using COM right now, but have considered IPC with separate processes as well.
For legacy software to be maintained, you need a developer conversant with its operations. However, most developers are future-proofing their applications with new technologies. So, getting someone who can work with an old system can be a challenge.
It's hard to give a single all encompassing answer but the high level approach is clear. At least, this is the approach I've used. Prioritize your goals and then try to identify the costs of reaching those goals. Your costs will essentially boil down to 'developer time'.
First, you want whatever is working to keep working. If you have something that is working, and there is no good reason to rewrite it, keep it.
If some of your existing code needs updating to do its job, then you are looking at maintenance costs. At this point you need to determine if a rewrite will improve maintenance costs enough to be worth it. Don't forget to subtract testing and debugging of new bugs because there will be new bugs. Don't dismiss working code just because it is old.
If your existing code is sufficiently modular, you can usually chip away at it one piece at a time. Rewrite the high maintenance components first.
If you will be doing new development in C# then you should be fine working with COM components until you have enough justification to replace them.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With