# Glossary

## Client Helpers (Basic Features) <a href="#client-helpers-basic-features" id="client-helpers-basic-features"></a>

* Updated frontend helpers to work with this latest versions using `Angular` and `Kendo UI` Components for Angular.

## Web Server (Basic Features) <a href="#web-server-basic-features" id="web-server-basic-features"></a>

* Support for `ASP.Net Core` applications
* [**Data-Query**](https://mobilizedocs.azurewebsites.net/backend/docs/features/dataquery.html): Mechanism to Query for specific data to the WebServer using `ASP.Net Core WebAPI`.

## C# Language support <a href="#c-language-support" id="c-language-support"></a>

* C# 5 Syntax is fully supported

## Application State <a href="#application-state" id="application-state"></a>

* [**Memory Management**](https://mobilizedocs.azurewebsites.net/backend/docs/features/memorymanagement.html) Automatic memory management on web environments
* [**Static Members**](https://mobilizedocs.azurewebsites.net/backend/docs/features/static.html) Support for static elements on web environments
* [**Basic Collections Support**](https://mobilizedocs.azurewebsites.net/backend/docs/features/basiccollections.html) Support for `List` and `Dictionary` and data queries for frontend support.
* [**Model Synchronization**](https://mobilizedocs.azurewebsites.net/backend/docs/features/modelsync.html) Moving data between the backend and the frontend, introduction to `Mappers` and `Data Transfer Objects(DTO)`.
* **Serialization**: Persist the state of object between requests allows the system to unload unneeded objects from memory.
* [**Error Handling**](https://mobilizedocs.azurewebsites.net/backend/docs/features/error.html): `WebMAP Core Services` offers a mechanism to report and handle exceptions

## Web Server: <a href="#web-server" id="web-server"></a>

* [**Session Management**](https://mobilizedocs.azurewebsites.net/backend/docs/features/session.html): Support for session management out the box using the provided mechanism of `ASP.Net Core`.
* [**Flexible Communication Protocol**](https://mobilizedocs.azurewebsites.net/backend/docs/features/protocol.html): Flexible protocol that allow `WebMAP5` to synchronize state and execute custom actions.

## User Interaction <a href="#user-interaction" id="user-interaction"></a>

* **Desktop Compatibility Platforms**: This layer allows `WebMAP5` to support different technologies, for example `WinForms` or `Power Builder`. These `Desktop Compatibility Platforms` consist of all the Models, Event Handler Mechanism, [Mappers, DTOs](https://mobilizedocs.azurewebsites.net/backend/docs/features/dto-mappers.html), Error Handling, `Server Commands` and [Observable Wrappers](https://mobilizedocs.azurewebsites.net/backend/docs/features/observable-wrapper.html) needed for each technology. Each `DCP` is pluggable so different desktop layers can be supported by the same `WebMAP Core Services` layer. At the moment just the `Windows Forms` platform is supported, and the `Power Build` being under construction.
* [**Modal Dialog**](https://mobilizedocs.azurewebsites.net/backend/docs/features/modalmanagement.html): The `WebMAP Core Services` provide a mechanism that allows for the server to stop the execution of a `request` and wait for a response from the user and then continue with the execution of the previous request.

## Debugging <a href="#debugging" id="debugging"></a>

* The debugging experience is improved by hiding `WebMAP Core Services` tasks from the user application code, and leaving the original `Bussiness logic` unmodified.
* **Loggin**: An extensible logging mechanism is provided by WebMAP. This eases the debugging process, allowing to easily pinpoint a problem.

## Weaving on WebMAP5 <a href="#documentation" id="documentation"></a>

* On WebMAP 5, *weaving* is leveraged to perform some of the changes required so the code can be run on web environments. &#x20;

By *weaving* we mean a process that can insert or modify the application code during the compilation process, but in a way that the developers do not have to worry about these modifications, and also in a way that can improve performance, compared with others interception solutions, because it will add little overhead during runtime.

**How does Weaving Work?**

A program that takes source, and modifies it by inserting aspect-specific logic at joint points. The result are sections of non-visible code in the original code that are executed during runtime.

The point is to keep the modifications required to interact with WebMAP Core Services. To know where and what should we weave into, attributes are used as markers and during the *weaving analyzer* process the class meta data is recollected and determine the elements that need to be generated.


---

# 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/powerbuilder-to-java/glossary-1.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.
