LogoLogo
WinForms to WebPowerBuilder to .NETPowerBuilder to Java
  • WebMAP Documentation | Mobilize.Net
  • WinForms
    • Introduction
    • Getting Started
    • Conversion Process
    • Post-Conversion
    • Extend or Modify the Converted Application
      • NoWebMap Forms Winforms
        • How to add a new Form
        • Adding the created form to the migrated App
        • Interacting with the application data
        • Call the custom API
        • Interaction between the no webmap added Form and the WebMap components
      • Adding a component
      • Adding a component dynamically
      • Add a new control model
      • Switching CSS theme
      • Adding new window
      • Conversion Configuration
        • WebMAP configuration file
        • Stub Filter
      • Adding Non-WebMap Angular Forms
      • Adding FrontEnd Handler to a ToolStripMenuItem
      • Changing ToolStripButton icons
      • Adding new items to existing toolbar
      • Adding FrontEnd element properties and JS listeners
      • Adding FrontEnd output handlers
      • Access FrontEnd components
      • Create custom components based on existing WebMap Component
      • Override FrontEnd methods
    • Assessment Mode
    • Errors and Troubleshooting
      • How to resolve broken reference problems with VBUC
    • Portability
    • Glossary
    • Release Notes
    • Internal Demos
    • Known Issues
    • WinForms DCP
  • WebForms
    • Introduction
    • Overview
    • Desktop Compatibility Platform (DCP)
      • Pages and Master Pages
      • GridView and DataList data synchronization
      • HTTP objects
    • Post-Conversion
    • Extend or Modify the Converted Application
      • Adding FrontEnd validator
      • Adding Page
      • Adding MasterPage
    • Designer classes on WebForms Conversion Tool
    • Errors and Troubleshooting
      • How fix Solution when have been added website from filesystem without project file
    • Release Notes
  • PowerBuilder to .Net
    • Introduction
    • Getting Started
      • Conversion Tool
    • Desktop Compatibility Platform (DCP)
      • Data Manager
    • Reports
      • Report Rendering in Modernized Code
      • ReportWatcher Service Configuration
      • Data Manager to RDL Conversion
      • Reporting Service Internals
      • Troubleshooting
  • PowerBuilder to Java
    • Introduction
    • Getting started
    • Post-Conversion
      • Setup PBJava Environment
      • Architecture
      • App Start
    • Glossary
    • Errors
    • Glossary
    • FAQ
      • How to create a new Control
      • How to create a new Screen
      • What is the Mobilize.WebMAP.CoreServices.All?
      • What is the DesignerAttribute?
      • What is the InterceptedAttribute?
      • What is the InterceptedAttribute?
      • What is the ObservableAttribute?
      • What is the Mobilize.Weaving.WebMAPExtensions.All?
  • General
    • FrontEnd
      • Documentation
        • Webforms Angular Components
          • Web Components
            • Base Components
              • BaseValidator Component
            • KendoUI Components
              • CompareValidator
              • CustomValidator
              • RegularExpressionValidator
              • RequiredFieldValidator
              • ValidationSummary
          • Directives
          • AJAX Web Components
            • AjaxCalendar
            • AjaxModalPopupExtender
          • Ajax Interaction Services
        • Client Core
          • WebMap's Client Core
        • Angular Client
          • Introduction
          • WebMap Service
          • WebMap Interceptor Service
        • Base Components
          • Introduction
          • Components
            • Container
            • Control
            • ControlContainer
            • FormsContainer
            • Loading
            • Stub
        • Winforms Angular Components
          • Web Components
            • Base Components
              • Control Component
              • Form Container
              • Grid Component
              • Style
            • KendoUI Components
              • AdoDataControl
              • Button
              • C1TrueDBGrid
              • CheckBox
              • CheckedListBox
              • ComboBox
              • ContextMenuStrip
              • DataGridView
              • DataGridViewFlex
              • DateTimePicker
              • FileDialog
              • GroupBox
              • Label
              • ListBox
              • ListView
              • MaskedTextBox
              • MessageBox
              • NumericUpDown
              • Panel
              • PictureBox
              • PrintDialog
              • ProgressBar
              • RadioButton
              • RichTextBox
              • StatusStrip
              • Stup
              • TabControl
              • TabPage
              • TextBox
              • Timer
              • ToolStrip
              • TreeView
              • WebBrowser
              • Window
            • JQuery Web Components
          • WebMap FrontEnd Architecture
          • Migrated Structure
          • Setup
            • Front-End setup and compilation
            • Components Manual
            • Browser Support
            • Unit Test Manual
            • Development Process
            • Setup AOT/JIT Compilation
          • Decorators
            • Server Event
          • Conventions
            • Application Structure and NgModules
            • Coding
            • Components
            • Data Service
            • Directives
            • Lifecycle hooks
            • Names
            • Services
        • PowerBuilder Kendo Components
          • Base Components
            • base-component
            • column-control
            • controlcontainer
          • Data Manager Componets
            • base-data-manager
            • data-manager-control
            • data-manager-control-base
            • dw-checkbox
            • dw-column
            • dw-complexNumericMaskComponent
            • dw-compute
            • dw-date-time-edit-mask
            • dw-dropdowndatawindow
            • dw-edit
            • dw-edit-mask
            • dw-radio-button
            • dw-simple-numeric-edit-mask
            • dw-string-edit-mask
            • dw-time-edit-mask
          • Window Components
            • basemask
            • graphics
            • w-checkbox
            • w-command-button
            • w-complex-numeric-mask
            • w-date-time-edit-mask
            • w-dropdownlistbox
            • w-group-box
            • w-line
            • w-listbox
            • w-maskedtextbox
            • w-mdiclient
            • w-menu
            • w-multiline
            • w-picture
            • w-picture
            • w-radiobutton
            • w-rectangle
            • w-simple-numeric-edit-mask
            • w-single-line-edit
            • w-statictext
            • w-string-edit-mask
            • w-time-edit-mask
            • w-toolbar
            • w-toolbaritem
            • w-user-object
            • w-window
          • Services
            • DmInteractionService
          • DataManagerEvents
          • FocusManager guide
      • Api Documentation
        • WebMap Silverlight
        • WfNetC1Components
        • WebFormsComponents
      • Guides
        • Setup NPM package registry in the workspace
        • How to Setup WebMap Applications To Run Over SubDomains or WebApplications In IIS
        • Deploy several WebMap Apps in the same Server
        • Update to Angular 16
        • Appearance
          • How to change the CSS
          • How to override the style for a component
        • Component maintenance
          • How link WebMap package to the migrated Application
          • How to resolve broken reference problems with VBUC
          • How to test a local WebMap Components package
          • How to add a new component in a migrated application
          • How to update a component
          • Dynamic Control Support
          • How to add new set of component with a different provider
          • How to test your component in the playground
          • Tools
        • WMLogger
          • How to use the WMLogger's instance
          • How to change log's level
          • How to add log tags
        • Integration test
        • Setup WebMap Applications to Run Front-End And Back-End In Separates Sites
          • Setup WebMap Applications To Run Front-End And Back-End In Separates Sites in Production (IIS)
        • Setup Migrated WebMap Applications To Run Front-end & Back-end In Separates Sites (Only development)
        • Initial Set Up
          • Software to Install
          • Necessary Repositories
      • Errors
      • Version Notes
        • Client Core
        • Angular Client
        • Web Base Components
        • Winforms Angular Components
        • PowerBuilder Kendo Components
      • Licenses
        • Client Core
        • Angular Client
        • Base Components
        • PB Kendo Components
        • WFNet Kendo Components
        • WebForms Components
        • WFNet Access Components
        • WFNet Janus Components
        • WFNet C1 Components
        • Silverlight wms-framework
        • Silverlight i-components
    • BackEnd
      • WebMAP From Scratch
      • Setup
      • DCP: Desktop Compatibly Platform
        • Overview
        • Library Bundles
          • Bundle Library
            • Create an Observable Object
          • Bundle DTO
            • DTO: Data Transfer Objects
              • Creating a DTO
            • Mappers
              • Create Mappers
            • Observable Wrappers
              • Create an Observable Wrapper
            • API/Controllers
      • Architecture
      • Weaving on WebMAP
      • Glossary
      • FAQ
        • How to create a new Control
        • How to create a new Screen
        • What is the Mobilize.WebMAP.CoreServices.All?
        • What is the DesignerAttribute?
        • What is the InterceptedAttribute?
        • What is the Mobilize.Extensions.Logging.RollingFile?
        • What is the ObservableAttribute?
        • What is the Mobilize.Weaving.WebMAPExtensions.All?
      • Licenses
        • PBNet DCP
        • WebFormsDCP
        • WFNet DCP
        • CoreServices
        • CoreServicesCommon
    • Request and Response
  • SCALABILITY
    • Introduction
    • Microservices
    • Containerizing a WebMap .Net Application with Docker
    • Vertical scalability
