---
name: dotnet
description: |
Manages .NET 10 runtime, C# 13 syntax, and project configuration
Use when: configuring projects, using modern C# features, setting up service defaults, working with DI patterns
allowed-tools: Read, Edit, Write, Glob, Grep, Bash, mcp__context7__resolve-library-id, mcp__context7__query-docs
---
# .NET 10 / C# 13 Skill
This codebase uses .NET 10 (LTS) with C# 13, configured with strict nullable reference types, implicit usings, and XML documentation. All services follow the same project configuration patterns and share infrastructure through `Sorcha.ServiceDefaults`.
## Quick Start
### Project Configuration
```xml
net10.0
enable
enable
true
$(NoWarn);CS1591
```
### Service Setup Pattern
```csharp
var builder = WebApplication.CreateBuilder(args);
// Always call AddServiceDefaults first
builder.AddServiceDefaults();
// Add service-specific dependencies
builder.Services.AddScoped();
// Add JWT authentication (shared from ServiceDefaults)
builder.AddJwtAuthentication();
var app = builder.Build();
app.MapDefaultEndpoints();
app.UseAuthentication();
app.UseAuthorization();
```
## Key Concepts
| Concept | Usage | Example |
|---------|-------|---------|
| Primary constructors | Services with DI | `class MyService(IRepo repo)` |
| Collection expressions | Default values | `List Items = []` |
| Required members | DTOs/contracts | `public required string Id { get; set; }` |
| Records | Value objects, DTOs | `public record PagedResult(...)` |
| Raw string literals | Multi-line docs | `"""Markdown content"""` |
## Common Patterns
### Global Usings
```csharp
// GlobalUsings.cs
global using System;
global using System.Collections.Generic;
global using System.Linq;
global using System.Threading;
global using System.Threading.Tasks;
global using Sorcha.MyProject.Domain; // Project-specific
```
### Test Project Setup
```xml
```
## See Also
- [patterns](references/patterns.md) - C# 13 features and code patterns
- [workflows](references/workflows.md) - Build, test, and deployment workflows
## Related Skills
- **aspire** - .NET Aspire orchestration and service defaults
- **minimal-apis** - Endpoint configuration with MapGet/MapPost
- **xunit** - Test project configuration and patterns
- **entity-framework** - EF Core integration with repositories
## Documentation Resources
> Fetch latest .NET documentation with Context7.
**How to use Context7:**
1. Use `mcp__context7__resolve-library-id` to search for "dotnet"
2. **Prefer website documentation** (IDs starting with `/websites/`) over source code repositories when available
3. Query with `mcp__context7__query-docs` using the resolved library ID
**Library ID:** `/websites/learn_microsoft_en-us_dotnet` _(high reputation, 42K+ snippets)_
**Recommended Queries:**
- "C# 13 new features primary constructors"
- "collection expressions syntax"
- "required members properties"
- "nullable reference types"