LogoLogo
WinForms to WebPowerBuilder to .NETPowerBuilder to Java
  • WebMAP Documentation | Mobilize.Net
  • WinForms
    • Introduction
    • Getting Started
    • Conversion Process
    • Post-Conversion
    • Extend or Modify the Converted Application
      • NoWebMap Forms Winforms
        • How to add a new Form
        • Adding the created form to the migrated App
        • Interacting with the application data
        • Call the custom API
        • Interaction between the no webmap added Form and the WebMap components
      • Adding a component
      • Adding a component dynamically
      • Add a new control model
      • Switching CSS theme
      • Adding new window
      • Conversion Configuration
        • WebMAP configuration file
        • Stub Filter
      • Adding Non-WebMap Angular Forms
      • Adding FrontEnd Handler to a ToolStripMenuItem
      • Changing ToolStripButton icons
      • Adding new items to existing toolbar
      • Adding FrontEnd element properties and JS listeners
      • Adding FrontEnd output handlers
      • Access FrontEnd components
      • Create custom components based on existing WebMap Component
      • Override FrontEnd methods
    • Assessment Mode
    • Errors and Troubleshooting
      • How to resolve broken reference problems with VBUC
    • Portability
    • Glossary
    • Release Notes
    • Internal Demos
    • Known Issues
    • WinForms DCP
  • WebForms
    • Introduction
    • Overview
    • Desktop Compatibility Platform (DCP)
      • Pages and Master Pages
      • GridView and DataList data synchronization
      • HTTP objects
    • Post-Conversion
    • Extend or Modify the Converted Application
      • Adding FrontEnd validator
      • Adding Page
      • Adding MasterPage
    • Designer classes on WebForms Conversion Tool
    • Errors and Troubleshooting
      • How fix Solution when have been added website from filesystem without project file
    • Release Notes
  • PowerBuilder to .Net
    • Introduction
    • Getting Started
      • Conversion Tool
    • Desktop Compatibility Platform (DCP)
      • Data Manager
    • Reports
      • Report Rendering in Modernized Code
      • ReportWatcher Service Configuration
      • Data Manager to RDL Conversion
      • Reporting Service Internals
      • Troubleshooting
  • PowerBuilder to Java
    • Introduction
    • Getting started
    • Post-Conversion
      • Setup PBJava Environment
      • Architecture
      • App Start
    • Glossary
    • Errors
    • Glossary
    • FAQ
      • How to create a new Control
      • How to create a new Screen
      • What is the Mobilize.WebMAP.CoreServices.All?
      • What is the DesignerAttribute?
      • What is the InterceptedAttribute?
      • What is the InterceptedAttribute?
      • What is the ObservableAttribute?
      • What is the Mobilize.Weaving.WebMAPExtensions.All?
  • General
    • FrontEnd
      • Documentation
        • Webforms Angular Components
          • Web Components
            • Base Components
              • BaseValidator Component
            • KendoUI Components
              • CompareValidator
              • CustomValidator
              • RegularExpressionValidator
              • RequiredFieldValidator
              • ValidationSummary
          • Directives
          • AJAX Web Components
            • AjaxCalendar
            • AjaxModalPopupExtender
          • Ajax Interaction Services
        • Client Core
          • WebMap's Client Core
        • Angular Client
          • Introduction
          • WebMap Service
          • WebMap Interceptor Service
        • Base Components
          • Introduction
          • Components
            • Container
            • Control
            • ControlContainer
            • FormsContainer
            • Loading
            • Stub
        • Winforms Angular Components
          • Web Components
            • Base Components
              • Control Component
              • Form Container
              • Grid Component
              • Style
            • KendoUI Components
              • AdoDataControl
              • Button
              • C1TrueDBGrid
              • CheckBox
              • CheckedListBox
              • ComboBox
              • ContextMenuStrip
              • DataGridView
              • DataGridViewFlex
              • DateTimePicker
              • FileDialog
              • GroupBox
              • Label
              • ListBox
              • ListView
              • MaskedTextBox
              • MessageBox
              • NumericUpDown
              • Panel
              • PictureBox
              • PrintDialog
              • ProgressBar
              • RadioButton
              • RichTextBox
              • StatusStrip
              • Stup
              • TabControl
              • TabPage
              • TextBox
              • Timer
              • ToolStrip
              • TreeView
              • WebBrowser
              • Window
            • JQuery Web Components
          • WebMap FrontEnd Architecture
          • Migrated Structure
          • Setup
            • Front-End setup and compilation
            • Components Manual
            • Browser Support
            • Unit Test Manual
            • Development Process
            • Setup AOT/JIT Compilation
          • Decorators
            • Server Event
          • Conventions
            • Application Structure and NgModules
            • Coding
            • Components
            • Data Service
            • Directives
            • Lifecycle hooks
            • Names
            • Services
        • PowerBuilder Kendo Components
          • Base Components
            • base-component
            • column-control
            • controlcontainer
          • Data Manager Componets
            • base-data-manager
            • data-manager-control
            • data-manager-control-base
            • dw-checkbox
            • dw-column
            • dw-complexNumericMaskComponent
            • dw-compute
            • dw-date-time-edit-mask
            • dw-dropdowndatawindow
            • dw-edit
            • dw-edit-mask
            • dw-radio-button
            • dw-simple-numeric-edit-mask
            • dw-string-edit-mask
            • dw-time-edit-mask
          • Window Components
            • basemask
            • graphics
            • w-checkbox
            • w-command-button
            • w-complex-numeric-mask
            • w-date-time-edit-mask
            • w-dropdownlistbox
            • w-group-box
            • w-line
            • w-listbox
            • w-maskedtextbox
            • w-mdiclient
            • w-menu
            • w-multiline
            • w-picture
            • w-picture
            • w-radiobutton
            • w-rectangle
            • w-simple-numeric-edit-mask
            • w-single-line-edit
            • w-statictext
            • w-string-edit-mask
            • w-time-edit-mask
            • w-toolbar
            • w-toolbaritem
            • w-user-object
            • w-window
          • Services
            • DmInteractionService
          • DataManagerEvents
          • FocusManager guide
      • Api Documentation
        • WebMap Silverlight
        • WfNetC1Components
        • WebFormsComponents
      • Guides
        • Setup NPM package registry in the workspace
        • How to Setup WebMap Applications To Run Over SubDomains or WebApplications In IIS
        • Deploy several WebMap Apps in the same Server
        • Update to Angular 16
        • Appearance
          • How to change the CSS
          • How to override the style for a component
        • Component maintenance
          • How link WebMap package to the migrated Application
          • How to resolve broken reference problems with VBUC
          • How to test a local WebMap Components package
          • How to add a new component in a migrated application
          • How to update a component
          • Dynamic Control Support
          • How to add new set of component with a different provider
          • How to test your component in the playground
          • Tools
        • WMLogger
          • How to use the WMLogger's instance
          • How to change log's level
          • How to add log tags
        • Integration test
        • Setup WebMap Applications to Run Front-End And Back-End In Separates Sites
          • Setup WebMap Applications To Run Front-End And Back-End In Separates Sites in Production (IIS)
        • Setup Migrated WebMap Applications To Run Front-end & Back-end In Separates Sites (Only development)
        • Initial Set Up
          • Software to Install
          • Necessary Repositories
      • Errors
      • Version Notes
        • Client Core
        • Angular Client
        • Web Base Components
        • Winforms Angular Components
        • PowerBuilder Kendo Components
      • Licenses
        • Client Core
        • Angular Client
        • Base Components
        • PB Kendo Components
        • WFNet Kendo Components
        • WebForms Components
        • WFNet Access Components
        • WFNet Janus Components
        • WFNet C1 Components
        • Silverlight wms-framework
        • Silverlight i-components
    • BackEnd
      • WebMAP From Scratch
      • Setup
      • DCP: Desktop Compatibly Platform
        • Overview
        • Library Bundles
          • Bundle Library
            • Create an Observable Object
          • Bundle DTO
            • DTO: Data Transfer Objects
              • Creating a DTO
            • Mappers
              • Create Mappers
            • Observable Wrappers
              • Create an Observable Wrapper
            • API/Controllers
      • Architecture
      • Weaving on WebMAP
      • Glossary
      • FAQ
        • How to create a new Control
        • How to create a new Screen
        • What is the Mobilize.WebMAP.CoreServices.All?
        • What is the DesignerAttribute?
        • What is the InterceptedAttribute?
        • What is the Mobilize.Extensions.Logging.RollingFile?
        • What is the ObservableAttribute?
        • What is the Mobilize.Weaving.WebMAPExtensions.All?
      • Licenses
        • PBNet DCP
        • WebFormsDCP
        • WFNet DCP
        • CoreServices
        • CoreServicesCommon
    • Request and Response
  • SCALABILITY
    • Introduction
    • Microservices
    • Containerizing a WebMap .Net Application with Docker
    • Vertical scalability
