Curiosus.Hosting.Web
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
- Curiosus.Hosting — bootstrappers for console tools and services
- Curiosus.Tools.Web — middleware, model binders and web helpers
- Sample web app
- Curiosus.Utils — all packages