Skip to main content

Curiosus.Hosting.Web

NuGet Downloads Coverage

Bootstrapper for ASP.NET Core apps built on Curiosus.Hosting: YAML config with validation, NLog, Kestrel or IIS setup, thread pool tuning and app initializers, plus ConfigureCuriosusMvc with the common MVC setup.

Installation​

dotnet add package Curiosus.Hosting.Web

Usage​

public class AppConfiguration : CuriosusWebAppConfiguration
{
public AppConfiguration()
{
AppName = "Sample Web App";
}
}

public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
var configuration = services.BuildServiceProvider().GetRequiredService<AppConfiguration>();
services.ConfigureCuriosusMvc(configuration);
}

public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapControllers());
}
}

// Program.cs
var bootstrapper = new CuriosusWebAppBootstrapper<CuriosusCLIArguments, AppConfiguration, Startup>();
return await bootstrapper.RunAsync(args);

config.yml must set either Urls or a Kestrel section (not both), unless UseIISIntegration is true:

Urls: http://127.0.0.1:5000
Log:
LogConfigurationPath: ./NLog.config
LogOutputDirectory: ./logs
ThreadPool:
MinWorkerThreads: 64
SensitiveDataFieldNames:
- password

Kestrel is passed to Kestrel as is (e.g. Kestrel:Endpoints:Https:Url and Certificate:Path/Password). ConfigureCuriosusMvc adds MVC with string trimming for bound values, localized model binding messages, data annotations localization, Razor runtime compilation, IMemoryCache and a SensitiveDataProtector for SensitiveDataFieldNames. Implement IWebAppConfigurationWithPublicDomain to require and register PublicDomain.

See also​