Search code examples
c#javaportingcode-migration

Migrating a project from C# to Java


With some changes in the staffing at the office, the levels of C# expertise has dropped off precipitously and there are now more Java developers. It has gotten to the point where the higher-ups are considering moving an existing .NET project written in C# into the Java world.

Aside from the obvious problem of starting completely from scratch what are the possible ways that this company can accomplish a successful move of development on a project from .NET C# into Java?


Solution

  • Here are things to consider:

    • Is this big project? If Yes, try to stick with C#
    • Is this medium sized project with components? If No, try to stick with C#
    • Is this small project meant to be deployed on windows only? If yes, try to stick with C#
    • Is this old source code? If Yes, try to stick with C#
    • Do you use windows OS specific APIs? If Yes, try to stick with C#
    • Do you use any third party APIs without Java counterpart? If Yes, try to stick with C#
    • Do you use .Net in "deep"(data binding, User controls etc.)? If yes, try to stick with C#
    • Migration time is more acceptable than getting new/converted C# guys? If no, try to stick with C#
    • Do you think end users will not be receptive of changes, if you are to use Java framework which will change presentation? If yes, try to stick with C#
    • Check commercials

    If you decide to convert:

    • Go per component
    • Go per layer
    • Have lots of tests
    • Check if there are tools to help (however small help may be) with migration