Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
strategy:
matrix:
configuration: [Debug, Release]
framework: [net8.0, net6.0]
framework: [net9.0, net8.0]
outputs:
version: ${{ steps.minver-calculate.outputs.version }}
steps:
Expand Down
26 changes: 25 additions & 1 deletion .nuget/Codebelt.Bootstrapper.Console/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,34 @@
Version: 2.0.0
Version 3.0.0
Availability: .NET 9 and .NET 8

# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
- REMOVED Support for TFM .NET 6 (LTS)

# Breaking Changes
- REMOVED Run (abstract method) from the ConsoleStartup class located in the Codebelt.Bootstrapper.Console namespace
- REMOVED ILogger{TStartup} argument from the ConsoleHostedService class in the Codebelt.Bootstrapper.Console namespace

# New Features
- ADDED RunAsync (abstract method) to the ConsoleHostedService class in the Codebelt.Bootstrapper.Console namespace
- ADDED UseServices (abstract method) to the ConsoleHostedService class in the Codebelt.Bootstrapper.Console namespace

# Improvements
- CHANGED ConsoleHostedService class in the Codebelt.Bootstrapper.Console namespace to provide a better developer experience

Version: 2.0.0
Availability: .NET 6.0 and .NET 8.0

# ALM
- REMOVED TFM for net7.0
- CHANGED Dependencies to latest and greatest with respect to TFMs

Version: 1.3.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

# ALM
- CHANGED Dependencies to latest and greatest

Version: 1.2.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

