Convertion Steps.




For Demo or if VB-Project is simple, the following steps can be used.
Complex project needs more thoughtfull approach.

Few-Clicks Steps

 Don't Think
 Select Converter
 Point             menu/Source to VBP-source folder
 Don't Customize
 Convert           by clicking on menu/Go
                   If the goal is to obtain
                     1. HTML-templates, or
                     2. further conversion to PHP, then
                   skip 'Edit', 'Add', and 'Recompile' steps.
 Check             for converter warnings
 Find              converted ASP-project and/or Dll-project
 Edit              Dll-project, or
 (Re)compile       converted Dll
 Edit              ASP-project, or
 Add               strings from ADD_TO_global.asa.txt 
 Put               RESULT_FILES\..._asp - folder 
                   to the web root and browse to myproject.asp, or
 Continue          converting ASP-part to PHP using asp2php.




Think All Out
  
  Programmer should be familiar with major sections in readme.htm
  Programmer should decide which options of vb2asp to use.
  The major options are:

      Variable Visibility.
      Variable Geometry.
      Wich form, modules, clases to expose-to-Web/convert and which not.
      How to deal, if Application has timers or depends on other processes.
      Apartment Threaded or Single Threaded.

  The minor options are described next to particular switch in schema.



How to find vb2asp Converter in a fresh s2s-distributed package.

If this readme is found in distribution package, 
the readear probably is already in the right folder tree.

vb2asp is distibuted with template project

....\vb2asp\converter.prj

which points to a schema main.htm which includes all subschemas of the converter.

From menu\Project\Open user can open this file which makes converter ready to run.

By default, the converter is pointed to demo application although
user can repoint to any VB-project.



Selecting source VB-Project for conversion

It is important to know that menu\Source must be pointed to 
a folder where VB-project *.vbp file resides, not to *.vbp file itself.

In case if folder contains few project files *.vbp, 
programmer can point to specific project by setting the switch:

|=project_to_convert."..."

If programmer does not do so, vb2asp picks up the first encountered 
project file and ignores others.



Customizing Convertfer and Preparing VB Project for Conversion

 Seamless conversion strategy:
   VB-Project can be customized before conversion. 
   For example, 
       programmer can change application logic before and 
       write all the wrappers to added to VB-Project file web_auxiliary.bas. 
       (Not that which is in PoloshBench folder.)
       Make this modified Application workable. Clean up all bugs.
       Then using file-switch custom_projects\exclude_this_modules.txt 
       exclude web_auxiliary.bas form conversion.
       The example of possible web_auxiliary.bas.

 Programmer can use supplied projects and schemas as template, copy-paste them
 to create own customized versions.

 There are perhaps two ways of customizing.
 If programmer does cosmetic changes for new projects, which changes
 affect mainly switches main.htm, main_aux.txt, ... then
 this files can be copy-pasted for new projects.

 If new project is a major development affecting all vb2asp schema, then
 the folder vb2asp can be copy-pasted with a new name vb2asp2 under
 the same root Examples. This instances Examples\vb2asp and Examples\vb2asp2 
 of vb2asp converter will be completely independent. 
 The location under root Examples is significant only for documentaition,
 and has no importance for converter for wich vb2asp can be moved to any place.

 Programmer may want to do some modifications in
 VB-code which will be added during conversion.
 Part of this code is in PolishBench project, which
 can be used to "fish out" all mistakes.

 
 Timers and dependence on other processes

 If none of this, just ignore this section and use default switches.
 Otherwise, this may need manual work:

 Rudimentary constructs already can be used:
   in Interface to Dll:
      web_TimersCompleted
      in Function ExchangeData( ... TimersPreventDestroying, LetTimerComplete ... )
         ...
         TimersPreventDestroying = Destroy_IfNoTimers
   in DllCallers.inc 
      Subroutines giving timeslice to Dll to complete timers
   Switches


     
 Variable (dynamic) geometry and visibility

    Schema has an option to allow controls to change their position, shape, and 
    visibility at run time if this is coded in original VB Application.
    This option requires extra data flow between ASP and dll. 
    Disabling this feature simplifies resulted ASP and dll code and
    amount of data flow.    


Programmer maybe does not want to expose 

    every form to the web, but still keep this form in the project.
    Detailed explanation how to do this is in schema main.htm.

 
 Setting conversion switches

  As other decent converters, vb2asp has switches to tell itself what and how to do.
  Where are this switches?
  In case of vb2asp, which is merely a schema, schema variables themselves are this switches.

  Some switches can be set at pre-conversion time.
  According schema-syntax, pre-conversion switches syntax is:

  |=variable.value

  No matter where in the code construct |=... appeares.
  (Of cource, except string constants "...|=... ".)
  It will be evaluated before s2s touches any vbp-source file.
  This constructs evaluated in order in which appear in schema. 

  Where to find particular switch and its help to setup ...

     ...  major parameters,
     ...  startup scenario      - main.htm
     ...  geometry, visibility  - main.htm
                                  custom_projects
     ...  HTML styles           - HTML_front_page.txt
                                  HTML_style_static.txt
     ...  HTML layout           - main.htm
     ...  add more controls     - ASSEMBLE_CONTROLS.txt
                                  for simple controls
     ...  additional parameters - main.htm
                                  main_aux.txt
     ...  additional asp project
     ...  parameters            - ASP_front_page.txt



Check for Converter warnings

   This warnings can appear on console and in VB Result code.
   Meaning: *-*   - needs programmer approval
            *!*   - definitely needs manual work


Where are Results?



Running VB over converted code.

     In any case, this is a good idea to read the compiled project with VB IDE, and resave it.
     VB usually 'fixes' the project, updtates versions, and possibly finds errors.

     It is recommended:
         - to set project properties: ActiveX Dll and Apartment Threaded.
         - to be sure, that 'InterfaceToDll' class is Creatable and MultiUse:
              In VB6 IDE: Instancing Property is 5-MultiUse
              In VB4 IDE: Instancing Property is 2-Creatable Multiuse
                          Public Property is True

     Single Threaded may be used for experiments.


Editing after running converter

  General notes.

  All controls and their properties are indexed by master index.
  SSTab has additional master index trough all VB Project
    ranged from 0 to tabs_number-1.
  Properties transfer from web to asp and backward is not
    necessarily have the same index: for example
    text box value index in browser request may be 4 and
    value in response can be 5.
  Mapping between control's name/property and master index 
    can be seen in html, asp pages, in vb-source code, or in files:
    RESULT_FILES/*_map.txt
  Schema adds few modules to the final VB Application:
    they are listed in "Prepasing VB-Form" section in 
    VB_and_items.txt file. They all have prefix "web_".
  In general, schema adds some global variables and
    procedures to VB Application with prefix "web_"
    assuming that there won't be name confilict with existing names.
    If suspicious, programmer should chech for name conflict manually.




Recompilation

If WebServer still runs and bound with previously recompiled dll,
it may not let to rebuild the dll again. Try 
full Web Server restart on Windows 98.



Editing ASP

When substituting insert_image_manually.gif, 
don't forget that IE can cach them: 'Delete all files' option may help.


Global.asa

  Setting global.asa is required only for Dynamic scenario.
  Go to RESULT_FILES, take text from
     ADD_TO_global.asa
  and add it to a real global.asa
  This will "link" the dll to the web server.
  PWS or IIS may lock global.asa
  The similar steps may help.



How to browse:
  
  Run in Preparsed or Dynamic scenarios