Powered by GitBook
On this page
  • Mobilize.WebMAP.Core
  • Mobilize.WebMAP.Messaging
  • Mobilize.WebMAP.Server
  • Mobilize.WebMAP.Host

Was this helpful?

  1. General
  2. BackEnd
  3. FAQ

What is the Mobilize.WebMAP.CoreServices.All?

Mobilize.WebMAP.CoreServices.All is a NuGet Packages. This Package depends on 5 specific packages which are related.

The intention of this NuGet is to encapsulate all the WebMAP Core packages into a single package, for an easy way to handle the version changing in the migrated solutions

The following packages compose the WebMAP Core Services. All of them are build together with the same version and depends on a specific version of the package Mobilize.WebMAP.Common

  1. Mobilize.WebMAP.Core

  2. Mobilize.WebMAP.Messaging

  3. Mobilize.WebMAP.Server

  4. Mobilize.WebMAP.Host

Mobilize.WebMAP.Core

This module is in charge of all task related to Observable objects. These tasks are:

  • Reference Management: Manage all references between Observables

  • Lazy Loading: Retrieve Observable objects from storage just when they are needed

  • Change Tracking and Report

  • Persistence of Observable objects

  • Manage of Non Observable objects (Observable Wrappers)

Many of these tasks are performed using a weaving mechanism. This Mechanism will apply changes to the objects marked as Observable, which allows these objects to be self-managed.

