We’ve prepared a no holds barred explanation of the science behind our product. We guarantee that our automatic migration technology migrates your entire Magic code base into high quality C# in minutes.

So, how does it work?

First, we set up an FTP server for each of our customers. The following files would be uploaded into that FTP directory:

  • The export file of your application, and all of its components. 
    • In order to export, you would use the “Export/Import” option from the File menu in Magic Studio: 

          

    • Next choose “Entire Project” as the export type: 

         

  • The application’s Magic INI file.
  • The application’s color file.
  • The application’s fonts file.
 
Once all of these files are uploaded into the FTP folder, the automatic migration engine is triggered to start working.

The migration engine itself is written in C# and utilizes the best available hardware and technology to perform the automatic migration quickly and accurately.


The migration engine starts performing the following tasks:
  • Reads the uploaded files into memory. 
  • Creates a skeleton of the resulting .NET code and also creates a class for each program, type, and table, and makes sure they are all properly named and defined. 
  • Scans program by program and populate the .NET class with various lines of code parallel the original code written in Magic. 
  • Splits large applications into multiple .NET projects, making them easier to maintain. Each of these projects will become DLLs once the migrated .NET application is deployed. 
  • Finally, it saves the individual C# files, completes the migration and sends you an email indicating that the migration is complete, and can be downloaded from the FTP site. 

The output of the migration process includes the following items:
  • A compressed file that includes a compiled version of the application which can be downloaded and tested. 
  • A compressed file that includes all the code and projects of the migrated application.
  • A detailed report indicating syntax errors that may exist in the original Magic code, and reports of unused original Magic code that can be deleted. These reports are designed in order to leave deadweight behind. 

Here’s a video showing an actual migration from beginning to end:
 

 
The migration process is really this simple. It can be completed within a few minutes, and can be run as many times as the customer wants, allowing for the following advantages:

  • No development freeze: throughout the testing phase of the project, you can continue to develop in Magic, and migrate your Magic code whenever you want to test an updated version of the migrated application. Furthermore, as soon as a defect is fixed, the application is immediately available to you, and you can run a new migration with the latest code base in order to test it out. 
  • Simplified QA: we never fix your code—we always fix the migration engine. If you find a bug in one part of the application, we fix the migration engine, and then you’ll re-migrate, so that the bug will be fixed all throughout the application. 
    • A few words on regression testing and stability: we use a development methodology called Test Driven Development (TDD) which means that defects that were reported by our customers are turned into an automatic test or “checklist”. Today, we have over 15,000 automatic tests that run daily to make sure that even when a new defect is fixed or any changes are made, all the previous defects reported are taken care of. This helps to eliminate almost completely the need for regression tests, and promotes quick turnaround of defects within new migrated versions of the application. 

So there you have it. There’s no magic (pun intended) behind our 100% automated migration solution. 
 
Want to see your application migrated to .NET? Schedule a demo here or contact us for further information