# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gapvelocity.ai/webmap/webforms/desktop-compatibility-platform-dcp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
