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
  • Mobilize.Web.BundleBasic
  • Mobilize.Web.BundleBasic.DTO
  • Mobilize.Web.BundleVBUC
  • Mobilize.Web.BundleVBUC.DTO
  • Mobilize.Web.BundleUtils
  • Setting the NuGet Packages Sources

Was this helpful?

  1. WinForms

WinForms DCP

In this section, the user can find the current supported controls, helpers, mappers and behaviors from the WinForms platform on your converted web application. Also, the user can understand what is the purpose for several features added in the current emulated platforms. Each project from this package is enumerated and explained.

For a better understanding of this section, we recommend that each user first visit and read the section DCP: Desktop Compatibly Platform

Mobilize.Web.BundleBasic

In this project, the user can find the web support definition of controls, utilities, components and helpers from the original WinForms platforms such as a Button, TextBox or ComboBox. Also, you can find helpers created by Mobilize to support functionalities from the previously mentioned platform, such as commands and observable wrappers.

The following list enumerates the current supported controls from WinForms platforms on this project:

BindingNavigator

Button

ButtonBase

CheckBox

CheckedListBox

ComboBox

ContainerControl

ContextMenuStrip

Control

DataGridView

DateTimePicker

Form

GroupBox

ImageList

Label

LinkLabel

ListBox

ListControl

ListView

MaskedTextBox

MenuStrip

MonthCalendar

NumericUpDown

Panel

PictureBox

ProgressBar

RichTextBox

ScrollableControl

SplitContainer

SplitterPanel

StatusStrip

TabControl

TabPage

TextBox

TextBoxBase

Timer

ToolStrip

ToolStrpButton

ToolStripDropDown

ToolStripDropDownButton

ToolStripItem

ToolStripLabel

ToolStripMenuItem

ToolStripSeparator

ToolStripSplitButton

ToolStripStatusLabel

ToolStripTextBox

ToolTip

TrackBar

TreeNode

TreeView

UpDownBase

UserControl

Web Browser

Is important to mention, that the previous list contains a support for several controls from WinForms platform, but some features are still in progress or not supported. If you want to support some new feature, please follow our recommendations and guidelines. See more at Create an Observable Object

Client Commands: some cases, the Back-End needs a specific action to be executed on the Front-End side. Client Commands creates a response from the Back-End side where you can specify what should be execute on your web application (Front-End side). The following cases are implemented:

  • Change Focus Command: indicates which control should be focused after the request is finished.

  • Download File Command: allows to download a file from a specific URL.

  • Open External Url: redirects to a specific URL in a new browser tab.

  • Quit Current Application Command: closes the current application.

For each client command, it is necessary the respective implementation on the Front-End side, therefore, in addition of queueing the command, you need a specific Front End behavior to be registered. See more at Component maintenance

Commands: as part of the communication between the Front-End and Back-End, there exist commands specifying a requested action from the Front-End side. Each command is evaluated from the HTTP request and executes changes over the Backend. The next list indicates the current implemented commands:

  • Action Command: a System.Action delegate can be registered and retrieved to be executed from Front-End side.

  • Application Refresh Command: prepares the backend storage to be refreshed and re-send all existing controls to the Front-End side because a browser reload was requested, therefore, a new rendering should be executed.

  • Application Start Command: executes the initialization of a new application, the entry point should be invoked.

  • Application Terminate Command: cleans the current application and remove all object from the storage.

  • Background Worker Started Command: initializes the current hub from Signal R in order to start executing task on the background.

  • Background Worker Finished Command: finishes the execution on the background of any task.

  • Event Command: executes specific event handler indicated from the Front-End, over Control on the Back-End side.

ArrayList

Array

BackgroundWorker

BuiltInTypes

ClearItemEventHandler

Connection

DataColumn

DataRowView

DataRow

DataSet

DataTable

DataTable

DataView

Dictionary

EnumTypes

EventHandler

GenericDataSet

GenericDataTable

HashTable

ItemEventHandler

ListViewItemClickActionEventHandler

List

MultidimensionalArray

OpenCloseEvent

OrderedDictionary

Queue

ResourceManager

RunWorkerCompletedEventArgs

SortedListGeneric

SortedList

SortedListGeneric

StringWriter

TypeObservable

TypeValidationEventHandler

Other Features:

  • ByRef Feature: it is used to wrap an instance of any type in order to be modified by reference. When you modify the wrapped instance, another reference must be affected. The main reason of the feature is support references when your instance is stored on a property from another object.

  • Background Worker Feature: enables to execute tasks on the background while your application is running. Background worker creates a new thread on the server that exist even when your http request is done. When your task is finished, the server will send a message to the Front End, in order to refresh any change after the execution. It’s important to mention that we are using sockets as the communication library on this feature and for the moment it is the only feature using sockets.

  • Componentized controls Feature: by using this feature enables to WebMap runtime configuration to identify which controls were created on design time and which ones were added during the runtime. It is very useful when there are many container controls as TabPage, Panel, because reduces the number of data to be synchronized between Back-End and Front-End.

  • Structs Feature: tracking values between Front-End and Back-End from struct is not possible, in order to support this behavior, structs are converted to classes, therefore Structs feature enable to you to track values from the new class and emulated the cloning behavior as a Struct does.

  • Binding Source Feature: allows a control to link the value of a property with an object stored in a List or DataSource. It means if you modify any of the two side of the binding, the other hand must be affected. One important characteristic, with the binding source, you can condition the automatic assignment of any of both side by manually.

