Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4.3.1
with:
dotnet-version: 9.0.x
global-json-file: global.json
- name: Build
run: dotnet build src --configuration Release
- name: Upload packages
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4.3.1
with:
dotnet-version: 9.0.x
global-json-file: global.json
- name: Build
run: dotnet build src --configuration Release
- name: Sign NuGet packages
Expand Down
3 changes: 2 additions & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"sdk": {
"version": "9.0.100",
"version": "10.0.0",
"allowPrerelease": true,
"rollForward": "latestFeature"
}
}
3 changes: 2 additions & 1 deletion src/Custom.Build.props
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<Project>

<PropertyGroup>
<MinVerMinimumMajorMinor>6.0</MinVerMinimumMajorMinor>
<MinVerMinimumMajorMinor>7.0</MinVerMinimumMajorMinor>
<MinVerAutoIncrement>minor</MinVerAutoIncrement>
<LangVersion>preview</LangVersion>
</PropertyGroup>

</Project>
36 changes: 0 additions & 36 deletions src/ParticularTemplates.sln

This file was deleted.

9 changes: 9 additions & 0 deletions src/ParticularTemplates.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Solution>
<Folder Name="/Solution Items/">
<File Path="../.github/workflows/ci.yml" />
<File Path="../.github/workflows/release.yml" />
<File Path="Custom.Build.props" />
</Folder>
<Project Path="ParticularTemplates/ParticularTemplates.csproj" />
<Project Path="Tests/Tests.csproj" />
</Solution>
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,12 @@
"datatype": "choice",
"choices": [
{
"choice": "net9.0",
"description": "Target net9.0"
},
{
"choice": "net8.0",
"description": "Target net8.0"
"choice": "net10.0",
"description": "Target net10.0"
}
],
"replaces": "TARGET_FRAMEWORK",
"defaultValue": "net9.0"
"defaultValue": "net10.0"
},
"transport": {
"type": "parameter",
Expand Down
10 changes: 5 additions & 5 deletions src/ParticularTemplates/NServiceBusEndpoint/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

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

#if (transport == "LearningTransport")
// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);
#elseif (transport == "AzureServiceBus")
// Azure Service Bus Transport: https://docs.particular.net/transports/azure-service-bus/
var transport = new AzureServiceBusTransport("CONNECTION_STRING", TopicTopology.Default);
Expand All @@ -50,8 +51,7 @@
var routing = endpointConfiguration.UseTransport(transport);
#elseif (transport == "RabbitMQ")
// RabbitMQ Transport: https://docs.particular.net/transports/rabbitmq/
var rabbitMqConnectionString = "CONNECTION_STRING";
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), rabbitMqConnectionString);
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), "CONNECTION_STRING");
var routing = endpointConfiguration.UseTransport(transport);
#elseif (transport == "SQL")
// SQL Server Transport: https://docs.particular.net/transports/sql/
Expand All @@ -69,7 +69,7 @@

#if (persistence == "LearningPersistence")
// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
var persistence = endpointConfiguration.UsePersistence<LearningPersistence>();
#elseif (persistence == "MSSQL")
// SQL Persistence: https://docs.particular.net/persistence/sql/
// Microsoft SQL Server dialect: https://docs.particular.net/persistence/sql/dialect-mssql
Expand Down
35 changes: 17 additions & 18 deletions src/ParticularTemplates/NServiceBusEndpoint/ProjectName.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,30 @@
<TargetFramework>TARGET_FRAMEWORK</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableSdkContainerSupport Condition="'$(hosting)' == 'Docker'">true</EnableSdkContainerSupport>
</PropertyGroup>