Powered by GitBook
On this page

Was this helpful?

  1. WinForms

Conversion Process

PreviousGetting StartedNextPost-Conversion

Last updated 1 year ago

Was this helpful?

In order to start with the conversion process, a license key is required. Either a trial version or a previously purchased license with a specific line code limit.

As soon as the conversion tool is open it will prompt for the license activation.

The next screen is going to ask for a solution file (Project written in C#) and the destination folder for the converted project.

Before the input solution file (“.sln”) and the output folder for the future converted project is selected, there are some options that the conversion tool offers.

Delete source code cache

The repository cache is a mechanism used to optimize the parsing process for subsequent conversions, this is intended to keep the latest un-cached source code version stored. This repository is generated on each un-cached new conversion, and it is used to maintain local references for the preprocessing of a new conversion that is using the same source code version.

In case that the source code gets updated to a new version, the cache must be deleted to ensure that the newest source code is used instead of currently cached version, this process can be done by selecting the "Delete source code cache" checkbox placed under the input solution file (“.sln”) in the initial conversion screen.

The first conversion of a solution always generates a cache. If a cache for a solution is not found it also generates a cache.

This cache can be found on %localappdata% / Mobilize.NET / CommonEF /repo.

Advanced options

There is a wrench looking button in the middle of the conversion tool that opens the advance options, which are divided in two sections:

  1. General section:

In this section, the following options could be configured:

  • Start-up project: A specific project could be set as the start-up project in the converted project.

  • Custom conversion file: A config file could be given to modify the conversion tool behavior or to specify a project version.

2. Conversion results section:

In this section, the following options could be configured:

  • Conversion results: Generate only the angular project (Frontend) or both the frontend and the backend.

  • Target framework: Set the desired target framework (.NET Framework, .NET Core or .NET 6)

  • Angular project: Either generate the Angular project or not.

In the custom conversion file, the following options could be configured:

  • Excluded projects: The GUID’s for the projects that need to be excluded are added in this section.

  • Packages: The version for the DCP, HTMLGenerator, Visual Components, Weaving, WebMapExtension, CoreServices and VBUC Helpers projects could be specified.

  • Maps’ file path: A relative path for a folder with map files to be loaded by the conversion tool.

  • ByRef: Mechanism for dynamics to “refs”, where a wrapper for an instance of any type could be modified by reference, could be activated or deactivated.

  • Package sources: The feeds’ addresses for the conversion tool to download the necessary nuggets.

  • Componentized controls: The controls which inner content is going to be created as a separate component.

Here is an example of a custom conversion file:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <excluded-projects>
    <project name="unknown" category="legacy-helper">2A0D89E4-4A6F-4D8B-BC9B-E56246DEE6D8</project>
    <project name="unknown" category="legacy-helper">0115609E-6AF3-4B02-A2B7-51E47841E41C</project>
  </excluded-projects>
  <packages>
    <compatibility-platforms>
      <package id="Mobilize.Web.BundleBasic.All" version="6.3.1-rc0006" />
    </compatibility-platforms>
    <visual-components>
      <package id="winforms-components" version="7.1.4" />
    </visual-components>
    <libraries>
      <package id="Mobilize.HtmlGenerator.WFNet.All" version="5.2.20" depth="1" />
    </libraries>
    <dependencies>
      <package id="Mobilize.Weaving.WebMapExtensions.All" version="7.0.33" />
      <package id="Mobilize.Weaving" version="2.0.4" />
      <package id="Mobilize.WebMap.CoreServices.All" version="7.0.35" />
      <package id="Mobilize.VBUC.Helpers.All" version="9.1.3" />
    </dependencies>
  </packages>
  <additional-dependencies>
    <maps>
      <path value="Maps" />
    </maps>
    <libraries>
    </libraries>
  </additional-dependencies>
  <additional-parameters>
    <!--ByRef param: Off or ByRefWithDynamic-->
    <param id="ByRef" value="ByRefWithDynamic" />
    <!--StubFilter param: path\StubFilter.xml-->
    <param id="StubFilter" value="" />
  </additional-parameters>
  <web-styles>
    <style path="node_modules/@progress/kendo-theme-default/dist/all.css" />
    <style path="node_modules/@mobilize/winforms-components/style-min/styles.css" />
    <style path="node_modules/@mobilize/winforms-components/style-min/jQueryStyles.css" />
    <style path="node_modules/material-icons/iconfont/material-icons.css" />
    <style path="src/styles.css" />
  </web-styles>
  <settings>
    <package-sources>
      <package-source key="public" value="https://packages.mobilize.net/nuget/mobilizenet-nuget/v3/index.json" />
    </package-sources>
    <componentizable-controls>
      <control id="System.Windows.Forms.TabPage" />
    </componentizable-controls>
    <search-visual-generator-parents>
      <include all="true" />
      <exclude />
    </search-visual-generator-parents>
  </settings>
</configuration>

The conversion tool will depend on the following projects:

WinForms DesktopCompatibilityPlatform (DCP)

WebMapExtension

HTMLGenerator

CoreServices

Visual Components

VBUC Helpers

Weaving

The conversion tool will run a set of tasks that when they are run together it will let the source code be converted to WebMap.

Some of the tasks the conversion tool is going to run are:

  • Initialize common properties related to the different projects in the source code.

  • Collect the information to be converted to observable classes (DCP Helpers).

  • Collect the information related to any “BackgroundWorker” if used in the original project.

  • Collect the information to resolve the visual control’s inheritance in the code to be converted into angular templates.

  • Generate the frontend (Angular)

  • Transform the source code to WebMap.

  • Generate the required projects and the solution with the collected and converted information.

When the conversion process is finished it will show a summary:

The log folder will contain the log file, which contains the different annotations and timestamps for the conversion process.

The output folder contains the converted code (C# and Angular) to be compiled. This folder has the following structure:

  • Solution file

  • A Lib folder, where the DLLs for the required libraries are.

  • A Log folder, where the log file is located.

  • A folder with the same name as the original project, where the backend and frontend files are.

  • A reports folder, where the assessment files are.

  • A stub folder, where all the stubbed controls are.

License activation screen.
Main conversion tool screen.
Conversion settings
Conversion finished screen
Conversion completed screen