Skip to content

Commit 065d91d

Browse files
committed
[edit] Windows service with database template switched to Simplify.Scheduler and upgraded to .NET 7
[r] formatting [up] Simplify.Repository.FluentNHibernate bump to 1.5.*
1 parent 9de15ac commit 065d91d

File tree

17 files changed

+81
-72
lines changed

17 files changed

+81
-72
lines changed

src/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## [0.6] - 2023-07-07
4+
5+
### Changed
6+
7+
- Windows service with database template switched to Simplify.Scheduler and upgraded to .NET 7
8+
- Formatting
9+
10+
### Dependencies
11+
12+
- Simplify.Repository.FluentNHibernate bump to 1.5.*
13+
314
## [0.5] - 2022-11-25
415

516
### Added

src/Simplify.ProjectsTemplates.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<TargetFramework>net7.0</TargetFramework>
44

55
<PackageType>Template</PackageType>
6-
<PackageVersion>0.5</PackageVersion>
6+
<PackageVersion>0.6</PackageVersion>
77
<PackageId>Simplify.ProjectsTemplates</PackageId>
88
<IsPackable>true</IsPackable>
99
<PackageProjectUrl>https://github.com/SimplifyNet/Simplify.ProjectsTemplates</PackageProjectUrl>

src/templates/MyProject.Scheduler/.template.config/template.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"$schema": "http://json.schemastore.org/template",
33
"author": "Alexander Krylkov",
4-
"classifications": ["Scheduler",
4+
"classifications": [
5+
"Scheduler",
56
"Simplify"
67
],
78
"name": "Simplify.Scheduler console scheduler",
89
"identity": "Simplify.Template.Scheduler",
910
"shortName": "simplify.scheduler",
10-
"tags":
11-
{
11+
"tags": {
1212
"language": "C#",
1313
"type": "project"
1414
},

src/templates/MyProjectWindowsServiceWithDatabase/.template.config/template.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"$schema": "http://json.schemastore.org/template",
33
"author": "Alexander Krylkov",
4-
"classifications": ["Scheduler",
4+
"classifications": [
5+
"Scheduler",
56
"Simplify"
67
],
7-
"name": "Simplify.WindowsServices scheduler with database work based on windows service",
8+
"name": "Simplify.Scheduler console scheduler with domain and persistance layer",
89
"identity": "Simplify.Template.WindowsService",
910
"shortName": "simplify.windowsservicewithdatabase",
10-
"tags":
11-
{
11+
"tags": {
1212
"language": "C#",
1313
"type": "project"
1414
},

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.Database.SchemaUpdater/MyProjectWindowsServiceWithDatabase.Database.SchemaUpdater.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
<ProjectReference Include="..\MyProjectWindowsServiceWithDatabase.Database\MyProjectWindowsServiceWithDatabase.Database.csproj" />
1111
</ItemGroup>
1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.*" />
14-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.*" />
13+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.*" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.*" />
1515
<PackageReference Include="NUnit" Version="3.13.*" />
16-
<PackageReference Include="NUnit3TestAdapter" Version="4.2.*" />
16+
<PackageReference Include="NUnit3TestAdapter" Version="4.5.*" />
1717
</ItemGroup>
1818
</Project>

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.Database/MyProjectWindowsServiceWithDatabase.Database.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>netstandard2.0</TargetFramework>
3+
<TargetFramework>net7.0</TargetFramework>
44
<LangVersion>latest</LangVersion>
55

66
<Description>MyProjectWindowsServiceWithDatabase database implementation</Description>
@@ -11,7 +11,7 @@
1111
</ItemGroup>
1212
<ItemGroup>
1313
<PackageReference Include="Simplify.DI" Version="4.2.*" />
14-
<PackageReference Include="Simplify.Repository.FluentNHibernate" Version="1.5.0" />
14+
<PackageReference Include="Simplify.Repository.FluentNHibernate" Version="1.5.*" />
1515
<PackageReference Include="System.Data.SqlClient" Version="4.8.*" />
1616
</ItemGroup>
1717
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Diagnostics;
2+
using Simplify.Scheduler;
3+
4+
namespace MyProject.Scheduler.Infrastructure;
5+
6+
public static class SchedulerHandlerObserver
7+
{
8+
public static MultitaskScheduler SubscribeLog(this MultitaskScheduler handler)
9+
{
10+
handler.OnException += OnException;
11+
12+
return handler;
13+
}
14+
15+
private static void OnException(SchedulerExceptionArgs args) => Trace.WriteLine(args.Exception.Message);
16+
}

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.Service/Infrastructure/WindowsServiceHandlerObserver.cs

Lines changed: 0 additions & 21 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Parameters
2+
3+
$appName = "MyProjectWindowsServiceWithDatabase"
4+
$appPath = $PSScriptRoot
5+
$exepath = $appPath + "\" + $appName + ".exe"
6+
$description = "MyProjectWindowsServiceWithDatabase service"
7+
$stopTimeout = 150000 # 5 minutes
8+
$logonUser = "LocalService"
9+
10+
# Installation execution
11+
12+
nssm install $appName $exepath
13+
nssm set $appName AppDirectory $appPath
14+
nssm set $appName DisplayName $description
15+
nssm set $appName Description $description
16+
nssm set $appName ObjectName $logonUser
17+
nssm set $appName AppStopMethodConsole $stopTimeout
18+
nssm set $appName AppExit Default Exit

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.Service/MyProjectWindowsServiceWithDatabase.Service.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net48</TargetFramework>
3+
<TargetFramework>net7.0</TargetFramework>
44
<LangVersion>latest</LangVersion>
55
<Platforms>x64</Platforms>
66
<OutputType>Exe</OutputType>
@@ -13,7 +13,8 @@
1313
</ItemGroup>
1414
<ItemGroup>
1515
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.*" />
16-
<PackageReference Include="Simplify.WindowsServices" Version="2.14.*" />
16+
<PackageReference Include="Simplify.Scheduler" Version="1.3.*" />
17+
1718
<PackageReference Include="Simplify.DI.Provider.SimpleInjector" Version="1.11.*" />
1819
</ItemGroup>
1920
<ItemGroup>
Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
1-
using MyProjectWindowsServiceWithDatabase.Service;
2-
using MyProjectWindowsServiceWithDatabase.Service.Infrastructure;
1+
using MyProject.Scheduler.Infrastructure;
2+
using MyProjectWindowsServiceWithDatabase.Service;
33
using MyProjectWindowsServiceWithDatabase.Service.Setup;
44
using Simplify.DI;
5-
using Simplify.DI.Provider.SimpleInjector;
6-
using Simplify.WindowsServices;
5+
using Simplify.Scheduler;
76

8-
#if DEBUG
9-
// Run debugger
10-
System.Diagnostics.Debugger.Launch();
11-
#endif
12-
13-
(DIContainer.Current = new SimpleInjectorDIProvider())
7+
// IOC container setup
8+
DIContainer.Current
149
.RegisterAll()
1510
.Verify();
1611

17-
using var handler = new SingleTaskServiceHandler<Worker>(IocRegistrations.Configuration)
12+
using var scheduler = new SingleTaskScheduler<Worker>(IocRegistrations.Configuration)
1813
.SubscribeLog();
1914

20-
if (!handler.Start(args))
15+
if (!scheduler.Start(args))
2116
{
17+
// One-time launch of user code without the scheduler
18+
2219
using var scope = DIContainer.Current.BeginLifetimeScope();
2320
scope.Resolver.Resolve<Worker>().Run();
2421
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
{
2-
"profiles":
3-
{
4-
"MyProjectWindowsServiceWithDatabase":
5-
{
6-
"commandName": "Project",
7-
"commandLineArgs": "console"
2+
"profiles": {
3+
"MyProjectWindowsServiceWithDatabase": {
4+
"commandName": "Project"
85
}
96
}
107
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Documentation
22

3-
This template is based on `Simplify.WindowsServices` Framework.
3+
This project is based on `Simplify.Scheduler` Framework.
44

5-
[Documentation](https://github.com/SimplifyNet/Simplify/wiki/Simplify.WindowsServices)
5+
[Documentation](https://github.com/SimplifyNet/Simplify/wiki/Simplify.Scheduler)
6+
7+
To register it as windows service use Install.ps1 script for [NSSM](https://nssm.cc/)

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.Service/ServiceInstaller.cs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.Service/appsettings.Production.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
2-
"MyProjectWindowsServiceWithDatabaseDatabaseConnectionSettings":
3-
{
2+
"MyProjectWindowsServiceWithDatabaseDatabaseConnectionSettings": {
43
"ServerName": "",
54
"UserName": "",
65
"UserPassword": "",

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.Service/appsettings.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
{
2-
"ServiceSettings":
3-
{
2+
"ServiceSettings": {
43
"CrontabExpression": "* * * * *"
54
},
6-
"MyProjectWindowsServiceWithDatabaseDatabaseConnectionSettings":
7-
{
5+
"MyProjectWindowsServiceWithDatabaseDatabaseConnectionSettings": {
86
"ServerName": "",
97
"DataBaseName": "",
108
"UserName": "",

src/templates/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase/MyProjectWindowsServiceWithDatabase.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>netstandard2.0</TargetFramework>
3+
<TargetFramework>net7.0</TargetFramework>
44
<LangVersion>latest</LangVersion>
55

66
<Description>MyProjectWindowsServiceWithDatabase domain library</Description>

0 commit comments

Comments
 (0)