Skip to content

Commit bb28688

Browse files
authored
Merge pull request #735 from nickprotop/feat/consoleex-command-center
RFC: SharpConsoleUI command center for the interactive shell
2 parents 1f47038 + 4228ce0 commit bb28688

138 files changed

Lines changed: 9744 additions & 1006 deletions

File tree

Some content is hidden

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

catalog/Frameworks/Official-DotNet-ASPNet/skills/dotnet-webapi/SKILL.md

Lines changed: 506 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"version": "0.1.0",
3+
"category": "Web",
4+
"compatibility": "Requires an ASP.NET Core project or solution."
5+
}

catalog/Platform/Official-DotNet-Experimental/skills/exp-assertion-quality/manifest.json

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

catalog/Platform/Official-DotNet-Experimental/skills/exp-dotnet-test-frameworks/SKILL.md

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

catalog/Platform/Official-DotNet-Experimental/skills/exp-dotnet-test-frameworks/manifest.json

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

catalog/Platform/Official-DotNet-Experimental/skills/exp-test-gap-analysis/manifest.json

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

catalog/Platform/Official-DotNet-Experimental/skills/exp-test-maintainability/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Analyze .NET test code for maintainability issues: duplicated boilerplate, copy-
3636

3737
### Step 1: Gather the test code
3838

39-
Read all test files the user provides or references. If the user points to a directory or project, scan for all test files — see the `exp-dotnet-test-frameworks` skill for framework-specific markers.
39+
Read all test files the user provides or references. If the user points to a directory or project, scan for all test files — see the `dotnet-test-frameworks` skill for framework-specific markers.
4040

4141
### Step 2: Identify maintainability issues
4242

catalog/Platform/Official-DotNet-Experimental/skills/exp-test-smell-detection/manifest.json

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

catalog/Platform/Official-DotNet-Experimental/skills/exp-test-tagging/manifest.json

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

catalog/Platform/Official-DotNet-Upgrade/skills/migrate-dotnet10-to-dotnet11/SKILL.md

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ description: >
1111
Dockerfiles for .NET 11.
1212
DO NOT USE FOR: .NET Framework migrations, upgrading from .NET 9 or earlier,
1313
greenfield .NET 11 projects, or cosmetic modernization unrelated to the upgrade.
14-
NOTE: .NET 11 is in preview. Covers breaking changes through Preview 1.
14+
NOTE: .NET 11 is in preview. Covers breaking changes through Preview 3.
1515
license: MIT
1616
---
1717

1818
# .NET 10 → .NET 11 Migration
1919

2020
Migrate a .NET 10 project or solution to .NET 11, systematically resolving all breaking changes. The outcome is a project targeting `net11.0` that builds cleanly, passes tests, and accounts for every behavioral, source-incompatible, and binary-incompatible change introduced in .NET 11.
2121

22-
> **Note:** .NET 11 is currently in preview. This skill covers breaking changes documented through Preview 1. It will be updated as additional previews ship.
22+
> **Note:** .NET 11 is currently in preview. This skill covers breaking changes documented through Preview 3.
2323
2424
## When to Use
2525

