-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
.NET 6 brought new builder types inheriting from IHostApplicationBuilder
that refactor how to developers may build web / console hosts with fewer callbacks: Comparing WebApplicationBuilder to the Generic Host
WebApplicationBuilder : IHostApplicationBuilder
HostApplicationBuilder : IHostApplicationBuilder
The old IHostBuilder
pattern remains supported. A comparision of how both initializations can work is:
|
|
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
builder.Configuration.AddUserSecrets<Program>();
builder.Services.Configure<TaskHubOptions>(opt =>
{
opt.CreateIfNotExists = true;
});
builder.Services.AddSingleton<IConsole, ConsoleWrapper>();
builder.Services.AddHostedService<TaskEnqueuer>();
builder.Services.AddSingleton(UseLocalEmulator());
builder.ConfigureTaskHubWorker((context, builder) =>
{
builder.AddClient();
builder.UseOrchestrationMiddleware<SampleMiddleware>();
builder.UseActivityMiddleware<SampleMiddleware>();
builder
.AddOrchestration<GreetingsOrchestration>()
.AddOrchestration<GenericOrchestrationRunner>();
builder.AddActivitiesFromAssembly<Program>();
});
IHost host = builder.Build();
return host.RunAsync(); |
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(builder => builder.AddUserSecrets<Program>())
.ConfigureServices(services =>
{
services.Configure<TaskHubOptions>(opt =>
{
opt.CreateIfNotExists = true;
});
services.AddSingleton<IConsole, ConsoleWrapper>();
services.AddHostedService<TaskEnqueuer>();
services.AddSingleton(UseLocalEmulator());
})
.ConfigureTaskHubWorker((context, builder) =>
{
builder.AddClient();
builder.UseOrchestrationMiddleware<SampleMiddleware>();
builder.UseActivityMiddleware<SampleMiddleware>();
builder
.AddOrchestration<GreetingsOrchestration>()
.AddOrchestration<GenericOrchestrationRunner>();
builder.AddActivitiesFromAssembly<Program>();
})
.UseConsoleLifetime()
.Build();
return host.RunAsync(); |
Metadata
Metadata
Assignees
Labels
No labels