R – Methodology for designing a new application that will eventualy be merged into an old applications

integrationlegacy code

Currently I am on a team developing a new stand alone application in C#. The eventual goal is to roll this stand alone app into a previously developed larger application that pertains to the same processes.

My question is this: I am looking for information on methodologies or processes that help with A) Design of said newer code, esspecialy when the older code isn't the best most maintainable system, and B) integration of said newer application.

Obviously there will be nothing specific out there, our applications are unique in design and thus will have specifics no methodology can help with. I am interested in getting some good general knowledge on the topic however.

EDIT:
The suggestions so far, Refactor the old code, build the new code as a container for the modules, and cover the old and new code in unit tests, are all good practices in general and are things I practice when possible. It seems to me though that these would be individual parts of an over-all methodology.

Best Answer

First of all, you need some understanding how the old application works internally. How does it manage workflow, sessions, user privileges etc.

When you design your new code, you should take extra care to build small, reusable components in a layered approach. Of course, that is nothing special, good programmers will always attempt to do that, but it's more crucial in the given scenario. At some point, to make it a stand-alone application, you will have to replicate some parts already existent in the old application, e.g. login screen, workflow management etc. Make sure you either reuse those parts from the old system or make the new parts API compatible and separate from the main business logic. By doing that, it will be much easier to integrate the new application into the old one.

Related Topic