The first file created by gmStudio for your project is the Migration Project file. This is an xml document, the gmproj file, that is easy to modify and managed by gmStudio to store the very highest-level information about the upgrade process. Initially you will add the files (e.g. VBPs and ASPs) that define your legacy system. During the course of your project you may also add files for special gmStudio processing operations or integration with other tools and content. This article describes the how to setup your initial gmproj file.
If desired, you may setup a new project using the New Project Wizard. You may open the wizard by selecting [File|Upgrade Project Wizard] from the main menu. The wizard will take your through the process of selecting source code, setting options, and running a translation. See this article for more information on the New Project Wizard.
The [Migration Project Setup] form is where you will define settings and add migration units to your project. The inputs captured on this form are described below:
l) Select location of deployment root folder.
Optional, Default = %ProjectFolder%\deploy
A critical activity in creating a migration project is identifying precisely which legacy code you will migrate.
In gmStudio, the set of legacy codes is explicitly captured in a Migration Project file that is used to drive all tool-assisted migration steps. Each legacy component being migrated is referred to as a Migration Unit. Typically there will be one Migration Task record for each Migration Unit, but you can have multiple tasks for the same unit if you wish to experiment with and compare different ways of migrating that unit.
Selecting migration units and adding them to a migration project is done on the [Migration Project Setup] form as follows:
You may remove selected items from the [Tasks in the Migration Project] list by selecting them and clicking [Remove].
By clicking [Reset], you may restore the task list to its state prior to opening the [Migration Project Setup] form.
You may discard changes and exit the [Migration Project Setup] form by clicking [Cancel].
If you wish to add or remove tasks after the initial project setup, click the [Add] button on the Toolbar. This will return you to the Migration Project Setup form where you can use the procedures described above to add or remove tasks as needed.
Putting migration units in the same migration project folder means they will share migration settings and workspace Configuration Files. You will typically only want to do this for migration units that are inter-dependent and part of a cohesive system that you intend to migrate as a set.
By default, target projects within the same migration project will reference the same Interop assemblies (in the workspace\Interop folder) or the same prototype assemblies (in the workspace\deploy\externs folder). depending on the external handling strategy selected on the [Migration project Setup] form. For example, the FMStocks sample contains several VBPs that all depend on ADODB. By default, all of the FMStocks .NET project files contain a reference to the Interop assembly created during preparation:
lib\FMSStore_Bus_std_csh\FMSStore_Bus.csproj: <HintPath>C:\gms\samples\workspace\FMStocks_csh\Interop\Interop.ADODB.dll</HintPath> lib\FMSStore_DB_std_csh\FMSStore_DB.csproj: <HintPath>C:\gms\samples\workspace\FMStocks_csh\Interop\Interop.ADODB.dll</HintPath> lib\FMSTest_std_csh\FMSTest.csproj: <HintPath>C:\gms\samples\workspace\FMStocks_csh\Interop\Interop.ADODB.dll</HintPath> lib\FMStocks_Bus_std_csh\FMStocks_Bus.csproj: <HintPath>C:\gms\samples\workspace\FMStocks_csh\Interop\Interop.ADODB.dll</HintPath> lib\FMStocks_DB_std_csh\FMStocks_DB.csproj: <HintPath>C:\gms\samples\workspace\FMStocks_csh\Interop\Interop.ADODB.dll</HintPath> lib\FMStocks_Ext_std_csh\FMStocks_Ext.csproj: <HintPath>C:\gms\samples\workspace\FMStocks_csh\Interop\Interop.ADODB.dll</HintPath> web\DemoFMSWeb_csh.csproj: <HintPath>C:\gms\samples\workspace\FMStocks_csh\Interop\Interop.ADODB.dll</HintPath>
The location of Interop assemblies can be controlled by the setting of the Library translation option and by RefactorLibrary settings.
COM components implemented by source codes within a migration project are referred to as local components. By default, references to local components become references to the new, managed binaries, not references to the original COM components. Said another way: gmStudio's translations do not use Interop to access migrated local components. For example, the Interop2_csh sample contains two inter-related components: ScanToolLib.dll and ScanToolUI.exe. After translation, ScanToolUI references the managed ScanToolLib binary, not the Interop assembly:
DemoScanTool\deploy\ScanToolUI_iop2_csh\ScanToolUI.csproj: <HintPath>C:\gms\samples\workspace\DemoScanTool\deploy\ScanToolLib_iop2_csh\bin\ScanToolLib.dll</HintPath>