Support Statement: What is a Build-Complete ASP Upgrade?

"Build-Complete" is a baseline verifiable state for upgraded code.  For your ASP site it means the following:

  • Each ASP/ASA script is upgraded to a System.Web.UI.Page organized into two files: a markup file (.aspx) and a  code-behind (.aspx.cs) file.

  • Each Include file is upgraded to a code class or a System.Web.UI.Control organized into two files: a markup file (ascx) and a code-behind (ascx.cs) file.  If an include contains a VBScript class it becomes a separate code class. 

  • All markup is for the most part preserved and all server-side VBScript becomes C#.  Declarations are moved to the code-behind files.  

  • If migrating the include file to a control, the #include tag becomes two custom tags in the translation of the including file, for example


    <!-- #include file="../includes/routines.ascx" -->
    
    becomes
    
    <%@ Register TagPrefix="inc" TagName="app_includes_routines" Src="../includes/routines.ascx" %>
    ...
    <inc:Optix_includes_routines ID="_routines1" runat="server" />
  • If migrating the include file to a code class, the #include tag becomes a call to the include class's Author_Markup routine


    <!-- #include file="../includes/routines.ascx" -->
    
    becomes
    
    app.includes.routines routines1; // in code behind
    ...
    <% routines1.Author_Markup(); %>
  • We also generate a default web.config and a web application project file (e.g. app.csproj) that integrates all the files. 
  • References to external APIs (i.e., COM APIs such as ADODB) are replaced by references to a stubbed-out COM framework based on needs of the application code.  The tool also generates this stubbed COM framework and integrates  it with the web application.  We also generate a stub class called MigrationSupport.cs that contains stub functions for VBScript operations that are semantically different than the corresponding functions in C#.

  • "Build-Complete" means that the web application project file can be processed to an assembly without fatal errors when you compile it using the C# compiler (CSC.EXE) and the ASPNET Page Compiler (ASPNET_Compiler.exe).  It is a verification that all of the code, in both the code-behind and markup files, is well-formed and internally consistent.   This also includes an extensive amount of type inference to make the code more strongly typed.  The build can be initiated either using Visual Studio or MSBuild.  

  • "Build-Complete" is only a starting point it will not run very well.  At a minimum, the upgrade solution would be enhanced to replace references to stubs with references to the desired .NET classes that provide the services needed by the application.  Additional technical changes may be made by hand or by tool, as desired.


See also:

  • The FMStocks sample illustrates a Custom ASP site upgrade to runnable code. You may download this sample and translate it with default rules to produce a build complete result.  Please contact Great Migrations if you would like to see a demonstration of FMStocks, or any other upgrade.