<!--
Wildcards are used in PackageReferences below to ensure projects created from the template reference the latest versions of packages.
Consider changing the wildcard versions to explicit versions to have more control over which versions are being used.
-->
<ItemGroup>
<PackageReference Include="NServiceBus" Version="9.*" />
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="3.*" />
<PackageReference Condition="'$(hosting)' == 'WindowsService'" Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.*" />
<PackageReference Condition="'$(transport)' == 'AzureServiceBus'" Include="NServiceBus.Transport.AzureServiceBus" Version="5.*" />
<PackageReference Condition="'$(transport)' == 'AzureStorageQueues'" Include="NServiceBus.Transport.AzureStorageQueues" Version="13.*" />
<PackageReference Condition="'$(transport)' == 'PostgreSQL'" Include="NServiceBus.Transport.PostgreSql" Version="8.*" />
<PackageReference Condition="'$(transport)' == 'RabbitMQ'" Include="NServiceBus.RabbitMQ" Version="10.*" />
<PackageReference Condition="'$(transport)' == 'SQL'" Include="NServiceBus.Transport.SqlServer" Version="8.*" />
<PackageReference Condition="'$(transport)' == 'SQS'" Include="NServiceBus.AmazonSQS" Version="8.*" />
<PackageReference Condition="'$(persistence)' == 'AzureTable'" Include="NServiceBus.Persistence.AzureTable" Version="6.*" />
<PackageReference Condition="'$(persistence)' == 'CosmosDB'" Include="NServiceBus.Persistence.CosmosDB" Version="3.*" />
<PackageReference Condition="'$(persistence)' == 'DynamoDB'" Include="NServiceBus.Persistence.DynamoDB" Version="3.*" />
<PackageReference Condition="'$(persistence)' == 'MongoDB'" Include="NServiceBus.Storage.MongoDB" Version="5.*" />
<PackageReference Condition="'$(persistence)' == 'RavenDB'" Include="NServiceBus.RavenDB" Version="9.*" />
<PackageReference Condition="'$(UsesSqlPersistence)' == 'true'" Include="NServiceBus.Persistence.Sql" Version="8.*" />
<PackageReference Condition="'$(NeedsSqlClient)' == 'true'" Include="Microsoft.Data.SqlClient" Version="5.*" />
<PackageReference Condition="'$(NeedsPostgreSql)' == 'true'" Include="Npgsql" Version="8.*" />
<PackageReference Include="NServiceBus" Version="10.*-*" />
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="4.*-*" />
<PackageReference Condition="'$(hosting)' == 'WindowsService'" Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.*-*" />
<PackageReference Condition="'$(transport)' == 'AzureServiceBus'" Include="NServiceBus.Transport.AzureServiceBus" Version="6.*-*" />
<PackageReference Condition="'$(transport)' == 'AzureStorageQueues'" Include="NServiceBus.Transport.AzureStorageQueues" Version="14.*-*" />
<PackageReference Condition="'$(transport)' == 'PostgreSQL'" Include="NServiceBus.Transport.PostgreSql" Version="9.*-*" />
<PackageReference Condition="'$(transport)' == 'RabbitMQ'" Include="NServiceBus.RabbitMQ" Version="11.*-*" />
<PackageReference Condition="'$(transport)' == 'SQL'" Include="NServiceBus.Transport.SqlServer" Version="9.*-*" />
<PackageReference Condition="'$(transport)' == 'SQS'" Include="NServiceBus.AmazonSQS" Version="9.*-*" />
<PackageReference Condition="'$(persistence)' == 'AzureTable'" Include="NServiceBus.Persistence.AzureTable" Version="7.*-*" />
<PackageReference Condition="'$(persistence)' == 'CosmosDB'" Include="NServiceBus.Persistence.CosmosDB" Version="4.*-*" />
<PackageReference Condition="'$(persistence)' == 'DynamoDB'" Include="NServiceBus.Persistence.DynamoDB" Version="4.*-*" />
<PackageReference Condition="'$(persistence)' == 'MongoDB'" Include="NServiceBus.Storage.MongoDB" Version="6.*-*" />
<PackageReference Condition="'$(persistence)' == 'RavenDB'" Include="NServiceBus.RavenDB" Version="10.*-*" />
<PackageReference Condition="'$(UsesSqlPersistence)' == 'true'" Include="NServiceBus.Persistence.Sql" Version="9.*-*" />
<PackageReference Condition="'$(NeedsSqlClient)' == 'true'" Include="Microsoft.Data.SqlClient" Version="6.*" />
<PackageReference Condition="'$(NeedsPostgreSql)' == 'true'" Include="Npgsql" Version="9.*" />
<PackageReference Condition="'$(persistence)' == 'MySQL'" Include="MySql.Data" Version="9.*" />
<PackageReference Condition="'$(persistence)' == 'Oracle'" Include="Oracle.ManagedDataAccess.Core" Version="23.*" />
</ItemGroup>
Expand Down
5 changes: 1 addition & 4 deletions src/ParticularTemplates/Saga/SagaName.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

