Skip to content

v2.0.0 — .NET 10 modernization and dotnet new template

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Oct 20:09
da55853

Web API Core Seed v2.0.0 — .NET 10 modernization

This is the first major release of the maintained .NET 10 Web API Core Seed. It is not a drop-in upgrade for the historical ASP.NET Core 3.1 application.

Highlights

  • Migrated the application and build tooling to .NET 10 and WebApiCoreSeed.slnx.
  • Organized the sample restaurant domain into explicit application ports, independent core/domain code, EF Core infrastructure adapters and Unit of Work.
  • Modernized Identity/JWT login, versioned OpenAPI with Scalar, native rate limiting and standardized Problem Details responses.
  • Added reproducible local SQL Server/Redis with Docker Compose, two migration contexts and a non-production-only, idempotent development seed.
  • Added structured Serilog logs, OpenTelemetry instrumentation, security headers and safe anonymous-GET Redis response caching.
  • Added bilingual English and Brazilian Portuguese onboarding, architectural decision records, security and contribution guidance.
  • Added an installable, customizable dotnet new template with automated package, generation, restore, build, unit/integration and live-API smoke checks.

Install the release artifact

Download RodriOliveira.WebApiCoreSeed.Templates.2.0.0.nupkg from this release's assets. The package is attached to the GitHub Release; it is not advertised as published on NuGet.org.

# In a directory containing the downloaded .nupkg and SHA256SUMS.txt:
sha256sum --check SHA256SUMS.txt
dotnet new install ./RodriOliveira.WebApiCoreSeed.Templates.2.0.0.nupkg
dotnet new webapi-seed -n SampleApi
cd SampleApi
dotnet restore SampleApi.slnx
dotnet build SampleApi.slnx --configuration Release --no-restore

The generated application includes README.md and README.pt-BR.md with local startup, tests, migrations and seed instructions. Docker is required for the integration suite and for SQL Server/Redis in the full local stack.

To remove the template: dotnet new uninstall RodriOliveira.WebApiCoreSeed.Templates.

Breaking changes from v1.0.0-legacy

Area Legacy .NET Core 3.1 v2.0.0
Runtime/toolchain netcoreapp3.1, historical RestauranteAPI.sln net10.0, SDK pinned by global.json and WebApiCoreSeed.slnx
Project/namespace layout DevIO.* and historical Business/Data projects WebApiCoreSeed.*, modular SampleRestaurant with explicit ports
HTTP/API contracts Legacy controllers, response envelopes and Swagger Versioned APIs, OpenAPI/Scalar and standardized Problem Details
Authentication/rate limits Earlier JWT/Identity integration and package rate limits Updated JWT/Identity policy and ASP.NET Core native rate limiting
Persistence Historic EF Core contexts/migrations Separate Identity and SampleRestaurant EF Core migration ownership
Bootstrap Manual local setup Docker Compose, environment/secret configuration, explicit --seed
Logging/telemetry Legacy Serilog/Seq Serilog plus OpenTelemetry and optional OTLP/Seq
Template distribution No local dotnet new package Versioned webapi-seed NuGet template attached to this release

Migration is not automatic. Back up existing databases, review migration scripts, authentication/HTTP clients, connection strings, JWT settings and schema contracts. Do not replace a production legacy deployment with this sample without independent compatibility testing. See the migration guide.

Version provenance

  • v2.0.0: the exact commit used to build and smoke-test the attached template package.
  • v1.0.0-legacy: immutable-by-policy snapshot of the original .NET Core 3.1 source at commit 6ce03d7f.
  • legacy/netcoreapp3.1: historical source with an explicit runtime end-of-support README warning.

.NET Core 3.1 reached end of support on December 13, 2022. Do not deploy it in production.

Quality and artifact verification

The release workflow requires successful ci, codeql and template-smoke checks on the exact main commit before publication. It then installs the same versioned NuGet asset that will be uploaded, generates a fresh application, builds, runs the tests (including Docker-backed integration tests), probes /health/live, and records its SHA-256 in SHA256SUMS.txt. Once uploaded, the workflow downloads the release assets and verifies the checksum.

Known limitations / next steps

  • Development/reference application only, not a hardened production blueprint. Supply your own secrets, network controls, deployment/rollback and security review.
  • The template does not offer generation-time --auth, --database, --redis or --telemetry removal switches; Redis and external telemetry can be configured at runtime. Component omission needs end-to-end dependency/test work.
  • /hc-ui is disabled owing to dependency compatibility; /hc, /health/live and /health/ready are available.
  • The GitHub Release is the selected distribution channel for v2.0.0; no NuGet.org package feed has been selected or published.
  • Licensing needs explicit owner review: the repository currently has no LICENSE file, so public visibility and a GitHub Release alone do not grant third parties general reuse rights. Do not describe this as an OSI-licensed release until a license is chosen and any third-party provenance is cleared.
  • Repository description/topics may still reflect the original .NET Core 3.1 version until they are updated in GitHub's About settings; see release checklist.

For bugs or enhancement requests, use GitHub Issues; see CONTRIBUTING.md. Report vulnerabilities privately as described in SECURITY.md.