@@ -59,10 +59,14 @@ Migrate a .NET 10 project or solution to .NET 11, systematically resolving all b
5959
- **SDK attribute**: `Microsoft.NET.Sdk.Web` → ASP.NET Core; `Microsoft.NET.Sdk.WindowsDesktop` with `<UseWPF>` or `<UseWindowsForms>` → WPF/WinForms
6060
- **PackageReferences**: `Microsoft.EntityFrameworkCore.*` → EF Core; `Microsoft.EntityFrameworkCore.Cosmos` → Cosmos DB provider
6161
- **Dockerfile presence** → Container changes relevant
62-
- **Cryptography API usage** → DSA on macOS affected
62+
- **Cryptography API usage** → DSA on macOS affected; AIA cert download changes relevant
6363
- **Compression API usage** → DeflateStream/GZipStream/ZipArchive changes relevant
64-
- **TAR API usage** → Header checksum validation change relevant
64+
- **TAR API usage** → Header checksum validation and HardLink entry changes relevant
6565
- **`NamedPipeClientStream` usage with `SafePipeHandle`** → SYSLIB0063 constructor obsoletion relevant
66+
- **`BackgroundService` usage** → Unhandled exceptions now stop the host
67+
- **`Microsoft.OpenApi` direct usage** → v3 API breaking changes in ASP.NET Core OpenAPI
68+
- **EF Core SQL Server with Entra ID auth** → SqlClient 7.0 auth dependency changes
69+
- **NativeAOT native libraries on Unix** → Output filename prefix changed
6670
4. Record which reference documents are relevant (see the reference loading table in Step 3).
6771
5. Do a **clean build** (`dotnet build --no-incremental` or delete `bin`/`obj`) on the current `net10.0` target to establish a clean baseline. Record any pre-existing warnings.
6872

