diff --git a/samples/BasicConsoleApplication/AbpConsoleDemo/AbpConsoleDemo.csproj b/samples/BasicConsoleApplication/AbpConsoleDemo/AbpConsoleDemo.csproj
index c3c4e39fd8..6bdf644289 100644
--- a/samples/BasicConsoleApplication/AbpConsoleDemo/AbpConsoleDemo.csproj
+++ b/samples/BasicConsoleApplication/AbpConsoleDemo/AbpConsoleDemo.csproj
@@ -7,6 +7,7 @@
+
diff --git a/samples/BasicConsoleApplication/AbpConsoleDemo/AppHostedService.cs b/samples/BasicConsoleApplication/AbpConsoleDemo/AppHostedService.cs
new file mode 100644
index 0000000000..578c437177
--- /dev/null
+++ b/samples/BasicConsoleApplication/AbpConsoleDemo/AppHostedService.cs
@@ -0,0 +1,32 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Volo.Abp;
+
+namespace AbpConsoleDemo
+{
+ public class AppHostedService : IHostedService
+ {
+ public Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create(options =>
+ {
+ options.UseAutofac(); //Autofac integration
+ }))
+ {
+ application.Initialize();
+
+ //Resolve a service and use it
+ var helloWorldService = application.ServiceProvider.GetService();
+ helloWorldService.SayHello();
+
+ application.Shutdown();
+ }
+
+ return Task.CompletedTask;
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BasicConsoleApplication/AbpConsoleDemo/Program.cs b/samples/BasicConsoleApplication/AbpConsoleDemo/Program.cs
index 651fda3c4f..2c8791f656 100644
--- a/samples/BasicConsoleApplication/AbpConsoleDemo/Program.cs
+++ b/samples/BasicConsoleApplication/AbpConsoleDemo/Program.cs
@@ -1,28 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
+using Microsoft.Extensions.Hosting;
namespace AbpConsoleDemo
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create(options =>
- {
- options.UseAutofac(); //Autofac integration
- }))
- {
- application.Initialize();
-
- //Resolve a service and use it
- var helloWorldService =
- application.ServiceProvider.GetService();
- helloWorldService.SayHello();
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs b/samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs
new file mode 100644
index 0000000000..aef3d88bb5
--- /dev/null
+++ b/samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs
@@ -0,0 +1,34 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Acme.BookStore.Data;
+using Serilog;
+using Volo.Abp;
+
+namespace Acme.BookStore.DbMigrator
+{
+ public class DbMigratorHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create(options =>
+ {
+ options.UseAutofac();
+ options.Services.AddLogging(c => c.AddSerilog());
+ }))
+ {
+ application.Initialize();
+
+ await application
+ .ServiceProvider
+ .GetRequiredService()
+ .MigrateAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/Program.cs b/samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/Program.cs
index d3c4034c8a..179c18f4ca 100644
--- a/samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/Program.cs
+++ b/samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/Program.cs
@@ -1,39 +1,15 @@
-using System.IO;
+using System.IO;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Acme.BookStore.Data;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
-using Volo.Abp;
-using Volo.Abp.Threading;
namespace Acme.BookStore.DbMigrator
{
class Program
{
- static void Main(string[] args)
- {
- ConfigureLogging();
-
- using (var application = AbpApplicationFactory.Create(options =>
- {
- options.UseAutofac();
- options.Services.AddLogging(c => c.AddSerilog());
- }))
- {
- application.Initialize();
-
- AsyncHelper.RunSync(
- () => application
- .ServiceProvider
- .GetRequiredService()
- .MigrateAsync()
- );
-
- application.Shutdown();
- }
- }
-
- private static void ConfigureLogging()
+ static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
@@ -48,6 +24,15 @@ namespace Acme.BookStore.DbMigrator
.WriteTo.File(Path.Combine(Directory.GetCurrentDirectory(), "Logs/logs.txt"))
.WriteTo.Console()
.CreateLogger();
+
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
new file mode 100644
index 0000000000..e41ee7ed31
--- /dev/null
+++ b/samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
@@ -0,0 +1,26 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+
+namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp
+{
+ public class ConsoleTestAppHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create())
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs b/samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
index ecef29d963..7d8265158b 100644
--- a/samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
+++ b/samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
@@ -1,24 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create())
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs b/samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs
new file mode 100644
index 0000000000..aef3d88bb5
--- /dev/null
+++ b/samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs
@@ -0,0 +1,34 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Acme.BookStore.Data;
+using Serilog;
+using Volo.Abp;
+
+namespace Acme.BookStore.DbMigrator
+{
+ public class DbMigratorHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create(options =>
+ {
+ options.UseAutofac();
+ options.Services.AddLogging(c => c.AddSerilog());
+ }))
+ {
+ application.Initialize();
+
+ await application
+ .ServiceProvider
+ .GetRequiredService()
+ .MigrateAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/Program.cs b/samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/Program.cs
index d3c4034c8a..179c18f4ca 100644
--- a/samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/Program.cs
+++ b/samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/Program.cs
@@ -1,39 +1,15 @@
-using System.IO;
+using System.IO;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Acme.BookStore.Data;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
-using Volo.Abp;
-using Volo.Abp.Threading;
namespace Acme.BookStore.DbMigrator
{
class Program
{
- static void Main(string[] args)
- {
- ConfigureLogging();
-
- using (var application = AbpApplicationFactory.Create(options =>
- {
- options.UseAutofac();
- options.Services.AddLogging(c => c.AddSerilog());
- }))
- {
- application.Initialize();
-
- AsyncHelper.RunSync(
- () => application
- .ServiceProvider
- .GetRequiredService()
- .MigrateAsync()
- );
-
- application.Shutdown();
- }
- }
-
- private static void ConfigureLogging()
+ static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
@@ -48,6 +24,15 @@ namespace Acme.BookStore.DbMigrator
.WriteTo.File(Path.Combine(Directory.GetCurrentDirectory(), "Logs/logs.txt"))
.WriteTo.Console()
.CreateLogger();
+
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/BookStore-Modular/application/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/samples/BookStore-Modular/application/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
new file mode 100644
index 0000000000..e41ee7ed31
--- /dev/null
+++ b/samples/BookStore-Modular/application/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
@@ -0,0 +1,26 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+
+namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp
+{
+ public class ConsoleTestAppHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create())
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BookStore-Modular/application/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs b/samples/BookStore-Modular/application/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
index ecef29d963..7d8265158b 100644
--- a/samples/BookStore-Modular/application/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
+++ b/samples/BookStore-Modular/application/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
@@ -1,24 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create())
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/BookStore-Modular/modules/book-management/test/Acme.BookStore.BookManagement.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/samples/BookStore-Modular/modules/book-management/test/Acme.BookStore.BookManagement.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
new file mode 100644
index 0000000000..aec5d0252d
--- /dev/null
+++ b/samples/BookStore-Modular/modules/book-management/test/Acme.BookStore.BookManagement.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
@@ -0,0 +1,26 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+
+namespace Acme.BookStore.BookManagement
+{
+ public class ConsoleTestAppHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create())
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BookStore-Modular/modules/book-management/test/Acme.BookStore.BookManagement.HttpApi.Client.ConsoleTestApp/Program.cs b/samples/BookStore-Modular/modules/book-management/test/Acme.BookStore.BookManagement.HttpApi.Client.ConsoleTestApp/Program.cs
index 9b6e256930..f69d97f590 100644
--- a/samples/BookStore-Modular/modules/book-management/test/Acme.BookStore.BookManagement.HttpApi.Client.ConsoleTestApp/Program.cs
+++ b/samples/BookStore-Modular/modules/book-management/test/Acme.BookStore.BookManagement.HttpApi.Client.ConsoleTestApp/Program.cs
@@ -1,24 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
namespace Acme.BookStore.BookManagement
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create())
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/BookStore/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs b/samples/BookStore/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs
new file mode 100644
index 0000000000..aef3d88bb5
--- /dev/null
+++ b/samples/BookStore/src/Acme.BookStore.DbMigrator/DbMigratorHostedService.cs
@@ -0,0 +1,34 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Acme.BookStore.Data;
+using Serilog;
+using Volo.Abp;
+
+namespace Acme.BookStore.DbMigrator
+{
+ public class DbMigratorHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create(options =>
+ {
+ options.UseAutofac();
+ options.Services.AddLogging(c => c.AddSerilog());
+ }))
+ {
+ application.Initialize();
+
+ await application
+ .ServiceProvider
+ .GetRequiredService()
+ .MigrateAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BookStore/src/Acme.BookStore.DbMigrator/Program.cs b/samples/BookStore/src/Acme.BookStore.DbMigrator/Program.cs
index d3c4034c8a..179c18f4ca 100644
--- a/samples/BookStore/src/Acme.BookStore.DbMigrator/Program.cs
+++ b/samples/BookStore/src/Acme.BookStore.DbMigrator/Program.cs
@@ -1,39 +1,15 @@
-using System.IO;
+using System.IO;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Acme.BookStore.Data;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
-using Volo.Abp;
-using Volo.Abp.Threading;
namespace Acme.BookStore.DbMigrator
{
class Program
{
- static void Main(string[] args)
- {
- ConfigureLogging();
-
- using (var application = AbpApplicationFactory.Create(options =>
- {
- options.UseAutofac();
- options.Services.AddLogging(c => c.AddSerilog());
- }))
- {
- application.Initialize();
-
- AsyncHelper.RunSync(
- () => application
- .ServiceProvider
- .GetRequiredService()
- .MigrateAsync()
- );
-
- application.Shutdown();
- }
- }
-
- private static void ConfigureLogging()
+ static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
@@ -48,6 +24,15 @@ namespace Acme.BookStore.DbMigrator
.WriteTo.File(Path.Combine(Directory.GetCurrentDirectory(), "Logs/logs.txt"))
.WriteTo.Console()
.CreateLogger();
+
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/BookStore/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/samples/BookStore/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
new file mode 100644
index 0000000000..e41ee7ed31
--- /dev/null
+++ b/samples/BookStore/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
@@ -0,0 +1,26 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+
+namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp
+{
+ public class ConsoleTestAppHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create())
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/BookStore/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs b/samples/BookStore/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
index ecef29d963..7d8265158b 100644
--- a/samples/BookStore/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
+++ b/samples/BookStore/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Program.cs
@@ -1,24 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create())
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/DashboardDemo/src/DashboardDemo.DbMigrator/DbMigratorHostedService.cs b/samples/DashboardDemo/src/DashboardDemo.DbMigrator/DbMigratorHostedService.cs
new file mode 100644
index 0000000000..dcfd612adc
--- /dev/null
+++ b/samples/DashboardDemo/src/DashboardDemo.DbMigrator/DbMigratorHostedService.cs
@@ -0,0 +1,34 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using DashboardDemo.Data;
+using Serilog;
+using Volo.Abp;
+
+namespace DashboardDemo.DbMigrator
+{
+ public class DbMigratorHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create(options =>
+ {
+ options.UseAutofac();
+ options.Services.AddLogging(c => c.AddSerilog());
+ }))
+ {
+ application.Initialize();
+
+ await application
+ .ServiceProvider
+ .GetRequiredService()
+ .MigrateAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/DashboardDemo/src/DashboardDemo.DbMigrator/Program.cs b/samples/DashboardDemo/src/DashboardDemo.DbMigrator/Program.cs
index 3cfe1b680a..ccfa70ea32 100644
--- a/samples/DashboardDemo/src/DashboardDemo.DbMigrator/Program.cs
+++ b/samples/DashboardDemo/src/DashboardDemo.DbMigrator/Program.cs
@@ -1,39 +1,15 @@
-using System.IO;
+using System.IO;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using DashboardDemo.Data;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
-using Volo.Abp;
-using Volo.Abp.Threading;
namespace DashboardDemo.DbMigrator
{
class Program
{
- static void Main(string[] args)
- {
- ConfigureLogging();
-
- using (var application = AbpApplicationFactory.Create(options =>
- {
- options.UseAutofac();
- options.Services.AddLogging(c => c.AddSerilog());
- }))
- {
- application.Initialize();
-
- AsyncHelper.RunSync(
- () => application
- .ServiceProvider
- .GetRequiredService()
- .MigrateAsync()
- );
-
- application.Shutdown();
- }
- }
-
- private static void ConfigureLogging()
+ static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
@@ -48,6 +24,15 @@ namespace DashboardDemo.DbMigrator
.WriteTo.File(Path.Combine(Directory.GetCurrentDirectory(), "Logs/logs.txt"))
.WriteTo.Console()
.CreateLogger();
+
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/DashboardDemo/test/DashboardDemo.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/samples/DashboardDemo/test/DashboardDemo.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
new file mode 100644
index 0000000000..b10baf1daa
--- /dev/null
+++ b/samples/DashboardDemo/test/DashboardDemo.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
@@ -0,0 +1,26 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+
+namespace DashboardDemo.HttpApi.Client.ConsoleTestApp
+{
+ public class ConsoleTestAppHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create())
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/DashboardDemo/test/DashboardDemo.HttpApi.Client.ConsoleTestApp/Program.cs b/samples/DashboardDemo/test/DashboardDemo.HttpApi.Client.ConsoleTestApp/Program.cs
index c48298d7d4..7ba0e8151e 100644
--- a/samples/DashboardDemo/test/DashboardDemo.HttpApi.Client.ConsoleTestApp/Program.cs
+++ b/samples/DashboardDemo/test/DashboardDemo.HttpApi.Client.ConsoleTestApp/Program.cs
@@ -1,24 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
namespace DashboardDemo.HttpApi.Client.ConsoleTestApp
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create())
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/samples/MicroserviceDemo/applications/ConsoleClientDemo/ConsoleClientDemoHostedService.cs b/samples/MicroserviceDemo/applications/ConsoleClientDemo/ConsoleClientDemoHostedService.cs
new file mode 100644
index 0000000000..e07c8564eb
--- /dev/null
+++ b/samples/MicroserviceDemo/applications/ConsoleClientDemo/ConsoleClientDemoHostedService.cs
@@ -0,0 +1,33 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+using Serilog;
+
+namespace ConsoleClientDemo
+{
+ public class ConsoleClientDemoHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create(options =>
+ {
+ options.Services.AddLogging(loggingBuilder =>
+ {
+ loggingBuilder.AddSerilog(dispose: true);
+ });
+ }))
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/samples/MicroserviceDemo/applications/ConsoleClientDemo/Program.cs b/samples/MicroserviceDemo/applications/ConsoleClientDemo/Program.cs
index 9626e874a1..40082b1d2a 100644
--- a/samples/MicroserviceDemo/applications/ConsoleClientDemo/Program.cs
+++ b/samples/MicroserviceDemo/applications/ConsoleClientDemo/Program.cs
@@ -1,48 +1,14 @@
-using Serilog;
-using Serilog.Events;
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
+using Serilog;
+using Serilog.Events;
namespace ConsoleClientDemo
{
internal class Program
{
- private static void Main(string[] args)
- {
- InitializeSerilog();
-
- Log.Information("Starting ConsoleClientDemo...");
-
- try
- {
- using (var application = AbpApplicationFactory.Create(options =>
- {
- options.Services.AddLogging(loggingBuilder =>
- {
- loggingBuilder.AddSerilog(dispose: true);
- });
- }))
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
- }
- catch (Exception ex)
- {
- Log.Error(ex.Message);
- Log.Error(ex.StackTrace);
- throw;
- }
- }
-
- private static void InitializeSerilog()
+ static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
@@ -50,6 +16,17 @@ namespace ConsoleClientDemo
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
.CreateLogger();
+
+ Log.Information("Starting ConsoleClientDemo...");
+
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs
new file mode 100644
index 0000000000..730a7f7369
--- /dev/null
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs
@@ -0,0 +1,34 @@
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using MyCompanyName.MyProjectName.Data;
+using Serilog;
+using Volo.Abp;
+
+namespace MyCompanyName.MyProjectName.DbMigrator
+{
+ public class DbMigratorHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create(options =>
+ {
+ options.UseAutofac();
+ options.Services.AddLogging(c => c.AddSerilog());
+ }))
+ {
+ application.Initialize();
+
+ await application
+ .ServiceProvider
+ .GetRequiredService()
+ .MigrateAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs
index 1a9175bbee..d1556ea371 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/Program.cs
@@ -1,39 +1,15 @@
-using System.IO;
+using System.IO;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using MyCompanyName.MyProjectName.Data;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
-using Volo.Abp;
-using Volo.Abp.Threading;
namespace MyCompanyName.MyProjectName.DbMigrator
{
class Program
{
- static void Main(string[] args)
- {
- ConfigureLogging();
-
- using (var application = AbpApplicationFactory.Create(options =>
- {
- options.UseAutofac();
- options.Services.AddLogging(c => c.AddSerilog());
- }))
- {
- application.Initialize();
-
- AsyncHelper.RunSync(
- () => application
- .ServiceProvider
- .GetRequiredService()
- .MigrateAsync()
- );
-
- application.Shutdown();
- }
- }
-
- private static void ConfigureLogging()
+ static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
@@ -48,6 +24,15 @@ namespace MyCompanyName.MyProjectName.DbMigrator
.WriteTo.File(Path.Combine(Directory.GetCurrentDirectory(), "Logs/logs.txt"))
.WriteTo.Console()
.CreateLogger();
+
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
new file mode 100644
index 0000000000..ae929ced30
--- /dev/null
+++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
@@ -0,0 +1,26 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+
+namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp
+{
+ public class ConsoleTestAppHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create())
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs
index ada0212483..1e24d8a349 100644
--- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs
+++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs
@@ -1,24 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create())
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}
diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
new file mode 100644
index 0000000000..1ea99ce263
--- /dev/null
+++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs
@@ -0,0 +1,26 @@
+using Microsoft.Extensions.Hosting;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp;
+
+namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp
+{
+ public class ConsoleTestAppHostedService : IHostedService
+ {
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ using (var application = AbpApplicationFactory.Create())
+ {
+ application.Initialize();
+
+ var demo = application.ServiceProvider.GetRequiredService();
+ await demo.RunAsync();
+
+ application.Shutdown();
+ }
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
+ }
+}
diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs
index 23192c4e92..1e24d8a349 100644
--- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs
+++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/Program.cs
@@ -1,24 +1,21 @@
-using System;
+using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
-using Volo.Abp.Threading;
+using Microsoft.Extensions.Hosting;
-namespace MyCompanyName.MyProjectName
+namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp
{
class Program
{
- static void Main(string[] args)
+ static async Task Main(string[] args)
{
- using (var application = AbpApplicationFactory.Create())
- {
- application.Initialize();
-
- var demo = application.ServiceProvider.GetRequiredService();
- AsyncHelper.RunSync(() => demo.RunAsync());
-
- Console.WriteLine("Press ENTER to stop application...");
- Console.ReadLine();
- }
+ await CreateHostBuilder(args).RunConsoleAsync();
}
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddHostedService();
+ });
}
}