namespace NamespaceName;

internal class SagaName(ILogger<SagaName> log) : Saga<SagaNameData>,
IAmStartedByMessages<MessageType1>,
IAmStartedByMessages<MessageType2>,
IHandleTimeouts<MyCustomTimeout>
internal class SagaName(ILogger<SagaName> log) : Saga<SagaNameData>, IAmStartedByMessages<MessageType1>, IAmStartedByMessages<MessageType2>, IHandleTimeouts<MyCustomTimeout>
{
protected override void ConfigureHowToFindSaga(SagaPropertyMapper<SagaNameData> mapper)
{
Expand Down
2 changes: 1 addition & 1 deletion src/Tests/ApprovalFiles/TemplateTests.Handler.approved.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Handler.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ NServiceBusEndpoint.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down Expand Up @@ -39,14 +39,15 @@ var builder = Host.CreateApplicationBuilder(args);
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpoint");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");

// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
var persistence = endpointConfiguration.UsePersistence<LearningPersistence>();

// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ NServiceBusEndpointHostingConsoleApp.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down Expand Up @@ -39,14 +39,15 @@ var builder = Host.CreateApplicationBuilder(args);
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointHostingConsoleApp");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");

// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
var persistence = endpointConfiguration.UsePersistence<LearningPersistence>();

// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ NServiceBusEndpointHostingDocker.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableSdkContainerSupport>true</EnableSdkContainerSupport>
</PropertyGroup>

<!--
Expand All @@ -34,7 +33,7 @@ Program.cs
using Microsoft.Extensions.Hosting;

// To create a docker container, use the following command: dotnet publish /t:PublishContainer
// See https://learn.microsoft.com/en-us/dotnet/core/docker/publish-as-container?pivots=dotnet-8-0#publish-net-app for details
// See https://learn.microsoft.com/en-us/dotnet/core/containers/sdk-publish#publish-net-app for details
var builder = Host.CreateApplicationBuilder(args);

// TODO: consider moving common endpoint configuration into a shared project
Expand All @@ -43,14 +42,15 @@ var builder = Host.CreateApplicationBuilder(args);
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointHostingDocker");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");

// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
var persistence = endpointConfiguration.UsePersistence<LearningPersistence>();

// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ NServiceBusEndpointHostingWindowsService.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down Expand Up @@ -41,14 +41,15 @@ builder.Services.AddWindowsService();
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointHostingWindowsService");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");

// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
var persistence = endpointConfiguration.UsePersistence<LearningPersistence>();

// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ NServiceBusEndpointPersistenceAzureTable.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down Expand Up @@ -40,7 +40,8 @@ var builder = Host.CreateApplicationBuilder(args);
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointPersistenceAzureTable");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ NServiceBusEndpointPersistenceCosmosDB.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down Expand Up @@ -41,7 +41,8 @@ var builder = Host.CreateApplicationBuilder(args);
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointPersistenceCosmosDB");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ NServiceBusEndpointPersistenceDynamoDB.csproj

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down Expand Up @@ -40,7 +40,8 @@ var builder = Host.CreateApplicationBuilder(args);
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointPersistenceDynamoDB");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
var transport = new LearningTransport();
var routing = endpointConfiguration.UseTransport(transport);

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
Expand Down
Loading