Added the Application Hosting Layer - #24
Merged
Merged
Conversation
Added `CliApplication`, `CliApplicationBuilder`, `CliCommandDispatcherService`, `CliCommandLineArguments`, and `ExitCode`, giving consumers the ASP.NET Core-style `CreateBuilder(args)` / `Build()` / `Run()` bootstrap the design docs describe. The builder wraps a `HostApplicationBuilder` and the application wraps the built `IHost`, both through composition rather than inheritance, since the concrete host types are `sealed`. The dispatcher is a hosted service that currently reports no command has been wired up yet, because the command model does not exist, and requests shutdown afterward so a CLI process exits instead of running forever like a web server. Pinned the .NET SDK version in a new `global.json` (`rollForward` disabled) and turned on `RestorePackagesWithLockFile` for `clinet-core` and `sample-app`, adding their `packages.lock.json` files. `clinet-core` now references `Microsoft.Extensions.Hosting`. Documented the new API in a new User Manual article, Building Applications, linked from the User Manual index. Updated the C# style, dependency-management, and file-naming docs, and `CLAUDE.md`, to match: XML documentation is now required on every member including `private` ones, `#region` blocks are always used with a fixed ordering, and `global.json` is called out as a pinned dependency. Added `dotnet.defaultSolution` to the shared VSCode settings so the C# extension finds the solution despite it living under `source/`, and added a few missing words to the CSpell dictionary. Also, added C# formatting to dprint. This work was done with the help of Claude Code. The design and architecture of the hosting layer was created with the help of Claude Code, and the documentation was largely written by Claude Code. Co-Authored-By: Claude <noreply@anthropic.com>
lecode-official
force-pushed
the
add-hosting
branch
from
August 1, 2026 15:46
e3743c6 to
30ea580
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added
CliApplication,CliApplicationBuilder,CliCommandDispatcherService,CliCommandLineArguments, andExitCode, giving consumers the ASP.NET Core-styleCreateBuilder(args)/Build()/Run()bootstrap the design docs describe. The builder wraps aHostApplicationBuilderand the application wraps the builtIHost, both through composition rather than inheritance, since the concrete host types aresealed. The dispatcher is a hosted service that currently reports no command has been wired up yet, because the command model does not exist, and requests shutdown afterward so a CLI process exits instead of running forever like a web server.Pinned the .NET SDK version in a new
global.json(rollForwarddisabled) and turned onRestorePackagesWithLockFileforclinet-coreandsample-app, adding theirpackages.lock.jsonfiles.clinet-corenow referencesMicrosoft.Extensions.Hosting.Documented the new API in a new User Manual article, Building Applications, linked from the User Manual index. Updated the C# style, dependency-management, and file-naming docs, and
CLAUDE.md, to match: XML documentation is now required on every member includingprivateones,#regionblocks are always used with a fixed ordering, andglobal.jsonis called out as a pinned dependency. Addeddotnet.defaultSolutionto the shared VSCode settings so the C# extension finds the solution despite it living undersource/, and added a few missing words to the CSpell dictionary. Also, added C# formatting to dprint.This work was done with the help of Claude Code. The design and architecture of the hosting layer was created with the help of Claude Code, and the documentation was largely written by Claude Code.
Closes issue #16.