Skip to content

Commit e73da26

Browse files
Prepare for NServiceBus 10 (#561)
* Update workflow files * Add the workflows to the solution * Bumpt the version to 7.0 * Bump target framework to .NET 10.0 * Swap sln file for slnx file * Bump NUnit.Analyzers to 4.9.2 * Add .NET 10.0 as the default option * Bump NServiceBus packages to the ones dependant on NServiceBus 10.0 * Bump third party dependencies to latest * Set the language to preview * Update approval files * Add a test for .NET 10.0 * Add condition to also use prerelease packages for NServiceBus components * Get the preview version of Microsoft.Extensions.Hosting.WindowsServices * Remove the options for .NET 8.0 and .NET 9.0 * Remove old approval files * Update Docker hosting option settings * Improve template consistency * Formatting * Update approval files --------- Co-authored-by: Brandon Ording <bording@gmail.com>
1 parent af90a95 commit e73da26

39 files changed

Lines changed: 121 additions & 278 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Setup .NET SDK
3232
uses: actions/setup-dotnet@v4.3.1
3333
with:
34-
dotnet-version: 9.0.x
34+
global-json-file: global.json
3535
- name: Build
3636
run: dotnet build src --configuration Release
3737
- name: Upload packages

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
- name: Setup .NET SDK
2121
uses: actions/setup-dotnet@v4.3.1
2222
with:
23-
dotnet-version: 9.0.x
23+
global-json-file: global.json
2424
- name: Build
2525
run: dotnet build src --configuration Release
2626
- name: Sign NuGet packages

global.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"sdk": {
3-
"version": "9.0.100",
3+
"version": "10.0.0",
4+
"allowPrerelease": true,
45
"rollForward": "latestFeature"
56
}
67
}

src/Custom.Build.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<Project>
22

33
<PropertyGroup>
4-
<MinVerMinimumMajorMinor>6.0</MinVerMinimumMajorMinor>
4+
<MinVerMinimumMajorMinor>7.0</MinVerMinimumMajorMinor>
55
<MinVerAutoIncrement>minor</MinVerAutoIncrement>
6+
<LangVersion>preview</LangVersion>
67
</PropertyGroup>
78

89
</Project>

src/ParticularTemplates.sln

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

src/ParticularTemplates.slnx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<Solution>
2+
<Folder Name="/Solution Items/">
3+
<File Path="../.github/workflows/ci.yml" />
4+
<File Path="../.github/workflows/release.yml" />
5+
<File Path="Custom.Build.props" />
6+
</Folder>
7+
<Project Path="ParticularTemplates/ParticularTemplates.csproj" />
8+
<Project Path="Tests/Tests.csproj" />
9+
</Solution>

src/ParticularTemplates/NServiceBusEndpoint/.template.config/template.json

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,12 @@
2323
"datatype": "choice",
2424
"choices": [
2525
{
26-
"choice": "net9.0",
27-
"description": "Target net9.0"
28-
},
29-
{
30-
"choice": "net8.0",
31-
"description": "Target net8.0"
26+
"choice": "net10.0",
27+
"description": "Target net10.0"
3228
}
3329
],
3430
"replaces": "TARGET_FRAMEWORK",
35-
"defaultValue": "net9.0"
31+
"defaultValue": "net10.0"
3632
},
3733
"transport": {
3834
"type": "parameter",

src/ParticularTemplates/NServiceBusEndpoint/Program.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#if (hosting == "Docker")
2323
// To create a docker container, use the following command: dotnet publish /t:PublishContainer
24-
// See https://learn.microsoft.com/en-us/dotnet/core/docker/publish-as-container?pivots=dotnet-8-0#publish-net-app for details
24+
// See https://learn.microsoft.com/en-us/dotnet/core/containers/sdk-publish#publish-net-app for details
2525
#endif
2626
var builder = Host.CreateApplicationBuilder(args);
2727
#if (hosting == "WindowsService")
@@ -35,7 +35,8 @@
3535

3636
#if (transport == "LearningTransport")
3737
// Learning Transport: https://docs.particular.net/transports/learning/
38-
var routing = endpointConfiguration.UseTransport(new LearningTransport());
38+
var transport = new LearningTransport();
39+
var routing = endpointConfiguration.UseTransport(transport);
3940
#elseif (transport == "AzureServiceBus")
4041
// Azure Service Bus Transport: https://docs.particular.net/transports/azure-service-bus/
4142
var transport = new AzureServiceBusTransport("CONNECTION_STRING", TopicTopology.Default);
@@ -50,8 +51,7 @@
5051
var routing = endpointConfiguration.UseTransport(transport);
5152
#elseif (transport == "RabbitMQ")
5253
// RabbitMQ Transport: https://docs.particular.net/transports/rabbitmq/
53-
var rabbitMqConnectionString = "CONNECTION_STRING";
54-
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), rabbitMqConnectionString);
54+
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), "CONNECTION_STRING");
5555
var routing = endpointConfiguration.UseTransport(transport);
5656
#elseif (transport == "SQL")
5757
// SQL Server Transport: https://docs.particular.net/transports/sql/
@@ -69,7 +69,7 @@
6969

