Platform Boot Process

Introduction

The boot process is the runtime entry point into BPUA. It begins before any use case is activated and before any request handler is resolved. Its job is to transform a host process into a running BPUA platform.

BPUA Boot Process Example

WebApplicationBuilder webApplicationBuilder = WebApplication.CreateBuilder(args);

BPUAPlatformBootstrapper bootstrapper = new BPUAPlatformBootstrapper();
bootstrapper.BootBPUAPlatform(webApplicationBuilder.Environment.ContentRootPath, webApplicationBuilder.Environment.IsDevelopment());

What Happens During Boot

In the current implementation, the boot sequence is straightforward:

  1. Store the host executable or content-root path and the environment flag.
  2. Load application configuration from appsettings.json and an optional environment-specific file.
  3. Calculate the physical path to the plugin folder, from which use case assemblies will be loaded dynamically.
  4. Load the core static assemblies that represent the built-in application layers and orchestration infrastructure.
  5. Load use case assemblies from the configured plugin folder.
  6. Initialize the BPUAApplication singleton with configuration and plugin path.
  7. Create and register a UseCaseActivator so additional use cases can be loaded on demand.

Why the Boot Process Is Important

The boot process is the point at which the host stops being only a web or desktop application and becomes a BPUA host. After boot, the runtime knows where plugin assemblies live, which built-in services exist, and how future use cases can be activated.

Host Responsibility Versus Platform Responsibility

The host remains responsible for creating the outer process and its normal environment. BPUA remains responsible for:

Summary

Boot is not only startup code. In BPUA, boot is the architectural boundary where the platform runtime is assembled and made ready for process execution.

Table of Content BPUA Chapter Previous: Structure of a BPUA Application Next: BPUAPlatformBootstrapper

 


Business Process Programming in .Net
© 2004-2026 Laskarzhevsky Software Inc.
Unless otherwise noted, the content of this website is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
Code examples are provided under the MIT License.
You are free to share and adapt the material provided that appropriate credit is given and any modifications are clearly indicated.
The information provided on this website is for educational purposes only.
The author and publisher make no warranties regarding the completeness or suitability of the information and are not responsible for any damages resulting from its use.