WebMAP: WinForms to Web is a tool designed to convert .NET Framework apps based on C# and Windows Forms to a modern web architecture. WebMAP WinForms Glossary documentation.
Windows Forms (WinForms): Windows Forms is a Graphical User Interface (GUI) class library which is bundled in .Net Framework. Its main purpose is to provide an easier interface to develop desktop applications.
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.
Kendo UI: HTML5 user interface framework for building interactive and high-performance websites and applications.
Angular: Web framework, which provides the necessary tools to build a web application while also defining how it should be designed and how the code should be organized.
Angular component: Component that controls a patch of the screen called a view. A component is composed of three elements: JSON, HTML, and CSS files. A System.Windows.Forms will be represented as a component in the user interface.
HyperText Markup Language (HTML): Standard language for the creation of web pages.
Cascading Style Sheets (CSS): Language used to style the HTML files.
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.
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.
The Core Services and its functionalities are provided by the Mobilize.WebMap.CoreServices.All NuGet.
The DCP is the module that manages the behaviors of the Windows Forms controls used to create the graphical user interface, such as modal dialogs, modal messages, application states, commands/event executions, mappers, etc.
The DCP and its controls are provided by the Mobilize.Web.BundleBasic.All.
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
[Intercepted]are used as markers.
The Weaving mechanism is provided by the Mobilize.Weaving.WebMapExtensions.All NuGet.
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.
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.
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.
These are properties inside an observable class marked with the
[Intercepted]attributte which will notify its changes to the BackEnd.
A control is a model defined inside the DCP that implements the behavior of Windows Forms controls in a web environment.
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.