Skip to content
This repository was archived by the owner on Jan 24, 2025. It is now read-only.

Commit a43ab37

Browse files
authored
Merge pull request #222 from DuendeSoftware/joe/net9
Add support for .NET 9
2 parents c2f6942 + 5b83d4e commit a43ab37

File tree

80 files changed

+268
-1780
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+268
-1780
lines changed

.github/workflows/ci.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ jobs:
3434
with:
3535
dotnet-version: |
3636
8.0.x
37-
37+
9.0.x
38+
3839
- run: dotnet --info
3940

4041
- if: contains(matrix.runs-on, 'macOS') || contains(matrix.runs-on, 'ubuntu')

.vscode/launch.json

+88-16
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@
1919
// "order": 10
2020
}
2121
},
22+
{
23+
"name": "IdentityServer + All APIs",
24+
"configurations": ["IdentityServer", "Api", "Api with DPoP", "Api with resource isolation"],
25+
"presentation": {
26+
"hidden": false,
27+
"group": "10-compunds",
28+
// "order": 10
29+
}
30+
},
2231
],
2332
"configurations": [
2433
{
@@ -76,7 +85,7 @@
7685
}
7786
},
7887
{
79-
"name": "Isolated Api",
88+
"name": "Api with resource isolation",
8089
"type": "coreclr",
8190
"request": "launch",
8291
"preLaunchTask": "build-api.isolated",
@@ -94,13 +103,13 @@
94103
}
95104
},
96105
{
97-
"name": "JS8",
106+
"name": "Bff (.NET 8)",
98107
"type": "coreclr",
99108
"request": "launch",
100-
"preLaunchTask": "build-js8",
101-
"program": "${workspaceFolder}/samples/JS8/bin/Debug/net8.0/JS8.dll",
109+
"preLaunchTask": "build-bff-8",
110+
"program": "${workspaceFolder}/samples/Bff/bin/Debug/net8.0/Bff.dll",
102111
"args": [],
103-
"cwd": "${workspaceFolder}/samples/JS8",
112+
"cwd": "${workspaceFolder}/samples/Bff",
104113
"env": {
105114
"ASPNETCORE_ENVIRONMENT": "Development"
106115
},
@@ -111,17 +120,17 @@
111120
"console": "externalTerminal",
112121
"presentation": {
113122
"hidden": false,
114-
"order": 10
123+
"order": 100
115124
}
116125
},
117126
{
118-
"name": "JS8 DPoP",
127+
"name": "Bff (.NET 9)",
119128
"type": "coreclr",
120129
"request": "launch",
121-
"preLaunchTask": "build-js8dpop",
122-
"program": "${workspaceFolder}/samples/JS8.DPoP/bin/Debug/net8.0/JS8.DPoP.dll",
130+
"preLaunchTask": "build-bff-9",
131+
"program": "${workspaceFolder}/samples/Bff/bin/Debug/net9.0/Bff.dll",
123132
"args": [],
124-
"cwd": "${workspaceFolder}/samples/JS8.DPoP",
133+
"cwd": "${workspaceFolder}/samples/Bff",
125134
"env": {
126135
"ASPNETCORE_ENVIRONMENT": "Development"
127136
},
@@ -136,13 +145,13 @@
136145
}
137146
},
138147
{
139-
"name": "JS8 EF",
148+
"name": "Bff DPoP (.NET 8)",
140149
"type": "coreclr",
141150
"request": "launch",
142-
"preLaunchTask": "build-js8ef",
143-
"program": "${workspaceFolder}/samples/JS8.EF/bin/Debug/net8.0/JS8.EF.dll",
151+
"preLaunchTask": "build-bffdpop-8",
152+
"program": "${workspaceFolder}/samples/Bff.DPoP/bin/Debug/net8.0/Bff.DPoP.dll",
144153
"args": [],
145-
"cwd": "${workspaceFolder}/samples/JS8.EF",
154+
"cwd": "${workspaceFolder}/samples/Bff.DPoP",
146155
"env": {
147156
"ASPNETCORE_ENVIRONMENT": "Development"
148157
},
@@ -153,7 +162,70 @@
153162
"console": "externalTerminal",
154163
"presentation": {
155164
"hidden": false,
156-
"order": 10
165+
"order": 101
166+
}
167+
},
168+
{
169+
"name": "Bff DPoP (.NET 9)",
170+
"type": "coreclr",
171+
"request": "launch",
172+
"preLaunchTask": "build-bffdpop-9",
173+
"program": "${workspaceFolder}/samples/Bff.DPoP/bin/Debug/net9.0/Bff.DPoP.dll",
174+
"args": [],
175+
"cwd": "${workspaceFolder}/samples/Bff.DPoP",
176+
"env": {
177+
"ASPNETCORE_ENVIRONMENT": "Development"
178+
},
179+
"serverReadyAction": {
180+
"action": "openExternally",
181+
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
182+
},
183+
"console": "externalTerminal",
184+
"presentation": {
185+
"hidden": false,
186+
"order": 11
187+
}
188+
},
189+
{
190+
"name": "Bff EF (.NET 8)",
191+
"type": "coreclr",
192+
"request": "launch",
193+
"preLaunchTask": "build-bffef-8",
194+
"program": "${workspaceFolder}/samples/Bff.EF/bin/Debug/net8.0/Bff.EF.dll",
195+
"args": [],
196+
"cwd": "${workspaceFolder}/samples/Bff.EF",
197+
"env": {
198+
"ASPNETCORE_ENVIRONMENT": "Development"
199+
},
200+
"serverReadyAction": {
201+
"action": "openExternally",
202+
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
203+
},
204+
"console": "externalTerminal",
205+
"presentation": {
206+
"hidden": false,
207+
"order": 102
208+
}
209+
},
210+
{
211+
"name": "Bff EF (.NET 9)",
212+
"type": "coreclr",
213+
"request": "launch",
214+
"preLaunchTask": "build-bffef-9",
215+
"program": "${workspaceFolder}/samples/Bff.EF/bin/Debug/net9.0/Bff.EF.dll",
216+
"args": [],
217+
"cwd": "${workspaceFolder}/samples/Bff.EF",
218+
"env": {
219+
"ASPNETCORE_ENVIRONMENT": "Development"
220+
},
221+
"serverReadyAction": {
222+
"action": "openExternally",
223+
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
224+
},
225+
"console": "externalTerminal",
226+
"presentation": {
227+
"hidden": false,
228+
"order": 12
157229
}
158230
},
159231
{
@@ -174,7 +246,7 @@
174246
"console": "externalTerminal",
175247
"presentation": {
176248
"hidden": false,
177-
"order": 10
249+
"order": 50
178250
}
179251
}
180252
]