@@ -93,9 +97,10 @@ Load reference documents based on the project's technology areas:
9397
| `references/csharp-compiler-dotnet10to11.md` | Always (C# 15 compiler breaking changes) |
9498
| `references/core-libraries-dotnet10to11.md` | Always (applies to all .NET 11 projects) |
9599
| `references/sdk-msbuild-dotnet10to11.md` | Always (SDK and build tooling changes) |
96-
| `references/efcore-dotnet10to11.md` | Project uses Entity Framework Core (especially Cosmos DB provider) |
97-
| `references/cryptography-dotnet10to11.md` | Project uses cryptography APIs or targets macOS |
98-
| `references/runtime-jit-dotnet10to11.md` | Deploying to older hardware or embedded devices |
100+
| `references/aspnetcore-dotnet10to11.md` | Project uses ASP.NET Core (OpenAPI, Blazor) |
101+
| `references/efcore-dotnet10to11.md` | Project uses Entity Framework Core |
102+
| `references/cryptography-dotnet10to11.md` | Project uses cryptography APIs, mTLS, or targets macOS |
103+
| `references/runtime-jit-dotnet10to11.md` | Deploying to older hardware, embedded devices, or using NativeAOT |
99104

100105
Work through each build error systematically. Common patterns:
101106

@@ -115,6 +120,12 @@ Work through each build error systematically. Common patterns:
115120

116121
8. **`when` switch-expression-arm parsing**`(X.Y) when` is now parsed as a constant pattern with a `when` clause instead of a cast expression, which can cause existing code to fail to compile or change meaning. Review switch expressions using `when` and adjust syntax as needed.
117122

123+
9. **Microsoft.OpenApi v3 breaking changes**`Microsoft.AspNetCore.OpenApi` now depends on `Microsoft.OpenApi` 3.x. Code using `Microsoft.OpenApi` types directly (`OpenApiDocument`, `OpenApiSchema`, etc.) will have compile errors. Follow the v3 upgrade guide.
124+
125+
10. **EF Core Design package no longer transitive**`Microsoft.EntityFrameworkCore.Tools` and `.Tasks` no longer depend on `.Design`. Add an explicit `PackageReference` if needed.
126+
127+
11. **EFOptimizeContext MSBuild property removed** — Replace with `<EFScaffoldModelStage>` and `<EFPrecompileQueriesStage>`.
128+
118129
### Step 4: Address behavioral changes
119130

120131
These changes compile successfully but alter runtime behavior. Review each one and determine impact:
@@ -137,6 +148,24 @@ These changes compile successfully but alter runtime behavior. Review each one a
137148

138149
9. **Mono launch target for .NET Framework** — No longer set automatically. If using Mono for .NET Framework apps on Linux, specify explicitly.
139150

151+
10. **Unhandled BackgroundService exceptions stop the host** — Exceptions from `ExecuteAsync()` now propagate and crash the host. Add try/catch in background services that should not bring down the application.
152+
153+
11. **ZipArchive CRC32 validation** — ZIP reads now validate CRC32 checksums. Corrupt or truncated archives that previously succeeded will now throw `InvalidDataException`.
154+
155+
12. **TarWriter emits HardLink entries** — Hard-linked files are now written as `HardLink` entries instead of duplicated data. Consumers of .NET-produced tar archives must handle `HardLink` entries.
156+
157+
13. **AIA certificate downloads disabled** — Server-side client-certificate validation no longer downloads intermediate CAs via AIA by default. Pre-install the full chain or have clients send intermediates.
158+
159+
14. **Blazor Virtualize OverscanCount default changed** — Default `OverscanCount` changed from 3 to 15. Set explicitly if performance-sensitive.
160+
161+
15. **Microsoft.Data.SqlClient 7.0 — Entra ID auth separated** — Azure/Entra ID authentication dependencies removed from the core SqlClient package. Add `Microsoft.Data.SqlClient.Extensions.Azure` if using Entra ID auth.
162+
163+
16. **SqlVector&lt;T&gt; excluded from SELECT** — Vector properties are no longer auto-loaded. Use explicit projections to include vector values.
164+
165+
17. **SQLitePCLRaw encryption bundles removed**`bundle_e_sqlcipher` and other encryption bundle packages removed in SQLitePCLRaw 3.0.
166+
167+
18. **NativeAOT Unix native library `lib` prefix** — Output filenames now include `lib` prefix on Linux/macOS (e.g., `libMyLib.so`).
168+
140169
### Step 5: Update infrastructure
141170

142171
1. **Dockerfiles**: Update base images from 10.0 to 11.0:
@@ -155,7 +184,7 @@ These changes compile successfully but alter runtime behavior. Review each one a
155184
"sdk": {
156185
- "version": "10.0.100",
157186
- "rollForward": "latestFeature"
158-
+ "version": "11.0.100-preview.1",
187+
+ "version": "11.0.100-preview.3",
159188
+ "rollForward": "latestFeature"
160189
},
161190
"otherSettings": {
@@ -173,11 +202,15 @@ These changes compile successfully but alter runtime behavior. Review each one a
173202
3. If the application is containerized, build and test the container image
174203
4. Smoke-test the application, paying special attention to:
175204
- Compression behavior with empty streams
176-
- TAR file reading
205+
- TAR file reading (checksum validation and HardLink entries)
177206
- EF Core Cosmos DB operations (must be async)
178207
- DSA usage on macOS
179208
- Memory-intensive MemoryStream usage
180209
- Span collection expression assignments
210+
- BackgroundService exception handling
211+
- mTLS / client certificate chain validation
212+
- EF Core SQL Server with Entra ID authentication
213+
- NativeAOT output filenames on Unix
181214
5. Review the diff and ensure no unintended behavioral changes were introduced
182215

183216
## Reference Documents
@@ -189,6 +222,7 @@ The `references/` folder contains detailed breaking change information organized
189222
| `references/csharp-compiler-dotnet10to11.md` | Always (C# 15 compiler breaking changes) |
190223
| `references/core-libraries-dotnet10to11.md` | Always (applies to all .NET 11 projects) |
191224
| `references/sdk-msbuild-dotnet10to11.md` | Always (SDK and build tooling changes) |
192-
| `references/efcore-dotnet10to11.md` | Project uses Entity Framework Core (especially Cosmos DB provider) |
193-
| `references/cryptography-dotnet10to11.md` | Project uses cryptography APIs or targets macOS |
194-
| `references/runtime-jit-dotnet10to11.md` | Deploying to older hardware or embedded devices |
225+
| `references/aspnetcore-dotnet10to11.md` | Project uses ASP.NET Core (OpenAPI, Blazor) |
226+
| `references/efcore-dotnet10to11.md` | Project uses Entity Framework Core |
227+
| `references/cryptography-dotnet10to11.md` | Project uses cryptography APIs, mTLS, or targets macOS |
228+
| `references/runtime-jit-dotnet10to11.md` | Deploying to older hardware, embedded devices, or using NativeAOT |

0 commit comments

Comments
 (0)