Generated banner for Aspnet Core
Generated logo for Aspnet Core

Aspnet Core

OpenAIOfficialPublished by OpenAI

  • Skill
  • Tool integration
  • Software development
  • Apache-2.0
  • No issues found

From the author

Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.
— the description by OpenAI

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The ASP.NET Core skill provides a structured framework for developing web applications, APIs, and services. It emphasizes using current official guidance, prioritizing built-in framework features over third-party dependencies, and maintaining cohesive feature slices. The skill includes a modular reference system covering application models like Blazor, Razor Pages, MVC, and Minimal APIs, alongside essential topics such as dependency injection, security, performance, and migration strategies.

What it does

  • Provides a structured workflow for starting new projects or refactoring existing ones.
  • Offers focused references for different ASP.NET Core application models.
  • Guides the implementation of middleware, routing, and dependency injection.
  • Standardizes the approach to security, identity, and data access.
  • Supports versioning, upgrades, and migration between .NET versions.
  • Maps development tasks to official Microsoft documentation.

When to use it

  • When building new ASP.NET Core web applications or APIs.
  • When refactoring or modernizing legacy .NET codebases.
  • When choosing between Minimal APIs and controller-based architectures.
  • When implementing cross-cutting concerns like authentication or performance tuning.
  • When migrating an application to a newer version of .NET.

Advantages

  • Promotes the use of modern, idiomatic .NET patterns.
  • Reduces technical debt by discouraging outdated Startup/WebHost patterns.
  • Ensures consistency across different application models.
  • Encourages the use of built-in framework features for better performance and maintainability.
  • Provides a clear path for handling complex tasks like gRPC or background services.

Usage examples

“How should I structure a new Minimal API project in .NET 10?”
The agent will guide you through using route groups, keeping handlers thin, moving logic to services, and utilizing built-in validation and OpenAPI support.
“I need to add authentication to my existing MVC application. Where do I start?”
The agent will direct you to the security-and-identity reference to implement Identity, cookies, or bearer auth policies correctly.
“Should I use Blazor or MVC for my new internal dashboard?”
The agent will help you evaluate your requirements against the stack-selection reference to choose the most appropriate application model.
“How do I upgrade my application from .NET 8 to .NET 10?”
The agent will provide the versioning-and-upgrades reference to help identify breaking changes, obsolete APIs, and necessary configuration updates.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/openai/aspnet-core/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip aspnet-core.zip -d .agents/skills

Documentation by OpenAI

ASP.NET Core

Overview

Choose the right ASP.NET Core application model, compose the host and request pipeline correctly, and implement features in the framework style Microsoft documents today.

Load the smallest set of references that fits the task. Do not load every reference by default.

Workflow

  1. Confirm the target framework, SDK, and current app model.

  2. Open references/stack-selection.md first for new apps or major refactors.

  3. Open references/program-and-pipeline.md next for Program.cs, DI, configuration, middleware, routing, logging, and static assets.

  4. Open exactly one primary app-model reference:

  5. Add cross-cutting references only as needed:

  6. Open references/versioning-and-upgrades.md before introducing new platform APIs into an older solution or when migrating between major versions.

  7. Use references/source-map.md when you need the Microsoft Learn section that corresponds to a task not already covered by the focused references.

Default Operating Assumptions

  • Prefer the latest stable ASP.NET Core and .NET unless the repository or user request pins an older target.

  • As of March 2026, prefer .NET 10 / ASP.NET Core 10 for new production work. Treat ASP.NET Core 11 as preview unless the user explicitly asks for preview features.

  • Prefer WebApplicationBuilder and WebApplication. Avoid older Startup and WebHost patterns unless the codebase already uses them or the task is migration.

  • Prefer built-in DI, options/configuration, logging, ProblemDetails, OpenAPI, health checks, rate limiting, output caching, and Identity before adding third-party infrastructure.

  • Keep feature slices cohesive so the page, component, endpoint, controller, validation, service, data access, and tests are easy to trace.

  • Respect the existing app model. Do not rewrite Razor Pages to MVC or controllers to Minimal APIs without a clear reason.

