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 class AbpWebAssemblyHostBuilderExtensions
{ {
public static async Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync<TStartupModule>( public async static Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync<TStartupModule>(
[NotNull] this WebAssemblyHostBuilder builder, [NotNull] this WebAssemblyHostBuilder builder,
Action<AbpWebAssemblyApplicationCreationOptions> options) Action<AbpWebAssemblyApplicationCreationOptions> options)
where TStartupModule : IAbpModule where TStartupModule : IAbpModule
@ -65,7 +65,7 @@ public static class AbpWebAssemblyHostBuilderExtensions
return application; return application;
} }
public static async Task InitializeAsync( public async static Task InitializeAsync(
[NotNull] this IAbpApplicationWithExternalServiceProvider application, [NotNull] this IAbpApplicationWithExternalServiceProvider application,
[NotNull] IServiceProvider serviceProvider) [NotNull] IServiceProvider serviceProvider)
{ {
@ -80,7 +80,7 @@ public static class AbpWebAssemblyHostBuilderExtensions
await SetCurrentLanguageAsync(serviceProvider); await SetCurrentLanguageAsync(serviceProvider);
} }
private static async Task InitializeModulesAsync(IServiceProvider serviceProvider) private async static Task InitializeModulesAsync(IServiceProvider serviceProvider)
{ {
foreach (var service in serviceProvider.GetServices<IAsyncInitialize>()) 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 configurationClient = serviceProvider.GetRequiredService<ICachedApplicationConfigurationClient>();
var utilsService = serviceProvider.GetRequiredService<IAbpUtilsService>(); 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 => var app = Create(typeof(TStartupModule), options =>
{ {
optionsAction?.Invoke(options);
options.SkipConfigureServices = true; options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
}); });
await app.ConfigureServicesAsync(); await app.ConfigureServicesAsync();
return app; return app;
@ -27,8 +27,8 @@ public static class AbpApplicationFactory
{ {
var app = new AbpApplicationWithInternalServiceProvider(startupModuleType, options => var app = new AbpApplicationWithInternalServiceProvider(startupModuleType, options =>
{ {
optionsAction?.Invoke(options);
options.SkipConfigureServices = true; options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
}); });
await app.ConfigureServicesAsync(); await app.ConfigureServicesAsync();
return app; return app;
@ -41,8 +41,8 @@ public static class AbpApplicationFactory
{ {
var app = Create(typeof(TStartupModule), services, options => var app = Create(typeof(TStartupModule), services, options =>
{ {
optionsAction?.Invoke(options);
options.SkipConfigureServices = true; options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
}); });
await app.ConfigureServicesAsync(); await app.ConfigureServicesAsync();
return app; return app;
@ -55,8 +55,8 @@ public static class AbpApplicationFactory
{ {
var app = new AbpApplicationWithExternalServiceProvider(startupModuleType, services, options => var app = new AbpApplicationWithExternalServiceProvider(startupModuleType, services, options =>
{ {
optionsAction?.Invoke(options);
options.SkipConfigureServices = true; options.SkipConfigureServices = true;
optionsAction?.Invoke(options);
}); });
await app.ConfigureServicesAsync(); await app.ConfigureServicesAsync();
return app; 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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameBlazorModule>(options => await builder.AddApplicationAsync<MyProjectNameBlazorModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameBlazorModule>(options => await builder.AddApplicationAsync<MyProjectNameBlazorModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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) 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.Services.ReplaceConfiguration(_configuration);
options.UseAutofac(); options.UseAutofac();
options.Services.AddLogging(c => c.AddSerilog()); options.Services.AddLogging(c => c.AddSerilog());
})) }))
{ {
application.Initialize(); await application.InitializeAsync();
await application await application
.ServiceProvider .ServiceProvider
.GetRequiredService<MyProjectNameDbMigrationService>() .GetRequiredService<MyProjectNameDbMigrationService>()
.MigrateAsync(); .MigrateAsync();
application.Shutdown(); await application.ShutdownAsync();
_hostApplicationLifetime.StopApplication(); _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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameHttpApiHostModule>(options => await builder.AddApplicationAsync<MyProjectNameHttpApiHostModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameHttpApiHostModule>(options => await builder.AddApplicationAsync<MyProjectNameHttpApiHostModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); await app.RunAsync();

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

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

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

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameWebModule>(options => await builder.AddApplicationAsync<MyProjectNameWebModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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) 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.Services.ReplaceConfiguration(_configuration);
options.UseAutofac(); options.UseAutofac();
})) }))
{ {
application.Initialize(); await application.InitializeAsync();
var demo = application.ServiceProvider.GetRequiredService<ClientDemoService>(); var demo = application.ServiceProvider.GetRequiredService<ClientDemoService>();
await demo.RunAsync(); 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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameBlazorHostModule>(options => await builder.AddApplicationAsync<MyProjectNameBlazorHostModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameHttpApiHostModule>(options => await builder.AddApplicationAsync<MyProjectNameHttpApiHostModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); await app.RunAsync();

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

@ -34,10 +34,7 @@ public class Program
builder.Host.AddAppSettingsSecretsJson() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameIdentityServerModule>(options => await builder.AddApplicationAsync<MyProjectNameIdentityServerModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameWebHostModule>(options => await builder.AddApplicationAsync<MyProjectNameWebHostModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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() builder.Host.AddAppSettingsSecretsJson()
.UseAutofac() .UseAutofac()
.UseSerilog(); .UseSerilog();
await builder.Services.AddApplicationAsync<MyProjectNameWebUnifiedModule>(options => await builder.AddApplicationAsync<MyProjectNameWebUnifiedModule>();
{
options.Services.ReplaceConfiguration(builder.Configuration);
});
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
await app.RunAsync(); 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) 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.Services.ReplaceConfiguration(_configuration);
options.UseAutofac(); options.UseAutofac();
})) }))
{ {
application.Initialize(); await application.InitializeAsync();
var demo = application.ServiceProvider.GetRequiredService<ClientDemoService>(); var demo = application.ServiceProvider.GetRequiredService<ClientDemoService>();
await demo.RunAsync(); 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