First Success Path
Run the existing minimal web example and verify the first response before reading deeper docs.
Source of truth
Run the smallest web example first. Do not install optional packages yet.
From the repository root:
Bashdotnet run --project examples/web-app -- --port 5055
Then open http://127.0.0.1:5055 or run:
Bashcurl http://127.0.0.1:5055
Expected response:
Plain textHello World from the root!
That proves the base ForgeTrust.AppSurface.Web path: a root module, the AppSurface startup pipeline, and one mapped endpoint.
What This Example Shows
The example uses WebApp<ExampleModule>.RunAsync(...) and maps the root endpoint from web options. The module also contributes its own endpoint at /module.
Try it:
Bashcurl http://127.0.0.1:5055/module
Expected response:
Plain textHello from the example module!What This Example Does Not Prove
This first run does not prove the status-page behavior used later in the evaluator path. It only proves the base web host starts and the module contributes behavior.
For the status-page proof, read From Program.cs to an AppSurface Module. That page points at the Web package behavior and the tests that verify browser status pages and production exception pages.
Pitfalls
- Pass
--port 5055when following docs. Without it, AppSurface may choose a deterministic development port for your worktree. - Start with
ForgeTrust.AppSurface.Webfor a normal web app. Add optional modules only when the package chooser points to them. - Treat the startup log as the source of truth if you choose a different port.
Decide when plain ASP.NET Core startup code is enough and when an AppSurface module makes a setup concern clearer.
See browser status pages and production error pages move from local startup policy to a named AppSurface Web behavior contract.
This example shows how to build a minimal ASP.NET Core application using **ForgeTrust.AppSurface.Web**.
The **ForgeTrust.AppSurface.Web** package provides the bootstrapping logic for building ASP.NET Core applications using the AppSurface module system. It sits on top of the compilation concepts defined in `ForgeTrust.AppSurface.Core`.