# Glossary

## General Terms

**Back-End**: Refers to the server-side of an application.

**Front-End**: Refers to the client-side of an application. It means, the part of a website the user interacts with.

**Server-Client architecture**: Computing model in which the server hosts, delivers, and manages most of the resources and services to be consumed by the client.

**Angular component**: Component that controls a patch of the screen called a view. A component is composed of three elements: A TypeScript class, HTML, and CSS files. A System.Windows.Forms will be represented as a component in the user interface.

**JavaScript Object Notation (JSON)**: Lightweight format for storing and transporting data from the Back-End to the Front-End.

**HyperText Markup Language (HTML)**: Standard language for the creation of web pages.

**Cascading Style Sheets (CSS)**: Language used to style the HTML files.

## Mobilize's Specific Terms

**Language Element:** It is the smallest piece in which the code will be divided so it can be processed by WebMAP: WinForms to Web for its conversion.

### [Core Services](https://app.gitbook.com/@mobilizenet/s/webmap/general/backend/architecture/@drafts)

All the components shown on the screen of a WebMAP application are tracked by the BackEnd. The Core Services is the architecture in charge of tracking the life cycle of these components; for instance, what text should a label has, what action a button should do, etc. To fulfill this task the Core Services also performs the following jobs:

1. Session management of every client.
2. Observable and Non-Observable objects management.
3. Management of all the references between objects.
4. Lazy loading: retrieve Observable objects from storage just when they are needed.
5. Change tracking and report of the objects.
6. Routing for WebAPI.
7. Sending and receiving data between client and server.&#x20;

The Core Services and its functionalities are provided by the Mobilize.WebMap.CoreServices.All NuGet.

### [Desktop Compatibility Platform (DCP)](https://app.gitbook.com/@mobilizenet/s/webmap/general/backend/architecture/@drafts)

The DCP is the module that manages the behaviors of the [ Windows Forms controls ](https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms?view=netcore-3.1)used to create the graphical user interface, such as modal dialogs, modal messages, application states, commands/event executions, mappers, etc.&#x20;

The DCP and its controls are provided by the Mobilize.Web.BundleBasic.All.

### [Weaving](https://app.gitbook.com/@mobilizenet/s/webmap/general/backend/weaving-on-webmap/@drafts)

Weaving is a process that modifies the application code, during the compilation process, with the intention of adding the necessary functionality to interact with the Core Services without modifying the original code. To know where and what should be weave the attributes as `[Observable]` and `[Intercepted]` are used as markers.

The Weaving mechanism is provided by the Mobilize.Weaving.WebMapExtensions.All NuGet.

### [Observable Object](https://app.gitbook.com/@mobilizenet/s/webmap/general/backend/create-an-observable-object/@drafts)

This is the most important entity in a WebMAP application environment, and everything is developed in terms of managing the life-cycle of these elements. An Observable is an object in which you have the interest of:

* Detect changes.
* Persist state of an object during the lifetime of the application.
* Lazy Loading.
* Reference management  .

Any class with the `[Observable]` attribute will be tracked by the BackEnd.

### Non-Observable Object

These are objects that cannot be tracked due to not having access to the source code to add the `[Observable]` attribute; for example, objects declared inside DLLs files of a third party.

### [Observable Wrapper](https://app.gitbook.com/@mobilizenet/s/webmap/general/backend/create-an-observable-wrapper/@drafts)

Allows the Core Services to monitor the state of non-observable objects at a macro level, meaning that it will notice that an object changed but cannot determine which property inside the object exactly.

### Intercepted Property

These are properties inside an observable class marked with the `[Intercepted]` attributte which will notify its changes to the BackEnd.

### Control&#x20;

A control is a model defined inside the DCP that implements the behavior of [Windows Forms controls](https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms?view=netcore-3.1) in a web environment.

### Stubs

Stubs are templates which will be placed instead of the language elements that do not have an implementation in the DCP to ensure the converted application can be compiled.


---

# 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/winforms/glossary.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.
