Skip to content

Commit ad36be4

Browse files
authored
feat : upgrade to .NET 9 (#1061)
* update nuget and deps to 9.0 * update infra * update to .net 9 * update docs * fix issue
1 parent df50461 commit ad36be4

33 files changed

Lines changed: 128 additions & 126 deletions

.github/workflows/blazor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: setup dotnet
2828
uses: actions/setup-dotnet@v4
2929
with:
30-
dotnet-version: 8.0.108
30+
dotnet-version: 9.x
3131
- name: restore dependencies
3232
run: dotnet restore ./src/apps/blazor/client/Client.csproj
3333
- name: build

.github/workflows/webapi.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: setup dotnet
2626
uses: actions/setup-dotnet@v4
2727
with:
28-
dotnet-version: 8.0.108
28+
dotnet-version: 9.x
2929
- name: restore dependencies
3030
run: dotnet restore ./src/api/server/Server.csproj
3131
- name: build

.template.config/template.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
},
1717
"identity": "FullStackHero.NET.StarterKit",
1818
"name": "FullStackHero .NET Starter Kit",
19-
"description": "The best way to start a full-stack .NET 8 Web App.",
19+
"description": "The best way to start a full-stack .NET 9 Web App.",
2020
"shortName": "fsh",
2121
"sourceName": "FSH.Starter",
2222
"preferNameDirectory": true,

FSH.StarterKit.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<metadata>
44
<id>FullStackHero.NET.StarterKit</id>
55
<title>FullStackHero .NET Starter Kit</title>
6-
<version>2.0.2-rc</version>
6+
<version>2.0.3-rc</version>
77
<authors>Mukesh Murugan</authors>
8-
<description>The best way to start a full-stack Multi-tenant .NET 8 Web App.</description>
8+
<description>The best way to start a full-stack Multi-tenant .NET 9 Web App.</description>
99
<language>en-US</language>
1010
<license type="file">./content/LICENSE</license>
1111
<copyright>2024</copyright>

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# FullStackHero .NET 8 Starter Kit 🚀
1+
# FullStackHero .NET 9 Starter Kit 🚀
22

33
> With ASP.NET Core Web API & Blazor Client
44
5-
FullStackHero .NET Starter Kit is a starting point for your next `.NET 8 Clean Architecture` Solution that incorporates the most essential packages and features your projects will ever need including out-of-the-box Multi-Tenancy support. This project can save well over 200+ hours of development time for your team.
5+
FullStackHero .NET Starter Kit is a starting point for your next `.NET 9 Clean Architecture` Solution that incorporates the most essential packages and features your projects will ever need including out-of-the-box Multi-Tenancy support. This project can save well over 200+ hours of development time for your team.
66

77
![FullStackHero .NET Starter Kit](./assets/fullstackhero-dotnet-starter-kit.png)
88

@@ -16,7 +16,7 @@ As the project is still in beta, the NuGet packages are not yet available. You c
1616

1717
Prerequisites:
1818

19-
- .NET 8 SDK installed.
19+
- .NET 9 SDK installed.
2020
- Visual Studio IDE.
2121
- Docker Desktop.
2222
- PostgreSQL instance running on your machine or docker container.
@@ -38,8 +38,8 @@ Please follow the below instructions.
3838

3939
# ✨ Technologies
4040

41-
- ASP.NET Core 8
42-
- Entity Framework Core 8
41+
- .NET 9
42+
- Entity Framework Core 9
4343
- Blazor
4444
- MediatR
4545
- PostgreSQL
-17.6 KB
Loading

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
55
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>

