Page tree
Skip to end of metadata
Go to start of metadata

Infor-Med Corp. wanted to migrate its 1.8 million lines product PraxisE­MR.   We chose Great Migrations’ gmStudio after considering two different tools. We liked the conception and implementation of the tool the most, as it allowed us to decide how to migrate different sections of the product.

We started on late June 2020 with a test project which was successfully completed and served as a hand-on learning process.

Then (mid-July 2020) we received a pretty complete introductory course to the concepts and usage of gmStudio along with an almost fully translated project of our own code.

We froze development on that baseline code and, with the invaluable help from Mark Juras, we started the journey to transform the translations into correctly executing code.

We received prompt responses to our requests when shortcomings of the tool were found (we cannot call them errors or failures, they mostly related to VB6 idioms we use that were not solved by the general solutions in the tool).

By the end of October, we reached a point where the executables actually ran.  We made the decision to stop using gmStudio regularly and start the final stage of the migration finishing the translations. (We did run yet another full translation in November with the latest release of gmStudio to see improvements).

By now (mid-March, 2021) the three applications that compose our product are about 90% complete and we expect to have them fully functional around May. 

Some comments on using gmStudio:

  • The tool is great for translating the VB6 code into the C# version of the VB6 code.  Don’t expect to receive full C# programming style right out of the box because there are conceptual differences between the VB6 and the C# paradigms. GM has done a great job closing the gaps between these two, but major design changes require using advanced features of the tool or reworking the C# by hand.  We only used these advanced capabilities for a few specific redesign issues that would have required too much manual work.
  • I suggest adding version control to the loop at an early stage. We found the use of git invaluable. There are small quirks of code that we programmers like to have our own way which a tool could not always implement, so each time you translate you go back to that spot and rearrange it.  We added git patch operations to the gmStudio process to automagically bring back those small changes and it worked!
  • You (and only you) must make a clear decision of when your code is good enough to start finishing by hand.
  • Although I thought otherwise, it’s a good thing that gmStudio translates the user interface into WinForms because that way the result is closer in shape and meaning to the original, getting you to a running product with a working UI sooner (even if sometimes the rendering is not exactly as expected).
  • Last but not least, it is paramount to success to have knowledgeable people about the legacy application. There are decisions to make that can be difficult if you don’t have a deep understanding of the source code.

I will just add here that gmStudio performed for us better than expected in regard to the overall process.

Miguel Pinkas
Development Manager at Praxis EMR

  • No labels