Browse Source

Add `WebApplicationBuilderExtensions`.

pull/11074/head
maliming 4 years ago
parent
commit
efae4899ce
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 8
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs
  2. 35
      framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/WebApplicationBuilderExtensions.cs
  3. 8
      framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationFactory.cs
  4. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Program.cs
  5. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Program.cs
  6. 17
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs
  7. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
  8. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Program.cs
  9. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs
  10. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs
  11. 5
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Program.cs
  12. 15
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
  13. 5
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Program.cs
  14. 5
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
  15. 5
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs
  16. 5
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Program.cs
  17. 5
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Program.cs
  18. 15
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs

8
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs

@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting;
public static class AbpWebAssemblyHostBuilderExtensions
{
public static async Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync<TStartupModule>(
public async static Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync<TStartupModule>(
[NotNull] this WebAssemblyHostBuilder builder,
Action<AbpWebAssemblyApplicationCreationOptions> options)
where TStartupModule : IAbpModule
@ -65,7 +65,7 @@ public static class AbpWebAssemblyHostBuilderExtensions
return application;
}
public static async Task InitializeAsync(
public async static Task InitializeAsync(
[NotNull] this IAbpApplicationWithExternalServiceProvider application,
[NotNull] IServiceProvider serviceProvider)
{
@ -80,7 +80,7 @@ public static class AbpWebAssemblyHostBuilderExtensions
await SetCurrentLanguageAsync(serviceProvider);
}
private static async Task InitializeModulesAsync(IServiceProvider serviceProvider)
private async static Task InitializeModulesAsync(IServiceProvider serviceProvider)
{
foreach (var service in serviceProvider.GetServices<IAsyncInitialize>())
{
@ -88,7 +88,7 @@ public static class AbpWebAssemblyHostBuilderExtensions
}
}
private static async Task SetCurrentLanguageAsync(IServiceProvider serviceProvider)
private async static Task SetCurrentLanguageAsync(IServiceProvider serviceProvider)
{
var configurationClient = serviceProvider.GetRequiredService<ICachedApplicationConfigurationClient>();
var utilsService = serviceProvider.GetRequiredService<IAbpUtilsService>();

35
framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/WebApplicationBuilderExtensions.cs

@ -0,0 +1,35 @@
using System;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Builder;
using Volo.Abp;
using Volo.Abp.Modularity;
namespace Microsoft.Extensions.DependencyInjection;
public static class WebApplicationBuilderExtensions
{
public async static Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync<TStartupModule>(
[NotNull] this WebApplicationBuilder builder,
[CanBeNull] Action<AbpApplicationCreationOptions> optionsAction = null)
where TStartupModule : IAbpModule
{
return await builder.Services.AddApplicationAsync<TStartupModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
optionsAction?.Invoke(options);
});
}
public async static Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync(
[NotNull] this WebApplicationBuilder builder,
[NotNull] Type startupModuleType,
[CanBeNull] Action<AbpApplicationCreationOptions> optionsAction = null)
{
return await builder.Services.AddApplicationAsync(startupModuleType, options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
optionsAction?.Invoke(options);
});
}
}

8
framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationFactory.cs

@ -14,8 +14,8 @@ public static class AbpApplicationFactory
{
var app = Create(typeof(TStartupModule), options =>
{
optionsAction?.Invoke(options);
options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
});
await app.ConfigureServicesAsync();
return app;
@ -27,8 +27,8 @@ public static class AbpApplicationFactory
{
var app = new AbpApplicationWithInternalServiceProvider(startupModuleType, options =>
{
optionsAction?.Invoke(options);
options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
});
await app.ConfigureServicesAsync();
return app;
@ -41,8 +41,8 @@ public static class AbpApplicationFactory
{
var app = Create(typeof(TStartupModule), services, options =>
{
optionsAction?.Invoke(options);
options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
});
await app.ConfigureServicesAsync();
return app;
@ -55,8 +55,8 @@ public static class AbpApplicationFactory
{
var app = new AbpApplicationWithExternalServiceProvider(startupModuleType, services, options =>
{
optionsAction?.Invoke(options);
options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
});
await app.ConfigureServicesAsync();
return app;

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameBlazorModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameBlazorModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameBlazorModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameBlazorModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

17
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs

@ -22,25 +22,28 @@ public class DbMigratorHostedService : IHostedService
public async Task StartAsync(CancellationToken cancellationToken)
{
using (var application = AbpApplicationFactory.Create<MyProjectNameDbMigratorModule>(options =>
using (var application = await AbpApplicationFactory.CreateAsync<MyProjectNameDbMigratorModule>(options =>
{
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
options.Services.AddLogging(c => c.AddSerilog());
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
options.Services.AddLogging(c => c.AddSerilog());
}))
{
application.Initialize();
await application.InitializeAsync();
await application
.ServiceProvider
.GetRequiredService<MyProjectNameDbMigrationService>()
.MigrateAsync();
application.Shutdown();
await application.ShutdownAsync();
_hostApplicationLifetime.StopApplication();
}
}
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameHttpApiHostModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameHttpApiHostModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameHttpApiHostModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameHttpApiHostModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameIdentityServerModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameIdentityServerModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameWebModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameWebModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameWebModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameWebModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

15
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs

@ -18,20 +18,23 @@ public class ConsoleTestAppHostedService : IHostedService
public async Task StartAsync(CancellationToken cancellationToken)
{
using (var application = AbpApplicationFactory.Create<MyProjectNameConsoleApiClientModule>(options =>
using (var application = await AbpApplicationFactory.CreateAsync<MyProjectNameConsoleApiClientModule>(options =>
{
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
}))
{
application.Initialize();
await application.InitializeAsync();
var demo = application.ServiceProvider.GetRequiredService<ClientDemoService>();
await demo.RunAsync();
application.Shutdown();
await application.ShutdownAsync();
}
}
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}

5
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameBlazorHostModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameBlazorHostModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameHttpApiHostModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameHttpApiHostModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameIdentityServerModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameIdentityServerModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Program.cs

@ -37,10 +37,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameWebHostModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameWebHostModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

5
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Program.cs

@ -37,10 +37,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameWebUnifiedModule>(options =>
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
await builder.AddApplicationAsync<MyProjectNameWebUnifiedModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

15
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs

@ -18,20 +18,23 @@ public class ConsoleTestAppHostedService : IHostedService
public async Task StartAsync(CancellationToken cancellationToken)
{
using (var application = AbpApplicationFactory.Create<MyProjectNameConsoleApiClientModule>(options =>
using (var application = await AbpApplicationFactory.CreateAsync<MyProjectNameConsoleApiClientModule>(options =>
{
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
}))
{
application.Initialize();
await application.InitializeAsync();
var demo = application.ServiceProvider.GetRequiredService<ClientDemoService>();
await demo.RunAsync();
application.Shutdown();
await application.ShutdownAsync();
}
}
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}

Loading…
Cancel
Save