> For the complete documentation index, see [llms.txt](https://docs.gapvelocity.ai/webmap/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gapvelocity.ai/webmap/webforms/desktop-compatibility-platform-dcp.md).

# Desktop Compatibility Platform (DCP)

## WebForms DCP

This component in general is an extension of Mobilize.Web.BundleBasic that Includes the support of controls, helper, mappers and behaviors from the WebForms platform on your converted web application. Also, it contemplates what is the purpose of several features added in the currently supported platforms to allow us to have a native web interaction equivalent for a WebForms application.

{% hint style="info" %}
For a better understanding of this section, we recommend that each user first visit and read the section [DCP: Desktop Compatibly Platform](/webmap/general/backend/dcp-desktop-compatibly-platform.md)
{% endhint %}

The WebForms's DCP includes the following three projects:

* **Mobilize.Web.BundleBasic.WebForms**: This project contains model patterns and other mechanisms that allow the management of the visual structure in the web client on the server.
* **Mobilize.Web.BundleBasic.WebForms.DTO**: This project contains transfer patterns and other controls that allow us to send or receive client-server-client information.
* **Mobilize.Web.BundleBasic.WebForms.Task**: This project is used as a common dependency for the Mobilize.Web.BundleBasic.All package update.

### Mobilize.Web.BundleBasic.WebForms

The **BundleBasic.WebForms** (WebForms DCP) library contains **Control Models**, **GUI Life cycle** mechanism, **Application State** mechanism, among others that are vital to keep the original application behavior in the **back-end** of the converted code.

The WebForms DCP package also provides a series of mechanisms designed to emulate specific behaviors that are natively implemented by the WebFoms framework, such as:

* **DataBinder**: A mechanism that allows managing the handling of values through bindings from the client to the server or vice versa, thus achieving an equivalent behavior.
* **LoadPageCommand**: A mechanism that allows controlling the management of binding values of the client - server - client, thus achieving an equivalent behavior.
* **Cache**: Object that allows us to have a temporary storage like WebForms usable in the WebMap platform.

The following list enumerates the currently supported controls from the WebForms platform on this project:

<table data-header-hidden><thead><tr><th width="249.33333333333331"></th><th></th><th></th></tr></thead><tbody><tr><td>BaseDataList</td><td>RegularExpressionValidator</td><td>MasterPage</td></tr><tr><td>DataList</td><td>RequiredFieldValidator</td><td>Page</td></tr><tr><td>PagedDataSourceController</td><td>ValidationSummary</td><td>Panel</td></tr><tr><td>GridView</td><td>BaseDataBoundControl</td><td>StateBag</td></tr><tr><td>HtmlAnchor</td><td>Button</td><td>StateItem</td></tr><tr><td>HtmlContainerControl</td><td>CheckBox</td><td>Style</td></tr><tr><td>HtmlControl</td><td>ContentPlaceHolder</td><td>Table</td></tr><tr><td>HtmlForm</td><td>Control</td><td>TableCell</td></tr><tr><td>HtmlImage</td><td>CssStyleCollection</td><td>TableCellCollection</td></tr><tr><td>HtmlInputControl</td><td>DataControlFieldCollection</td><td>TableItemStyle</td></tr><tr><td>HtmlInputFile</td><td>DropDownList</td><td>TableRow</td></tr><tr><td>HtmlInputHidden</td><td>HttpSessionState</td><td>TableRowCollection</td></tr><tr><td>HtmlTableCell</td><td>HyperLink</td><td>TemplateControl</td></tr><tr><td>HtmlTableRow</td><td>Image</td><td>TextBox</td></tr><tr><td>ListControl</td><td>Label</td><td>Unit</td></tr><tr><td>ListItem</td><td>LinkButton</td><td>UpdatePanel</td></tr><tr><td>CompareValidator</td><td>Literal</td><td>UserControl</td></tr><tr><td>CustomValidator</td><td>DataBinder</td><td>WebControl</td></tr></tbody></table>

### Mobilize.Web.BundleBasic.WebForms.DTO

This project includes all the data transfer objects used to send the data from the server to the client, the Mobilize.Web.DataTransfer.WebControl is used by default, a list of them follows:

<table data-header-hidden><thead><tr><th width="249.33333333333331"></th><th></th><th></th></tr></thead><tbody><tr><td>BaseValidator</td><td>HyperLink</td><td>Style</td></tr><tr><td>Button</td><td>HyperLinkField</td><td>Table</td></tr><tr><td>CheckBox</td><td>Label</td><td>TableCell</td></tr><tr><td>CompareValidator</td><td>Literal</td><td>TableItemStyle</td></tr><tr><td>CustomValidator</td><td>NavigateToPageEventArgs</td><td>TableRow</td></tr><tr><td>DataList</td><td>Page</td><td>TextBox</td></tr><tr><td>GridView</td><td>PageType</td><td>ValidationSummary</td></tr><tr><td>GridViewPageEventArgs</td><td>Panel</td><td>WebControl</td></tr><tr><td>GridViewSelectEventArgs</td><td>RegularExpressionValidator</td><td></td></tr><tr><td>GridViewSortEventArgs</td><td>RequiredFieldValidator</td><td></td></tr></tbody></table>

Contains the following list of controllers:

| DataListController | DropDownListController | GridViewController |
| ------------------ | ---------------------- | ------------------ |

List of mappers:

<table data-header-hidden><thead><tr><th width="292.99145704793546"></th><th width="214.87567707873188"></th><th></th></tr></thead><tbody><tr><td>BaseValidatorMapper</td><td>GridViewSelectEventArgMapper</td><td>RegularExpressionValidatorMapper</td></tr><tr><td>ButtonMapper</td><td>GridViewSortEventArgMapper</td><td>RequiredFieldValidatorMapper</td></tr><tr><td>CheckBoxMapper</td><td>HyperLinkFieldMapper</td><td>TableCellMapper</td></tr><tr><td>CompareValidatorMapper</td><td>HyperLinkMapper</td><td>TableMapper</td></tr><tr><td>ContentPlaceHolderMapper</td><td>LabelMapper</td><td>TableRowMapper</td></tr><tr><td>CustomValidatorMapper</td><td>LiteralMapper</td><td>TemplateControlMapper</td></tr><tr><td>DataListMapper</td><td>NavigateToPageEventArgMapper</td><td>TextBoxMapper</td></tr><tr><td>GridViewMapper</td><td>PageChangeEventMapper</td><td>ValidationSummaryMapper</td></tr><tr><td>GridViewPageEventArgsMapper</td><td>PanelMapper</td><td>WebControlMapper</td></tr></tbody></table>