Reference Guide

Execution Notes

  • When generating new code, start from the correct dotnet new template and keep the generated structure recognizable.

  • When editing an existing solution, follow the solution's conventions first and use these references to avoid framework misuse or outdated patterns.

  • When a task mentions "latest", verify the feature on Microsoft Learn or the ASP.NET Core docs repo before relying on memory.

Files

references/program-and-pipeline.md

Program And Pipeline

Primary docs:

Startup Shape

Prefer the modern hosting model:

  1. Create var builder = WebApplication.CreateBuilder(args);

  2. Register services on builder.Services

  3. Build var app = builder.Build();

  4. Configure middleware in the correct order

  5. Map endpoints

  6. Call app.Run();

Use older Startup patterns only when the repository already uses them or the task is migration.

Service Registration

  • Register framework services explicitly: Razor Pages, controllers, Razor components, authentication, authorization, health checks, rate limiting, response compression, output caching, EF Core, and IHttpClientFactory

  • Keep business logic in services instead of controllers, page models, or route handlers

  • Use constructor injection as the default

  • Use options classes for structured configuration

  • Choose lifetimes intentionally:

    • singleton: stateless or shared infrastructure

    • scoped: request-bound work such as DbContext

    • transient: lightweight stateless services

Configuration Defaults

WebApplication.CreateBuilder already loads configuration from common providers such as:

  • appsettings.json

  • environment-specific appsettings.{Environment}.json

  • environment variables

  • command-line arguments

For secrets:

  • use Secret Manager in development

  • use a secure external store in production

  • do not commit secrets to source control

Middleware Order

Middleware order is a frequent source of broken behavior. Favor this shape and adjust only with a concrete reason:

  1. Forwarded headers if behind a proxy or load balancer

  2. Exception handling and HSTS for non-development environments

  3. HTTPS redirection

  4. Static files

  5. Routing when explicit routing middleware is needed

  6. CORS when endpoints require it

  7. Authentication

  8. Authorization

  9. Endpoint-specific middleware such as rate limiting or session as required

  10. Endpoint mapping with MapRazorPages, MapControllers, MapGet, MapHub, or MapGrpcService

Important ordering rules:

  • Call UseAuthentication() before UseAuthorization()

  • Keep proxy/header processing before auth, redirects, and link generation

  • Do not insert custom middleware randomly between auth and authorization without a reason

  • In Minimal API apps, explicit UseRouting() is usually unnecessary unless you need to control order

Routing And Endpoints

  • Prefer endpoint routing everywhere

  • Use route groups for larger Minimal API surfaces

  • Keep MVC and API routes explicit and predictable

  • Use areas only when the application is large enough to benefit from bounded sections

  • Keep endpoint names stable when generating links or integrating with clients

Error Handling

  • Use centralized exception handling instead of scattered try/catch blocks for ordinary request failures

  • Prefer ProblemDetails-style responses for APIs

  • Keep the developer exception page limited to development

  • Separate user-facing failures from internal exception details

Logging And Diagnostics

  • Use ILogger<T> from DI

  • Log structured values, not concatenated strings

  • Put correlation and request diagnostics in middleware or infrastructure, not business logic

  • Enable HTTP logging only when the scenario warrants it and avoid leaking sensitive data

Static Assets And Web Root

  • Keep public assets in wwwroot

  • Treat the web root as publicly readable content

  • Prevent publishing local-only static content through project file rules when needed

  • Use Razor Class Libraries for reusable UI assets across apps

Architectural Defaults

  • Keep Program.cs readable; extract feature registration to extension methods when it starts accumulating unrelated concerns

  • Prefer vertical slices or feature folders over giant "Controllers", "Services", and "Repositories" buckets with weak boundaries

  • Keep framework configuration close to the host and business logic out of it

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
OpenAI
Publisher
OpenAI (Official)
Source
openai/skills · skills/.curated/aspnet-core · commit 49f948f
Licence
Apache License 2.0 (redistribution allowed)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by OpenAI or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download aspnet-core.zip