# Overview

The DCP is a set of libraries created to bring into a web application a compatible and equivalent behavior found in a legacy application developed in a desktop framework. For the WebMap architecture the DCP is one of the most important components since it provides and controls the way in which the application behaves to act in an equivalent manner as the original application does.

The DCP provides the following:

* GUI life-cycles: application events such as load, close, click, right click, key up, key down, among many others.
* Models: is a data representation of an object allocated in memory during the application runtime, they can be either visual models that represent an object also present in the front-end application or a non-visual model which would only be used by the back-end application.
* Back-end controls: A model that specifically used to represent a visual control component that is also present in the front-end application and get synchronized between both. It holds state and operations to provide compatibility with the original language control objects, also known as Control Models.
* Modal Dialog and Modal Messages.
* Application State.
* Command/Event execution.
* Controllers: is a Web API Controller class used to enable data query requests, mainly for heavy data loading controls such as a grid view, tree view, list box, among others; for which is needed to use an API call to fetch their data from the back-end to the front-end in separate structure from their models.
* Data Transfer Objects (DTO): is a plain CSharp object used to transfer data between the back-end and front-end applications.
* Mappers: is a class that takes a control model and maps it to a data transfer object and vice versa.
* Observable Wrappers: An observable wrapper is a class used to hold the state of an object that cannot be converted directly by the Conversion Tool or that is part of a third-party library.

A WebMap project provides two main project libraries that are required to compose a WebMap DCP, the **Bundle library** and the **DTO library**.

The DTO library is used to implement the communication layer between the front-end and the back-end applications. Which the necessary objects to synchronize the applications state back and forth.

![](/files/70yfwLIRSV4FfojXOBuB)

&#x20;


---

# 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/general/backend/dcp-desktop-compatibly-platform/overview.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.