And basically, this module contains the following services:

  • IIdentifierService: Acts as the service who provides a source of unique identifiers across the servers. Actually, this is a Guid struct however is wrapped in this service to being able to change the implementation in the future.

  • IInstrumentationService: Acts as the service orchestrating multiple tasks like the Lazy Loading, Reference Management, Delta Tracking, and management of IObservable Wrappers. By acting as helper for weaved code, it is responsible of get/set operations required on intercepted properties.

  • IObservableWrapperCatalog: Acts as a service who holds the mappings of NonObservables types with its corresponding WrapperType.

  • IReferenceTraversalService: Acts as the service performing a traversal of memory graph (observables), recursively by expanding their references.

  • IReferenceService: Acts as the service who manages all the operations related with Reference Add or Remove and pushing this update to other dependencies.

  • IAssemblySharedStateLocator: Locator's for static class per assembly.

  • IObservableStorage: Acts as the service to load or store observable items in the storage.

  • IKeyValueStore: Acts as the service to store a key/value pair for any purpose.

  • ITransactionalStorageFactory: Acts as the service for creating a transactional storage.

  • ITrackingService: Acts as the service that tracks changes in all IObservable objects

Mobilize.WebMAP.Messaging

The Messaging Module is related to sending and receiving data between client and server.

It contains the MapperService and the MapperCatalog.

  • IMapperService: Acts as the service that manages the mapper mechanism for models. Specifically, it applies the deltas to be sent to the client side and it applies the deltas to be synchronized with back-end Observable Models.

  • IMapperCatalog: Acts as a catalog that keeps track of all the mappers registered during the start up of the application. It also verifies that there will not duplicate mappers.

In summary, the MapperService uses a catalog of mappers which are associated by Type. A DTO will be sent to the client when we need to synchronize state. All DTO's must implement the IDataTransfer interface. This allows us to specify Observable's references and grant a MapperId. As a restriction for the objects that we sent via DTO, every class must be a concrete class, since we don't allow inheritance due to the fact that we need to know for sure what we are sending and an abstract class won't tell us that.

Mobilize.WebMAP.Server

This module consists of a set of Middlewares that handles the processing of the web request, this includes:

  • Session Management

  • Security (Anti-forgery Token)

  • Routing for WebAPI

  • Create of the Response

  • Formatting of Message

This module contains the following services:

  • IAsyncService: Asynchronous Execution Service.

  • ICoreServices: Acts as the service locator for the Core Services of WebMAP such as: IInstrumentationService, IIdentifierService, IAsyncServices.

  • IDeliveryService: Acts as the service for creating the response to be sent to the client side.

  • IEntranceService: Acts as the service for processing the request coming from the client side.

  • IFormattingService: Acts as the service for formatting the data coming from the client side and formatting the data to be sent to the client side.

  • IRequestQueueService: Acts as the service that manages all request queue for each active session. WebMAP Request are transactional. So if a WebMAP request arrives while another WebMAP request has been received for the same session it must be queued.

  • ISharedDataService: Acts as the service that moves Core Context and Commands across threads.

  • IUnitOfWork: Acts as a service that keeps track of everything you do during a request that can affect the storage, and figures out everything that needs to be done to alter the database as a result of your work. At the end of each request, the unit of work should be closed in order to persist all the changes done during the processing of the request.

Mobilize.WebMAP.Host

This module provides extension methods that registers all the WebMAP back-end services described previously into the IServiceCollection and registers all the middlewares into the IApplicationBuilder.

PreviousHow to create a new ScreenNextWhat is the DesignerAttribute?

Last updated 4 years ago

Was this helpful?