Mobilize.Web.BundleBasic.DTO

By default, each class that inherits from Mobilize.Web.Control, automatically will be mapped and each Intercepted property will be sent to the Front-End side. But if you want to select what should be sent to the Front End, a special mapper should be defined, the following classes define custom mappers for the given controls:

BindingNavigatorMapper

ButtonBaseMapper

ButtonMapper

CheckBoxMapper

CheckedListBoxMapper

ColorDialogMapper

ComboBoxMapper

ContextMenuStripMapper

ControlMapper

DataGridViewMapper

DataTimePickerMapper

FormMapper

GroupBoxMapper

IconMapper

InputBoxMapper

LabelMapper

LinkLabelMapper

ListBoxMapper

ListControlMapper

ListViewMapper

MaskedTextBoxMapper

MenuStripMapper

MessageBoxMapper

MonthalendarMapper

NotificationIconMapper

NumericUpDownMapper

OpenFileDialogMapper

PanelMapper

PictureBoxMapper

PrintDialogMapper

ProgressBarMapper

RadioButtonMapper

RichTextBoxMapper

ScrollableControlMapper

SplitContainerMapper

SplitterPanelMapper

StatusStripMapper

TabControlMapper

TableLayoutPanelMapper

TabPageMapper

TextBoxBaseMapper

ThreadExceptionDialogMapper

TimerMaper

ToolStripButtonMapper

ToolStripComboBoxMapper

ToolStripDropDownButtonMapper

ToolStripDropDownItemMapper

ToolStripDropDownMenuMapper

ToolStripMapper

ToolStripLabelMapper

ToolStripMenuItemMapper

ToolStripSeparatorMapper

ToolStripSplitButtonMapper

ToolStripStatusLabelMapper

ToolStripTextBoxMapper

TrackBarMapper

TreeNodeMapper

TreeViewMapper

UpDownBaseMapper

UserControlMapper

WebBrowserMapper

For futher information about how to create a mapper, visit Create Mappers

Mobilize.Web.BundleVBUC

If you are converting your original source code is not coming directly from WinForms, but rather it needs to be converted from another language (typically VB6) to C#, in order to be able to be converted into a WebMap application, there exist controls supported by mobilize on the first jump. In order to emulate the behavior of these controls and helpers from VBUC are defined on this project, therefore, the web behavior from an Upgrade Helper is implemented.

The following controls and helpers are supported: DataControlHelper, ADODataControlHelper, DAODataControlHelper, DataGridViewFlex and ShapeHelper.

Mobilize.Web.BundleVBUC.DTO

This project defines mappers, controllers and DTOs required to synchronized controls models defined in the project Mobilize.Web.BundleVBUC with the corresponding component on the Front End side.

Existing mapper for the previous project: AdoDataControlMapper, DaoDataControlHelperMapper, FlexGridMapper and ShapeHelperMapper.

Mobilize.Web.BundleUtils

Bundle Utils defines custom helper from mobilize to support controls or libraries from WinForms platforms on a web environment. These utils are added during the conversion process by using a modern detection mechanism in order to replace avoiding manual work after the conversion.

Setting the NuGet Packages Sources

In the migrated application, you can use pre-released versions of the above projects to test new functionality.

Sources List

Steps to add necessary sources:

  • In the migrated app, right-click the solution and go to Manage NuGet Packages for solution.

  • In the Nuget - Solution click the settings wheel.

  • After that, go to NuGet Package Manager > Package Sources and click the add button.

  • Write the Name and the Link of the source to add and click the Update button.

  • When you are done adding new sources click the Ok button.

  • You can now search for a package and you will see all the available versions. Make sure you have the "Include prerelease" option selected.

PreviousKnown IssuesNextIntroduction

Last updated 1 year ago

Was this helpful?

Observable Wrappers: for objects implemented for third party and defined without the Observable attribute, we can create the in order to simulate the tracking behavior of an observable on those objects. For the moment, we have the following wrappers:

This project defines , controllers and s required to synchronize controls models defined in the project Mobilize.Web.BundleBasic with the corresponding component on the Front End side.

Observable Wrapper
mappers
DTO
http://ais-build-w7:81/nuget/ContinuousIntegration/
http://ais-build-w7:81/nuget/research/
http://ais-build-w7:81/nuget/webmap/
http://ais-build-w7:81/nuget/utilities/