.vscode/tasks.json

+38-8
Original file line numberDiff line numberDiff line change
@@ -62,48 +62,78 @@
6262
"problemMatcher": "$msCompile"
6363
},
6464
{
65-
"label": "build-jsyarp",
65+
"label": "build-bff-8",
6666
"type": "process",
6767
"command": "dotnet",
6868
"args": [
6969
"build",
70-
"${workspaceFolder}/samples/JS.Yarp/JS.Yarp.csproj",
70+
"--framework=net8.0",
71+
"${workspaceFolder}/samples/Bff/Bff.csproj",
7172
"/property:GenerateFullPaths=true",
7273
"/consoleloggerparameters:NoSummary"
7374
],
7475
"problemMatcher": "$msCompile"
7576
},
7677
{
77-
"label": "build-js8",
78+
"label": "build-bff-9",
7879
"type": "process",
7980
"command": "dotnet",
8081
"args": [
8182
"build",
82-
"${workspaceFolder}/samples/JS8/JS8.csproj",
83+
"--framework=net9.0",
84+
"${workspaceFolder}/samples/Bff/Bff.csproj",
8385
"/property:GenerateFullPaths=true",
8486
"/consoleloggerparameters:NoSummary"
8587
],
8688
"problemMatcher": "$msCompile"
8789
},
8890
{
89-
"label": "build-js8dpop",
91+
"label": "build-bffdpop-8",
9092
"type": "process",
9193
"command": "dotnet",
9294
"args": [
9395
"build",
94-
"${workspaceFolder}/samples/JS8.DPoP/JS8.DPoP.csproj",
96+
"--framework=net8.0",
97+
"${workspaceFolder}/samples/Bff.DPoP/Bff.DPoP.csproj",
9598
"/property:GenerateFullPaths=true",
9699
"/consoleloggerparameters:NoSummary"
97100
],
98101
"problemMatcher": "$msCompile"
99102
},
100103
{
101-
"label": "build-js8ef",
104+
"label": "build-bffdpop-9",
102105
"type": "process",
103106
"command": "dotnet",
104107
"args": [
105108
"build",
106-
"${workspaceFolder}/samples/JS8.EF/JS8.EF.csproj",
109+
"--framework=net9.0",
110+
"${workspaceFolder}/samples/Bff.DPoP/Bff.DPoP.csproj",
111+
"/property:GenerateFullPaths=true",
112+
"/consoleloggerparameters:NoSummary"
113+
],
114+
"problemMatcher": "$msCompile"
115+
},
116+
{
117+
"label": "build-bffef-8",
118+
"type": "process",
119+
"command": "dotnet",
120+
"args": [
121+
"build",
122+
"--framework=net8.0",
123+
"${workspaceFolder}/samples/Bff.EF/Bff.EF.csproj",
124+
"/property:GenerateFullPaths=true",
125+
"/consoleloggerparameters:NoSummary"
126+
],
127+
"problemMatcher": "$msCompile"
128+
},
129+
{
130+
"label": "build-bffef-9",
131+
"type": "process",
132+
"command": "dotnet",
133+
"args": [
134+
"build",
135+
"--framework=net9.0",
136+
"${workspaceFolder}/samples/Bff.EF/Bff.EF.csproj",
107137
"/property:GenerateFullPaths=true",
108138
"/consoleloggerparameters:NoSummary"
109139
],

Directory.Build.targets

+50-31
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,69 @@
11
<Project>
22
<PropertyGroup Condition=" '$(TargetFramework)' == 'net8.0'">
3-
<FrameworkVersionRuntime>8.0.0</FrameworkVersionRuntime>
4-
<FrameworkVersionTesting>8.0.11</FrameworkVersionTesting>
5-
<WilsonVersion>8.0.1</WilsonVersion>
3+
<AspNetCoreVersion>8.0.1</AspNetCoreVersion>
4+
<!-- EF must be at least 8.0.10 so that 'Microsoft.Extensions.Caching.Memory'
5+
is at least 8.0.1, which addresses a known high severity vulnerability.
6+
The SQL Server EF provider that is commonly used has a transitive
7+
vulnerability in 8.0.10 that is fixed in 8.0.11, so going to 8.0.11 seems
8+
prudent. -->
9+
<EFCoreVersion>8.0.11</EFCoreVersion>
10+
<IdentityServerVersion>7.1.0-rc.1</IdentityServerVersion>
11+
<MicrosoftExtensionsVersion>8.0.1</MicrosoftExtensionsVersion>
12+
<YarpVersion>2.1.0</YarpVersion>
13+
</PropertyGroup>
14+
15+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net9.0'">
16+
<AspNetCoreVersion>9.0.0</AspNetCoreVersion>
17+
<EFCoreVersion>9.0.0</EFCoreVersion>
18+
<IdentityServerVersion>7.1.0-rc.1</IdentityServerVersion>
19+
<MicrosoftExtensionsVersion>9.0.0</MicrosoftExtensionsVersion>
620
<YarpVersion>2.1.0</YarpVersion>
7-
<IdentityServerVersion>7.1.0-preview.1</IdentityServerVersion>
821
</PropertyGroup>
922

1023
<ItemGroup>
11-
<!-- build -->
24+
<!-- Build -->
1225
<PackageReference Include="MinVer" Version="4.2.0" PrivateAssets="all" />
1326
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
1427

15-
<!-- runtime -->
28+
<!-- Duende -->
29+
<PackageReference Update="Duende.AccessTokenManagement.OpenIdConnect" Version="3.1.1" />
1630
<PackageReference Update="Duende.IdentityModel" Version="7.0.0" />
17-
<PackageReference Update="Duende.AccessTokenManagement.OpenIdConnect" Version="3.1.0-preview.1" />
18-
<!-- Need this version because so 'Microsoft.Extensions.Caching.Memory' is at least 8.0.1 that addresses known high severity vulnerability -->
19-
<PackageReference Update="Microsoft.EntityFrameworkCore.Relational" Version="8.0.10" />
20-
<PackageReference Update="Microsoft.Extensions.Http" Version="$(FrameworkVersionRuntime)" />
21-
<PackageReference Update="Microsoft.AspNetCore.Components.WebAssembly" Version="$(FrameworkVersionRuntime)" />
22-
<PackageReference Update="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="$(FrameworkVersionRuntime)" />
23-
<PackageReference Update="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="$(FrameworkVersionRuntime)" />
24-
<PackageReference Update="Microsoft.AspNetCore.Components.Authorization" Version="$(FrameworkVersionRuntime)" />
25-
<PackageReference Update="Yarp.ReverseProxy" Version="$(YarpVersion)" />
31+
<PackageReference Update="Duende.IdentityServer" Version="$(IdentityServerVersion)" />
2632

27-
<!-- samples -->
33+
<!-- ASP.NET Core -->
34+
<PackageReference Update="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(AspNetCoreVersion)" />
35+
<PackageReference Update="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(AspNetCoreVersion)" />
36+
<PackageReference Update="Microsoft.AspNet Core.Components.WebAssembly" Version="$(AspNetCoreVersion)" />
37+
<PackageReference Update="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="$(AspNetCoreVersion)" />
38+
<PackageReference Update="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="$(AspNetCoreVersion)" />
39+
<PackageReference Update="Microsoft.AspNetCore.Components.Authorization" Version="$(AspNetCoreVersion)" />
40+
41+
<!-- Entity Framework Core -->
42+
<PackageReference Update="Microsoft.EntityFrameworkCore.Design" Version="$(EFCoreVersion)" />
43+
<PackageReference Update="Microsoft.EntityFrameworkCore.InMemory" Version="$(EFCoreVersion)" />
44+
<PackageReference Update="Microsoft.EntityFrameworkCore.Relational" Version="$(EFCoreVersion)" />
45+
<PackageReference Update="Microsoft.EntityFrameworkCore.Sqlite" Version="$(EFCoreVersion)" />
46+
<PackageReference Update="Microsoft.EntityFrameworkCore.SqlServer" Version="$(EFCoreVersion)" />
47+
48+
<!-- Microsoft Extensions -->
49+
<PackageReference Update="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsVersion)" />
50+
51+
<!-- Other -->
52+
<PackageReference Update="Yarp.ReverseProxy" Version="$(YarpVersion)" />
2853
<PackageReference Update="Serilog.AspNetCore" Version="8.0.3" />
29-
<PackageReference Update="Microsoft.IdentityModel.JsonWebTokens" Version="$(WilsonVersion)" />
30-
<PackageReference Update="System.IdentityModel.Tokens.Jwt" Version="$(WilsonVersion)" />
31-
32-
<!-- testing -->
33-
<PackageReference Update="Microsoft.EntityFrameworkCore.InMemory" Version="$(FrameworkVersionTesting)" />
34-
<PackageReference Update="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(FrameworkVersionTesting)" />
35-
<PackageReference Update="Microsoft.AspNetCore.TestHost" Version="$(FrameworkVersionTesting)" />
36-
<PackageReference Update="Microsoft.Extensions.TimeProvider.Testing" Version="$(FrameworkVersionTesting)" />
37-
38-
<PackageReference Update="Duende.IdentityServer" Version="$(IdentityServerVersion)" />
39-
40-
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.12.0" />
41-
<PackageReference Update="xunit" Version="2.9.2" />
42-
<PackageReference Update="xunit.runner.visualstudio" Version="2.8.2">
54+
55+
56+
<!-- Testing -->
57+
<PackageReference Update="coverlet.collector" Version="6.0.0">
4358
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
4459
<PrivateAssets>all</PrivateAssets>
4560
</PackageReference>
4661
<PackageReference Update="FluentAssertions" Version="6.7.0" />
47-
<PackageReference Update="coverlet.collector" Version="6.0.0">
62+
<PackageReference Update="Microsoft.AspNetCore.TestHost" Version="$(AspNetCoreVersion)" />
63+
<PackageReference Update="Microsoft.Extensions.TimeProvider.Testing" Version="8.8.0" />
64+
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.12.0" />
65+
<PackageReference Update="xunit" Version="2.9.2" />
66+
<PackageReference Update="xunit.runner.visualstudio" Version="2.8.2">
4867
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
4968
<PrivateAssets>all</PrivateAssets>
5069
</PackageReference>

0 commit comments

Comments
 (0)