diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/Program.cs b/apps/auth-server/src/EShopOnAbp.AuthServer/Program.cs index b236243d..94508848 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/Program.cs +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/Program.cs @@ -1,46 +1,36 @@ using System; using System.Threading.Tasks; using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; +using Microsoft.AspNetCore.Builder; using Serilog; -namespace EShopOnAbp.AuthServer +namespace EShopOnAbp.AuthServer; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; + var assemblyName = typeof(Program).Assembly.GetName().Name; - SerilogConfigurationHelper.Configure(assemblyName); + SerilogConfigurationHelper.Configure(assemblyName); - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } + try + { + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper.BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true); - }) - .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .UseAutofac() - .UseSerilog(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } -} +} \ No newline at end of file diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/Startup.cs b/apps/auth-server/src/EShopOnAbp.AuthServer/Startup.cs deleted file mode 100644 index f20bcf34..00000000 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/Startup.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; - -namespace EShopOnAbp.AuthServer -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - app.InitializeApplication(); - } - } -} \ No newline at end of file diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Program.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/Program.cs index 213a1f8d..02db8160 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/Program.cs +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Program.cs @@ -1,52 +1,36 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; +using Microsoft.AspNetCore.Builder; using Serilog; -namespace EShopOnAbp.PublicWeb +namespace EShopOnAbp.PublicWeb; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; + var assemblyName = typeof(Program).Assembly.GetName().Name; - SerilogConfigurationHelper.Configure(assemblyName); + SerilogConfigurationHelper.Configure(assemblyName); - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } + try + { + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper.BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true); - }) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }) - .UseAutofac() - .UseSerilog(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } } \ No newline at end of file diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Startup.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/Startup.cs deleted file mode 100644 index 2322543f..00000000 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/Startup.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; - -namespace EShopOnAbp.PublicWeb -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - app.InitializeApplication(); - } - } -} \ No newline at end of file diff --git a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs index 7e4b70f7..b7e61272 100644 --- a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs +++ b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs @@ -1,46 +1,36 @@ using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; using Serilog; using System; using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; -namespace EShopOnAbp.WebPublicGateway +namespace EShopOnAbp.WebPublicGateway; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; + var assemblyName = typeof(Program).Assembly.GetName().Name; - SerilogConfigurationHelper.Configure(assemblyName); + SerilogConfigurationHelper.Configure(assemblyName); - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } + try + { + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper.BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true, reloadOnChange:true); - }) - .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .UseAutofac() - .UseSerilog(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } -} +} \ No newline at end of file diff --git a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Startup.cs b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Startup.cs deleted file mode 100644 index 4dab1503..00000000 --- a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Startup.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; - -namespace EShopOnAbp.WebPublicGateway -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app) - { - app.InitializeApplication(); - } - } -} diff --git a/gateways/web/src/EShopOnAbp.WebGateway/Program.cs b/gateways/web/src/EShopOnAbp.WebGateway/Program.cs index a6b3277c..03378683 100644 --- a/gateways/web/src/EShopOnAbp.WebGateway/Program.cs +++ b/gateways/web/src/EShopOnAbp.WebGateway/Program.cs @@ -1,46 +1,36 @@ using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; using Serilog; using System; using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; -namespace EShopOnAbp.WebGateway +namespace EShopOnAbp.WebGateway; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; + var assemblyName = typeof(Program).Assembly.GetName().Name; - SerilogConfigurationHelper.Configure(assemblyName); + SerilogConfigurationHelper.Configure(assemblyName); - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } + try + { + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper.BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true); - }) - .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .UseAutofac() - .UseSerilog(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } -} +} \ No newline at end of file diff --git a/gateways/web/src/EShopOnAbp.WebGateway/Startup.cs b/gateways/web/src/EShopOnAbp.WebGateway/Startup.cs deleted file mode 100644 index 3f299188..00000000 --- a/gateways/web/src/EShopOnAbp.WebGateway/Startup.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; - -namespace EShopOnAbp.WebGateway -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - app.InitializeApplication(); - } - } -} diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Program.cs b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Program.cs index 69f9c74d..bf5d0004 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Program.cs +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Program.cs @@ -1,46 +1,37 @@ using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; using Serilog; using System; using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; -namespace EShopOnAbp.AdministrationService +namespace EShopOnAbp.AdministrationService; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; + var assemblyName = typeof(Program).Assembly.GetName().Name; - SerilogConfigurationHelper.Configure(assemblyName); + SerilogConfigurationHelper.Configure(assemblyName); - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } + try + { + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true); - }) - .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .UseAutofac() - .UseSerilog(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } -} +} \ No newline at end of file diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Startup.cs b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Startup.cs deleted file mode 100644 index c416abff..00000000 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Startup.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; - -namespace EShopOnAbp.AdministrationService -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app) - { - app.InitializeApplication(); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs index 88d563e6..2b661d9c 100644 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs +++ b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs @@ -1,56 +1,37 @@ using System; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; +using System.Threading.Tasks; +using EShopOnAbp.Shared.Hosting.AspNetCore; +using Microsoft.AspNetCore.Builder; using Serilog; -using Serilog.Events; -namespace EShopOnAbp.BasketService +namespace EShopOnAbp.BasketService; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static int Main(string[] args) + var assemblyName = typeof(Program).Assembly.GetName().Name; + + SerilogConfigurationHelper.Configure(assemblyName); + + try { - Log.Logger = new LoggerConfiguration() -#if DEBUG - .MinimumLevel.Debug() -#else - .MinimumLevel.Information() -#endif - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) - .Enrich.FromLogContext() - .WriteTo.Async(c => c.File("Logs/logs.txt")) -#if DEBUG - .WriteTo.Async(c => c.Console()) -#endif - .CreateLogger(); + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - try - { - Log.Information("Starting EShopOnAbp.BasketService.HttpApi.Host."); - CreateHostBuilder(args).Build().Run(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); } - - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .AddAppSettingsSecretsJson() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }) - .UseAutofac() - .UseSerilog(); } -} +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Startup.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Startup.cs deleted file mode 100644 index c14b14fd..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Startup.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace EShopOnAbp.BasketService -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) - { - app.InitializeApplication(); - } - } -} diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Program.cs b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Program.cs index 5d9c744e..74728f1c 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Program.cs +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Program.cs @@ -1,56 +1,37 @@ using System; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; +using System.Threading.Tasks; +using EShopOnAbp.Shared.Hosting.AspNetCore; +using Microsoft.AspNetCore.Builder; using Serilog; -using Serilog.Events; -namespace EShopOnAbp.CatalogService +namespace EShopOnAbp.CatalogService; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static int Main(string[] args) + var assemblyName = typeof(Program).Assembly.GetName().Name; + + SerilogConfigurationHelper.Configure(assemblyName); + + try { - Log.Logger = new LoggerConfiguration() -#if DEBUG - .MinimumLevel.Debug() -#else - .MinimumLevel.Information() -#endif - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) - .Enrich.FromLogContext() - .WriteTo.Async(c => c.File("Logs/logs.txt")) -#if DEBUG - .WriteTo.Async(c => c.Console()) -#endif - .CreateLogger(); + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - try - { - Log.Information("Starting EShopOnAbp.CatalogService.HttpApi.Host."); - CreateHostBuilder(args).Build().Run(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); } - - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .AddAppSettingsSecretsJson() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }) - .UseAutofac() - .UseSerilog(); } -} +} \ No newline at end of file diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Startup.cs b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Startup.cs deleted file mode 100644 index ae24adfe..00000000 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Startup.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace EShopOnAbp.CatalogService -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) - { - app.InitializeApplication(); - } - } -} diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Program.cs b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Program.cs index 5f5c9a52..576a28ee 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Program.cs +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Program.cs @@ -1,46 +1,37 @@ using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; using Serilog; using System; using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; -namespace EShopOnAbp.IdentityService +namespace EShopOnAbp.IdentityService; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; + var assemblyName = typeof(Program).Assembly.GetName().Name; - SerilogConfigurationHelper.Configure(assemblyName); + SerilogConfigurationHelper.Configure(assemblyName); - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } + try + { + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true); - }) - .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .UseAutofac() - .UseSerilog(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } -} +} \ No newline at end of file diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Startup.cs b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Startup.cs deleted file mode 100644 index 04b114fe..00000000 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Startup.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; - -namespace EShopOnAbp.IdentityService -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app) - { - app.InitializeApplication(); - } - } -} diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Program.cs b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Program.cs index f5575609..6b783b3b 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Program.cs +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Program.cs @@ -1,56 +1,37 @@ using System; -using System.IO; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; +using System.Threading.Tasks; +using EShopOnAbp.Shared.Hosting.AspNetCore; +using Microsoft.AspNetCore.Builder; using Serilog; -using Serilog.Events; -namespace EShopOnAbp.OrderingService +namespace EShopOnAbp.OrderingService; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static int Main(string[] args) + var assemblyName = typeof(Program).Assembly.GetName().Name; + + SerilogConfigurationHelper.Configure(assemblyName); + + try { - Log.Logger = new LoggerConfiguration() -#if DEBUG - .MinimumLevel.Debug() -#else - .MinimumLevel.Information() -#endif - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .Enrich.FromLogContext() - .WriteTo.Async(c => c.File("Logs/logs.txt")) -#if DEBUG - .WriteTo.Async(c => c.Console()) -#endif - .CreateLogger(); + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - try - { - Log.Information("Starting web host."); - CreateHostBuilder(args).Build().Run(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); } - - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .AddAppSettingsSecretsJson() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }) - .UseAutofac() - .UseSerilog(); } -} +} \ No newline at end of file diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Startup.cs b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Startup.cs deleted file mode 100644 index e962f8b7..00000000 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Startup.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace EShopOnAbp.OrderingService -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) - { - app.InitializeApplication(); - } - } -} diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Program.cs b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Program.cs index 326df981..3a9ce66b 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Program.cs +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Program.cs @@ -1,56 +1,37 @@ using System; -using System.IO; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; +using System.Threading.Tasks; +using EShopOnAbp.Shared.Hosting.AspNetCore; +using Microsoft.AspNetCore.Builder; using Serilog; -using Serilog.Events; -namespace EShopOnAbp.PaymentService +namespace EShopOnAbp.PaymentService; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static int Main(string[] args) + var assemblyName = typeof(Program).Assembly.GetName().Name; + + SerilogConfigurationHelper.Configure(assemblyName); + + try { - Log.Logger = new LoggerConfiguration() -#if DEBUG - .MinimumLevel.Debug() -#else - .MinimumLevel.Information() -#endif - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .Enrich.FromLogContext() - .WriteTo.Async(c => c.File("Logs/logs.txt")) -#if DEBUG - .WriteTo.Async(c => c.Console()) -#endif - .CreateLogger(); + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); - try - { - Log.Information("Starting web host."); - CreateHostBuilder(args).Build().Run(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); } - - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .AddAppSettingsSecretsJson() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }) - .UseAutofac() - .UseSerilog(); } -} +} \ No newline at end of file diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Startup.cs b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Startup.cs deleted file mode 100644 index 57212ab9..00000000 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Startup.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace EShopOnAbp.PaymentService -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) - { - app.InitializeApplication(); - } - } -} diff --git a/shared/EShopOnAbp.Shared.Hosting.AspNetCore/ApplicationBuilderHelper.cs b/shared/EShopOnAbp.Shared.Hosting.AspNetCore/ApplicationBuilderHelper.cs new file mode 100644 index 00000000..90faea26 --- /dev/null +++ b/shared/EShopOnAbp.Shared.Hosting.AspNetCore/ApplicationBuilderHelper.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Serilog; +using Volo.Abp.Modularity; + +namespace EShopOnAbp.Shared.Hosting.AspNetCore; + +public static class ApplicationBuilderHelper +{ + public static async Task BuildApplicationAsync(string[] args) + where TStartupModule : IAbpModule + { + var builder = WebApplication.CreateBuilder(args); + builder.Host + .AddAppSettingsSecretsJson() + .UseAutofac() + .UseSerilog(); + + await builder.AddApplicationAsync(); + return builder.Build(); + } +} \ No newline at end of file