PiBox.Hosting.WebHost 1.0.54

dotnet add package PiBox.Hosting.WebHost --version 1.0.54
NuGet\Install-Package PiBox.Hosting.WebHost -Version 1.0.54
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PiBox.Hosting.WebHost" Version="1.0.54" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PiBox.Hosting.WebHost --version 1.0.54
#r "nuget: PiBox.Hosting.WebHost, 1.0.54"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PiBox.Hosting.WebHost as a Cake Addin
#addin nuget:?package=PiBox.Hosting.WebHost&version=1.0.54

// Install PiBox.Hosting.WebHost as a Cake Tool
#tool nuget:?package=PiBox.Hosting.WebHost&version=1.0.54

PiBox.Hosting.Webhost

PiBox framework Nuget Nuget

PiBox.Hosting.WebHost is the core package that allows dotnet dev's to use the pibox web host and pibox plugins.

This package is mandatory, without it you can't use any plugins

Installation

To install the nuget package follow these steps:


dotnet add package PiBox.Hosting.Generator # this is required so the web host can discover & load the plugins
dotnet add package PiBox.Hosting.WebHost

or add as package reference to your .csproj

<PackageReference Include="PiBox.Hosting.Generator" Version="" />
<PackageReference Include="PiBox.Hosting.WebHost" Version="" />

Rewrite the Entrypoint Program.cs to have following code:

using PiBox.Hosting.WebHost;
PluginWebHostBuilder.RunDefault(PiBox.Generated.PiBoxPluginTypes.All);

Config files and ENV vars

PiBox will try to load config files and values in the following order

  1. appsettings.json
  2. appsettings.yaml
  3. appsettings.yml
  4. appsettings.*.json
  5. appsettings.*.yaml
  6. appsettings.*.yml
  7. appsettings.secrets.yml
  8. appsettings.*.secrets.yml 9ENV variables

NOTE: All settings (does not matter which file extension) will be ordered by node length. And the secret files will be loaded as last (except the environment variables).

Example:

  1. appsettings.yaml
  2. appsettings.api.yaml
  3. appsettings.api.host.yaml
  4. appsettings.secrets.yaml
  5. apssettings.api.secrets.yaml
  6. appsettings.api.host.secrets.yaml
  7. ENV Variables

File names must always start with appsettings or they will be ignored!

Nested settings use _ to build their hierarchy as ENV variables

host:
  urls: http://+:5300 # optional, default is 8080;separate multiple urls with ","

becomes

HOST_URLS=http://+:5300 # optional, default is 8080;separate multiple urls with ","

General settings

Configure your config file with these properties

host:
  urls: http://+:5300 # optional, default is 8080;separate multiple urls with ","
  maxRequestSize: 8388608 # optional, default is 8 MB

or as ENV variables

HOST_URLS=http://+:5300 # optional, default is 8080;separate multiple urls with ","
HOST_MAXREQUESTSIZE=8388608 # optional, default is 8 MB

Logging

Configure your appsettings.logging.yml with these properties

serilog:
  minimumLevel: Debug # or Warn or Info
  override:
    System: Error # or Warning or Information
    Microsoft: Error # or Warning or Information

or as ENV variables

SERIOLOG_minimumLevel=Debug
SERIOLOG_OVERRIDE_SYSTEM=Error
SERIOLOG_OVERRIDE_MICROSOFT=Error

Usage

Rewrite your entrypoint Program.cs to have following code:

PiBox.Hosting.WebHostPluginWebHostBuilder.RunDefault(PiBox.Generated.PiBoxPluginTypes.All);

Now you can add additional plugins as nuget packages to your project and configure them via config files/settings and/or in your web host plugin

Metrics

Pibox uses open telemetry for it's metrics capabilities. Further info can be found here

#metrics

Tracing settings

Pibox uses open telemetry for it's tracing capabilities. Further info can be found here

https://opentelemetry.io/docs/instrumentation/net/getting-started/

If there is a tracing host configured, the service will try to send any traces to this host. it will also enrich the log messages with SpanIds and TraceIds.

tracing:
  host: http://localhost:3333
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.54 40 4/30/2024
1.0.51 86 2/27/2024
1.0.49 41 2/27/2024
1.0.47 64 2/21/2024
1.0.45 49 2/20/2024
1.0.43 62 2/13/2024
1.0.41 52 2/13/2024
1.0.39 58 2/8/2024
1.0.38 57 2/8/2024
1.0.37 49 2/8/2024
1.0.35 51 2/2/2024
1.0.32 53 1/30/2024
1.0.25 118 12/27/2023
1.0.23 73 12/19/2023
1.0.22 62 12/19/2023
1.0.21 57 12/19/2023
1.0.19 68 12/11/2023
1.0.17 103 11/23/2023
1.0.7 66 11/23/2023
1.0.5 66 11/23/2023
1.0.3 68 11/23/2023
1.0.0 68 11/21/2023
0.9.9 60 11/21/2023
0.9.7 68 11/21/2023
0.9.6 75 11/21/2023