src/Directory.Packages.props

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,60 +13,61 @@
1313
<PackageVersion Include="Ardalis.Specification.EntityFrameworkCore" Version="8.0.0" />
1414
<PackageVersion Include="Asp.Versioning.Http" Version="8.1.0" />
1515
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
16-
<PackageVersion Include="Finbuckle.MultiTenant" Version="7.0.2" />
17-
<PackageVersion Include="Finbuckle.MultiTenant.AspNetCore" Version="7.0.2" />
18-
<PackageVersion Include="Finbuckle.MultiTenant.EntityFrameworkCore" Version="7.0.2" />
19-
<PackageVersion Include="Hangfire" Version="1.8.14" />
16+
<PackageVersion Include="Finbuckle.MultiTenant" Version="9.0.0" />
17+
<PackageVersion Include="Finbuckle.MultiTenant.AspNetCore" Version="9.0.0" />
18+
<PackageVersion Include="Finbuckle.MultiTenant.EntityFrameworkCore" Version="9.0.0" />
19+
<PackageVersion Include="Hangfire" Version="1.8.15" />
2020
<PackageVersion Include="Hangfire.MemoryStorage" Version="1.8.1.1" />
21-
<PackageVersion Include="Hangfire.PostgreSql" Version="1.20.9" />
22-
<PackageVersion Include="MailKit" Version="4.7.1.1" />
23-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.8" />
24-
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.0" />
25-
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="8.0.8" />
26-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.8" />
27-
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.8" />
28-
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.8" />
29-
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="8.0.8" />
21+
<PackageVersion Include="Hangfire.PostgreSql" Version="1.20.10" />
22+
<PackageVersion Include="MailKit" Version="4.8.0" />
23+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.0" />
24+
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.0" />
25+
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.0" />
26+
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.11.0" />
27+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0" />
28+
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
29+
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="9.0.0" />
30+
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="9.0.0" />
3031
<PackageVersion Include="Microsoft.NET.Build.Containers" Version="8.0.100" />
3132
<PackageVersion Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.5" />
32-
<PackageVersion Include="MimeKit" Version="4.7.1" />
33-
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" />
34-
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.9.0" />
33+
<PackageVersion Include="MimeKit" Version="4.8.0" />
34+
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.1" />
35+
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.10.0" />
3536
<PackageVersion Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.0.0-beta.12" />
3637
<PackageVersion Include="OpenTelemetry.Instrumentation.Process" Version="0.5.0-beta.6" />
3738
<PackageVersion Include="Serilog.Expressions" Version="5.0.0" />
38-
<PackageVersion Include="Serilog.Sinks.OpenTelemetry" Version="4.0.0" />
39-
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.7.2" />
40-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
39+
<PackageVersion Include="Serilog.Sinks.OpenTelemetry" Version="4.1.1" />
40+
<PackageVersion Include="Swashbuckle.AspNetCore" Version="7.0.0" />
41+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
4142
<PackageVersion Include="Swashbuckle.AspNetCore.ReDoc" Version="6.5.0" />
42-
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.7.0" />
43-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.7.0" />
44-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.7.0" />
43+
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.11.0" />
44+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.11.0" />
45+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.11.0" />
4546
</ItemGroup>
4647
<ItemGroup>
4748
<PackageVersion Include="Mapster" Version="7.4.0" />
48-
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.8" />
49-
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.8" />
49+
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.0" />
50+
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.0" />
5051
</ItemGroup>
5152
<ItemGroup>
5253
<PackageVersion Include="SonarAnalyzer.CSharp" Version="9.32.0.97167" />
5354
</ItemGroup>
5455
<ItemGroup>
55-
<PackageVersion Include="MediatR" Version="12.4.0" />
56-
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="11.9.2" />
57-
<PackageVersion Include="Carter" Version="8.2.1" />
56+
<PackageVersion Include="MediatR" Version="12.4.1" />
57+
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="11.11.0" />
58+
<PackageVersion Include="Carter" Version="9.0.0" />
5859
</ItemGroup>
5960
<ItemGroup>
60-
<PackageVersion Include="Serilog" Version="4.0.1" />
61-
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.2" />
61+
<PackageVersion Include="Serilog" Version="4.1.0" />
62+
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.3" />
6263
<PackageVersion Include="Serilog.Enrichers.CorrelationId" Version="3.0.1" />
6364
<PackageVersion Include="Serilog.Enrichers.Environment" Version="3.0.1" />
6465
<PackageVersion Include="Serilog.Enrichers.Span" Version="3.1.0" />
6566
<PackageVersion Include="Serilog.Exceptions" Version="8.4.0" />
6667
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
6768
<PackageVersion Include="Serilog.Sinks.Elasticsearch" Version="10.0.0" />
6869
<PackageVersion Include="Serilog.Formatting.Elasticsearch" Version="10.0.0" />
69-
<PackageVersion Include="Serilog.Sinks.Async" Version="2.0.0" />
70+
<PackageVersion Include="Serilog.Sinks.Async" Version="2.1.0" />
7071
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
7172
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
7273
<PackageVersion Include="Serilog.Sinks.Seq" Version="8.0.0" />
@@ -77,12 +78,13 @@
7778
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />
7879
</ItemGroup>
7980
<ItemGroup Label="Aspire">
80-
<PackageVersion Include="Aspire.Hosting.AppHost" Version="8.1.0" />
81-
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.8.0" />
82-
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="8.1.0" />
83-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.9.0" />
81+
<PackageVersion Include="Aspire.Hosting.AppHost" Version="9.0.0" />
82+
<PackageVersion Include="Aspire.AppHost.Sdk" Version="9.0.0" />
83+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.0.0" />
84+
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="9.0.0" />
85+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.10.0" />
8486
<PackageVersion Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.9.0-beta.2" />
85-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.9.0" />
87+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.10.0" />
8688
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
8789
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
8890
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.9.0" />

src/Dockerfile.Blazor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
1+
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env
22
WORKDIR /app
33

44
COPY . ./

src/Shared/Authorization/AppConstants.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
namespace FSH.Starter.Shared.Authorization;
44
public static class AppConstants
55
{
6-
public static readonly Collection<string> SupportedImageFormats = new()
7-
{
6+
public static readonly Collection<string> SupportedImageFormats =
7+
[
88
".jpeg",
99
".jpg",
1010
".png"
11-
};
11+
];
1212
public static readonly string StandardImageFormat = "image/jpeg";
1313
public static readonly int MaxImageWidth = 1500;
1414
public static readonly int MaxImageHeight = 1500;

0 commit comments

Comments
 (0)