Expand Down
62 changes: 61 additions & 1 deletion .nuget/Codebelt.Bootstrapper.Console/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,64 @@ An implementation optimized for `console` applications.
* [Codebelt.Bootstrapper](https://www.nuget.org/packages/Codebelt.Bootstrapper/) 📦
* [Codebelt.Bootstrapper.Console](https://www.nuget.org/packages/Codebelt.Bootstrapper.Console/) 📦
* [Codebelt.Bootstrapper.Web](https://www.nuget.org/packages/Codebelt.Bootstrapper.Web/) 📦
* [Codebelt.Bootstrapper.Worker](https://www.nuget.org/packages/Codebelt.Bootstrapper.Worker/) 📦
* [Codebelt.Bootstrapper.Worker](https://www.nuget.org/packages/Codebelt.Bootstrapper.Worker/) 📦

### CSharp Example

An example on how to use `Codebelt.Bootstrapper.Console` in C#:

```csharp

// --- Program.cs ---

public class Program : ConsoleProgram<Startup>
{
static async Task Main(string[] args)
{
await CreateHostBuilder(args)
.Build()
.RunAsync()
.ConfigureAwait(false);
}
}

// --- Startup.cs ---

public class Startup : ConsoleStartup
{
public Startup(IConfiguration configuration, IHostEnvironment environment) : base(configuration, environment)
{
}

public override void ConfigureServices(IServiceCollection services)
{
}

public override void UseServices(IServiceProvider serviceProvider)
{
var logger = serviceProvider.GetRequiredService<ILogger<Startup>>();

BootstrapperLifetime.OnApplicationStartedCallback = () => logger.LogInformation("Started");
BootstrapperLifetime.OnApplicationStoppingCallback = () =>
{
logger.LogWarning("Stopping and cleaning ..");
Thread.Sleep(TimeSpan.FromSeconds(5)); // simulate graceful shutdown
logger.LogWarning(".. done!");
};
BootstrapperLifetime.OnApplicationStoppedCallback = () => logger.LogCritical("Stopped");
}

public async override Task RunAsync(CancellationToken cancellationToken)
{
for (int dots = 0; dots <= 5; ++dots)
{
if (cancellationToken.IsCancellationRequested) { return; }
System.Console.Write($"\rFire and forget {Generate.FixedString('.', dots)}");
await Task.Delay(500, cancellationToken).ConfigureAwait(false);
}

System.Console.WriteLine("\nDone and done!");
}
}

```
15 changes: 14 additions & 1 deletion .nuget/Codebelt.Bootstrapper.Web/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
Version: 2.0.0
Version 3.0.0
Availability: .NET 9 and .NET 8

# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
- REMOVED Support for TFM .NET 6 (LTS)

Version: 2.0.0
Availability: .NET 6.0 and .NET 8.0

# ALM
Expand All @@ -8,6 +15,12 @@ Availability: .NET 6.0 and .NET 8.0
# Breaking Changes
- CHANGED WebStartup class in the Codebelt.Bootstrapper.Web namespace to provide a new abstraction; ConfigurePipeline(IApplicationBuilder) and removed ILogger parameter from Configure method

Version: 1.3.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

# ALM
- CHANGED Dependencies to latest and greatest

Version: 1.2.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

Expand Down
54 changes: 53 additions & 1 deletion .nuget/Codebelt.Bootstrapper.Web/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,56 @@ An implementation optimized for `web`, `webapi`, `webapp`, `razor`, `mvc` applic
* [Codebelt.Bootstrapper](https://www.nuget.org/packages/Codebelt.Bootstrapper/) 📦
* [Codebelt.Bootstrapper.Console](https://www.nuget.org/packages/Codebelt.Bootstrapper.Console/) 📦
* [Codebelt.Bootstrapper.Web](https://www.nuget.org/packages/Codebelt.Bootstrapper.Web/) 📦
* [Codebelt.Bootstrapper.Worker](https://www.nuget.org/packages/Codebelt.Bootstrapper.Worker/) 📦
* [Codebelt.Bootstrapper.Worker](https://www.nuget.org/packages/Codebelt.Bootstrapper.Worker/) 📦

### CSharp Example

An example on how to use `Codebelt.Bootstrapper.Web` in C#:

```csharp

// --- Program.cs ---

public class Program : WebProgram<Startup>
{
static async Task Main(string[] args)
{
await CreateHostBuilder(args)
.Build()
.RunAsync()
.ConfigureAwait(false);
}
}

// --- Startup.cs ---

public class Startup : WebStartup
{
public Startup(IConfiguration configuration, IHostEnvironment environment) : base(configuration, environment)
{
}

public override void ConfigureServices(IServiceCollection services)
{
}

public override void ConfigurePipeline(IApplicationBuilder app)
{
if (Environment.IsLocalDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseRouting();

app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
});
}
}

```
15 changes: 14 additions & 1 deletion .nuget/Codebelt.Bootstrapper.Worker/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
Version: 2.0.0
Version 3.0.0
Availability: .NET 9 and .NET 8

# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
- REMOVED Support for TFM .NET 6 (LTS)

Version: 2.0.0
Availability: .NET 6.0 and .NET 8.0

# ALM
- REMOVED TFM for net7.0
- CHANGED Dependencies to latest and greatest with respect to TFMs

Version: 1.3.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

# ALM
- CHANGED Dependencies to latest and greatest

Version: 1.2.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

Expand Down
70 changes: 69 additions & 1 deletion .nuget/Codebelt.Bootstrapper.Worker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,72 @@ An implementation optimized for `worker` services.
* [Codebelt.Bootstrapper](https://www.nuget.org/packages/Codebelt.Bootstrapper/) 📦
* [Codebelt.Bootstrapper.Console](https://www.nuget.org/packages/Codebelt.Bootstrapper.Console/) 📦
* [Codebelt.Bootstrapper.Web](https://www.nuget.org/packages/Codebelt.Bootstrapper.Web/) 📦
* [Codebelt.Bootstrapper.Worker](https://www.nuget.org/packages/Codebelt.Bootstrapper.Worker/) 📦
* [Codebelt.Bootstrapper.Worker](https://www.nuget.org/packages/Codebelt.Bootstrapper.Worker/) 📦

### CSharp Example

An example on how to use `Codebelt.Bootstrapper.Worker` in C#:

```csharp

// --- Program.cs ---

public class Program : WorkerProgram<Startup>
{
static async Task Main(string[] args)
{
await CreateHostBuilder(args)
.Build()
.RunAsync()
.ConfigureAwait(false);
}
}

// --- Startup.cs ---

public class Startup : WorkerStartup
{
public Startup(IConfiguration configuration, IHostEnvironment environment) : base(configuration, environment)
{
}

public override void ConfigureServices(IServiceCollection services)
{
services.AddHostedService<FakeHostedService>();
}
}

// --- FakeHostedService.cs ---

public class FakeHostedService : BackgroundService
{
private readonly ILogger<FakeHostedService> _logger;
private bool _gracefulShutdown;

public FakeHostedService(ILogger<FakeHostedService> logger)
{
_logger = logger;

BootstrapperLifetime.OnApplicationStartedCallback = () => logger.LogInformation("Started");
BootstrapperLifetime.OnApplicationStoppingCallback = () =>
{
_gracefulShutdown = true;
logger.LogWarning("Stopping and cleaning ..");
Thread.Sleep(TimeSpan.FromSeconds(5)); // simulate graceful shutdown
logger.LogWarning(".. done!");
};
BootstrapperLifetime.OnApplicationStoppedCallback = () => logger.LogCritical("Stopped");
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
if (_gracefulShutdown) { return; }
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.UtcNow.ToString("O"));
await Task.Delay(TimeSpan.FromSeconds(2), stoppingToken);
}
}
}

```
15 changes: 14 additions & 1 deletion .nuget/Codebelt.Bootstrapper/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
Version: 2.0.0
Version 3.0.0
Availability: .NET 9 and .NET 8

# ALM
- CHANGED Dependencies to latest and greatest with respect to TFMs
- REMOVED Support for TFM .NET 6 (LTS)

Version: 2.0.0
Availability: .NET 6.0 and .NET 8.0

# ALM
- REMOVED TFM for net7.0
- CHANGED Dependencies to latest and greatest with respect to TFMs

Version: 1.3.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

# ALM
- CHANGED Dependencies to latest and greatest

Version: 1.2.0
Availability: .NET 6.0, .NET 7.0, .NET 8.0

Expand Down
Loading