CodeLogic 3
CodeLogic 3 is a .NET 10 framework for lifecycle-managed applications with libraries, plugins, configuration, localization, events, and health checks.
Three Layers
IApplicationfor your host applicationILibraryfor reusable services that start before the appIPluginfor 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/