CodeLogic 3

CodeLogic 3 is a .NET 10 framework for lifecycle-managed applications with libraries, plugins, configuration, localization, events, and health checks.


Three Layers

  • IApplication for your host application
  • ILibrary for reusable services that start before the app
  • IPlugin for optional app-managed extensions

All three use the same four phases:

Phase Method Purpose
Configure OnConfigureAsync Register config and localization models
Initialize OnInitializeAsync Read config and prepare services
Start OnStartAsync Begin processing and background work
Stop OnStopAsync Shut down cleanly

Startup Order

ConfigureAsync()
  application.OnConfigureAsync()
  libraries.OnConfigureAsync()
  generate/load config and localization files

StartAsync()
  libraries.OnInitializeAsync()
  libraries.OnStartAsync()
  application.OnInitializeAsync()
  application.OnStartAsync()

StopAsync()
  application.OnStopAsync()
  plugins.OnUnloadAsync()
  libraries.OnStopAsync()

Libraries are initialized and started before the application, so application startup can safely depend on library services already being ready.


Quick Start

using CodeLogic;

var result = await CodeLogic.InitializeAsync(o =>
{
    o.AppVersion = "1.0.0";
});

if (result.ShouldExit) return;

await Libraries.LoadAsync<MyDatabaseLibrary>();
CodeLogic.RegisterApplication(new MyApp());

await CodeLogic.ConfigureAsync();
await CodeLogic.StartAsync();

if (result.RunHealthCheck)
{
    var report = await CodeLogic.GetHealthAsync();
    Console.WriteLine(report.ToConsoleString());
    await CodeLogic.StopAsync();
    return;
}

await Task.Delay(Timeout.Infinite);

Key Features

Feature Description
Application lifecycle Your app participates in the same lifecycle as libraries
Library system Reusable services with manifests, dependencies, and health checks
Plugin system Optional app-managed plugins with runtime loading support
Configuration Per-component JSON config with generation and validation
Localization Per-component localization files with culture fallback
Event bus Shared event bus across libraries, app, and plugins
Health checks Aggregate reports plus scheduled per-component events
CLI flags --version, --info, --health, --generate-configs, --generate-configs-force, --dry-run

Directory Layout

CodeLogic/
  Framework/
    CodeLogic.json
    CodeLogic.Development.json
    logs/
  Application/
    config.json
    localization/
    logs/
    data/
  Libraries/
    CL.MyLibrary/
      config.json
      localization/
      logs/
      data/
  Plugins/

Next Steps