/legacy-aspnet
Maintain classic ASP.NET applications on .NET Framework, including Web Forms, older MVC, and legacy hosting patterns, while planning realistic modernization boundaries. USE FOR: working in Web Forms, legacy MVC, or classic ASP.NET applications; reviewing old IIS-centric
$ npx -y skills add managedcode/dotnet-skills --skill legacy-aspnet --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/legacy-aspnet
Context preview
The summary Claude sees to decide when to auto-load this skill.
Maintain classic ASP.NET applications on .NET Framework, including Web Forms, older MVC, and legacy hosting patterns, while planning realistic modernization boundaries. USE FOR: working in Web Forms, legacy MVC, or classic ASP.NET applications; reviewing old IIS-centric
SKILL.md
legacy-aspnet.SKILL.mdname: legacy-aspnet
description: "Maintain classic ASP.NET applications on .NET Framework, including Web Forms, older MVC, and legacy hosting patterns, while planning realistic modernization boundaries. USE FOR: working in Web Forms, legacy MVC, or classic ASP.NET applications; reviewing old IIS-centric configuration and lifecycle behavior; planning migration toward ASP.NET Core. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
compatibility: "Requires classic ASP.NET on .NET Framework."
Legacy ASP.NET
Trigger On
- working in Web Forms, legacy MVC, or classic ASP.NET applications
- reviewing old IIS-centric configuration and lifecycle behavior
- planning migration toward ASP.NET Core without breaking core business flows
Workflow
1. Treat classic ASP.NET as a distinct stack with different hosting, lifecycle, and configuration rules from ASP.NET Core. 2. Stabilize behavior first: routing, session, auth, server controls, configuration transforms, and deployment assumptions. 3. Plan modernization in seams: isolate domain and service logic, then move replaceable edges instead of rewriting the whole app at once. 4. Use `wcf` or `entity-framework6` when the legacy app depends on those subsystems rather than flattening them into generic web work. 5. Be careful with guidance copied from ASP.NET Core because middleware, DI, and hosting assumptions do not transfer directly. 6. Validate in an environment that resembles real IIS and configuration transforms.
Deliver
- practical maintenance guidance for classic ASP.NET
- stabilized legacy behavior and modernization seams
- a migration path that avoids unnecessary risk
Validate
- classic and Core guidance are not mixed
- legacy runtime assumptions are preserved deliberately
- migration steps are incremental and testable
References
- [Migration Paths](references/migration.md): strategies for migrating from ASP.NET to ASP.NET Core, including incremental migration, strangler fig pattern, and component-specific guidance
- [Maintenance Patterns](references/patterns.md): stabilization and maintenance patterns for legacy ASP.NET code, including abstraction layers, testing seams, and deployment practices
Read more
name: legacy-aspnet description: "Maintain classic ASP.NET applications on .NET Framework, including Web Forms, older MVC, and legacy hosting patterns, while planning realistic modernization boundaries. USE FOR: working in Web Forms, legacy MVC, or classic ASP.NET applications; reviewing old IIS-centric configuration and lifecycle behavior; planning migration toward ASP.NET Core. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made." compatibility: "Requires classic ASP.NET on .NET Framework."
Legacy ASP.NET
Trigger On
- working in Web Forms, legacy MVC, or classic ASP.NET applications
- reviewing old IIS-centric configuration and lifecycle behavior
- planning migration toward ASP.NET Core without breaking core business flows
Workflow
1. Treat classic ASP.NET as a distinct stack with different hosting, lifecycle, and configuration rules from ASP.NET Core. 2. Stabilize behavior first: routing, session, auth, server controls, configuration transforms, and deployment assumptions. 3. Plan modernization in seams: isolate domain and service logic, then move replaceable edges instead of rewriting the whole app at once. 4. Use `wcf` or `entity-framework6` when the legacy app depends on those subsystems rather than flattening them into generic web work. 5. Be careful with guidance copied from ASP.NET Core because middleware, DI, and hosting assumptions do not transfer directly. 6. Validate in an environment that resembles real IIS and configuration transforms.
Deliver
- practical maintenance guidance for classic ASP.NET
- stabilized legacy behavior and modernization seams
- a migration path that avoids unnecessary risk
Validate
- classic and Core guidance are not mixed
- legacy runtime assumptions are preserved deliberately
- migration steps are incremental and testable
References
- [Migration Paths](references/migration.md): strategies for migrating from ASP.NET to ASP.NET Core, including incremental migration, strangler fig pattern, and component-specific guidance
- [Maintenance Patterns](references/patterns.md): stabilization and maintenance patterns for legacy ASP.NET code, including abstraction layers, testing seams, and deployment practices
Stop explaining .NET to your AI. Start building. We've all been there: asking Claude to use Entity Framework, only to get EF6 patterns in a .NET 8 project. Explaining to Copilot that Blazor Server and Blazor WebAssembly aren't the same thing.
Repo: managedcode/dotnet-skills
Other skills on dotnet-skills.
- /aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET. USE FOR: working on ASP.NET Core apps, services, or middleware; changing auth, routing, configuration,
Open skill - /aspire
Build, upgrade, and operate Aspire 13.4.x C# or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, MCP, and deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*,
Open skill - /azure-functions
Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns. USE FOR: working on Azure Functions in .NET; migrating from the in-process model to the isolated worker model; adding Durable
Open skill - /blazor
Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design, state flow, rendering, and hosting choices. USE FOR: building interactive web UIs with C# instead of JavaScript; choosing between Server, WebAssembly, or
Open skill - /entity-framework6
Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is not the right next step. USE FOR: EF6 codebases; runtime versus ORM migration decisions; EDMX, code-first, ObjectContext, and legacy data-access
Open skill - /entity-framework-core
Design, tune, or review EF Core data access with proper modeling, migrations, query translation, performance, and lifetime management for modern .NET applications. USE FOR: DbContext, migrations, model configuration, EF queries, tracking, loading, performance, transactions, and
Open skill