7070
#if (persistence == "LearningPersistence")
7171
// Learning Persistence: https://docs.particular.net/persistence/learning/
72-
endpointConfiguration.UsePersistence<LearningPersistence>();
72+
var persistence = endpointConfiguration.UsePersistence<LearningPersistence>();
7373
#elseif (persistence == "MSSQL")
7474
// SQL Persistence: https://docs.particular.net/persistence/sql/
7575
// Microsoft SQL Server dialect: https://docs.particular.net/persistence/sql/dialect-mssql

src/ParticularTemplates/NServiceBusEndpoint/ProjectName.csproj

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,30 @@
55
<TargetFramework>TARGET_FRAMEWORK</TargetFramework>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
8-
<EnableSdkContainerSupport Condition="'$(hosting)' == 'Docker'">true</EnableSdkContainerSupport>
98
</PropertyGroup>
109

1110
<!--
1211
Wildcards are used in PackageReferences below to ensure projects created from the template reference the latest versions of packages.
1312
Consider changing the wildcard versions to explicit versions to have more control over which versions are being used.
1413
-->
1514
<ItemGroup>
16-
<PackageReference Include="NServiceBus" Version="9.*" />
17-
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="3.*" />
18-
<PackageReference Condition="'$(hosting)' == 'WindowsService'" Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.*" />
19-
<PackageReference Condition="'$(transport)' == 'AzureServiceBus'" Include="NServiceBus.Transport.AzureServiceBus" Version="5.*" />
20-
<PackageReference Condition="'$(transport)' == 'AzureStorageQueues'" Include="NServiceBus.Transport.AzureStorageQueues" Version="13.*" />
21-
<PackageReference Condition="'$(transport)' == 'PostgreSQL'" Include="NServiceBus.Transport.PostgreSql" Version="8.*" />
22-
<PackageReference Condition="'$(transport)' == 'RabbitMQ'" Include="NServiceBus.RabbitMQ" Version="10.*" />
23-
<PackageReference Condition="'$(transport)' == 'SQL'" Include="NServiceBus.Transport.SqlServer" Version="8.*" />
24-
<PackageReference Condition="'$(transport)' == 'SQS'" Include="NServiceBus.AmazonSQS" Version="8.*" />
25-
<PackageReference Condition="'$(persistence)' == 'AzureTable'" Include="NServiceBus.Persistence.AzureTable" Version="6.*" />
26-
<PackageReference Condition="'$(persistence)' == 'CosmosDB'" Include="NServiceBus.Persistence.CosmosDB" Version="3.*" />
27-
<PackageReference Condition="'$(persistence)' == 'DynamoDB'" Include="NServiceBus.Persistence.DynamoDB" Version="3.*" />
28-
<PackageReference Condition="'$(persistence)' == 'MongoDB'" Include="NServiceBus.Storage.MongoDB" Version="5.*" />
29-
<PackageReference Condition="'$(persistence)' == 'RavenDB'" Include="NServiceBus.RavenDB" Version="9.*" />
30-
<PackageReference Condition="'$(UsesSqlPersistence)' == 'true'" Include="NServiceBus.Persistence.Sql" Version="8.*" />
31-
<PackageReference Condition="'$(NeedsSqlClient)' == 'true'" Include="Microsoft.Data.SqlClient" Version="5.*" />
32-
<PackageReference Condition="'$(NeedsPostgreSql)' == 'true'" Include="Npgsql" Version="8.*" />
15+
<PackageReference Include="NServiceBus" Version="10.*-*" />
16+
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="4.*-*" />
17+
<PackageReference Condition="'$(hosting)' == 'WindowsService'" Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.*-*" />
18+
<PackageReference Condition="'$(transport)' == 'AzureServiceBus'" Include="NServiceBus.Transport.AzureServiceBus" Version="6.*-*" />
19+
<PackageReference Condition="'$(transport)' == 'AzureStorageQueues'" Include="NServiceBus.Transport.AzureStorageQueues" Version="14.*-*" />
20+
<PackageReference Condition="'$(transport)' == 'PostgreSQL'" Include="NServiceBus.Transport.PostgreSql" Version="9.*-*" />
21+
<PackageReference Condition="'$(transport)' == 'RabbitMQ'" Include="NServiceBus.RabbitMQ" Version="11.*-*" />
22+
<PackageReference Condition="'$(transport)' == 'SQL'" Include="NServiceBus.Transport.SqlServer" Version="9.*-*" />
23+
<PackageReference Condition="'$(transport)' == 'SQS'" Include="NServiceBus.AmazonSQS" Version="9.*-*" />
24+
<PackageReference Condition="'$(persistence)' == 'AzureTable'" Include="NServiceBus.Persistence.AzureTable" Version="7.*-*" />
25+
<PackageReference Condition="'$(persistence)' == 'CosmosDB'" Include="NServiceBus.Persistence.CosmosDB" Version="4.*-*" />
26+
<PackageReference Condition="'$(persistence)' == 'DynamoDB'" Include="NServiceBus.Persistence.DynamoDB" Version="4.*-*" />
27+
<PackageReference Condition="'$(persistence)' == 'MongoDB'" Include="NServiceBus.Storage.MongoDB" Version="6.*-*" />
28+
<PackageReference Condition="'$(persistence)' == 'RavenDB'" Include="NServiceBus.RavenDB" Version="10.*-*" />
29+
<PackageReference Condition="'$(UsesSqlPersistence)' == 'true'" Include="NServiceBus.Persistence.Sql" Version="9.*-*" />
30+
<PackageReference Condition="'$(NeedsSqlClient)' == 'true'" Include="Microsoft.Data.SqlClient" Version="6.*" />
31+
<PackageReference Condition="'$(NeedsPostgreSql)' == 'true'" Include="Npgsql" Version="9.*" />
3332
<PackageReference Condition="'$(persistence)' == 'MySQL'" Include="MySql.Data" Version="9.*" />
3433
<PackageReference Condition="'$(persistence)' == 'Oracle'" Include="Oracle.ManagedDataAccess.Core" Version="23.*" />
3534
</ItemGroup>

src/ParticularTemplates/Saga/SagaName.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33
namespace NamespaceName;
44

5-
internal class SagaName(ILogger<SagaName> log) : Saga<SagaNameData>,
6-
IAmStartedByMessages<MessageType1>,
7-
IAmStartedByMessages<MessageType2>,
8-
IHandleTimeouts<MyCustomTimeout>
5+
internal class SagaName(ILogger<SagaName> log) : Saga<SagaNameData>, IAmStartedByMessages<MessageType1>, IAmStartedByMessages<MessageType2>, IHandleTimeouts<MyCustomTimeout>
96
{
107
protected override void ConfigureHowToFindSaga(SagaPropertyMapper<SagaNameData> mapper)
118
{

0 commit comments

Comments
 (0)