
Dotnet Framework 4.8 Expert
Apply proven .NET Framework 4.8 patterns when extending or modernizing legacy Windows-server and Web API workloads.
Overview
dotnet-framework-4.8-expert is an agent skill for the Build phase that supplies .NET Framework 4.8 patterns for legacy API and EF6 backend work.
Install
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill dotnet-framework-4.8-expertWhat is this skill?
- Real-world legacy ERP modernization pattern with Web API 2 beside WCF
- Dependency mapping and refactoring boundary guidance for 4.5→4.8 upgrades
- Entity Framework 6 + SQL Server integration examples with JSON camelCase formatters
- Backward compatibility emphasis for existing desktop and service clients
- Documented migration path toward future .NET Core upgrades
- Example ERP scenario targets ~1000 inventory API requests per minute
Adoption & trust: 724 installs on skills.sh; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You must extend a aging .NET Framework app with new HTTP APIs without breaking WCF clients or derailing a future Core migration.
Who is it for?
Indie consultants or solo maintainers shipping incremental features on .NET Framework 4.8 ERP and LOB backends.
Skip if: Greenfield projects targeting .NET 8 minimal APIs or cross-platform services with no Framework 4.8 constraint.
When should I use this skill?
User works on .NET Framework 4.8, legacy WCF/Web API, EF6, or ERP-style backend modernization.
What do I get? / Deliverables
You get copy-ready Web API 2, EF6, and coexistence patterns aligned with documented upgrade boundaries and test expectations.
- Web API 2 route and formatter configuration snippets
- Refactoring and compatibility notes for legacy client preservation
Recommended Skills
Journey fit
Backend implementation is where legacy .NET Framework expertise matters for shipping compatible APIs and services. Examples center on Web API 2, WCF coexistence, EF6, and SQL Server—classic backend integration work on 4.8.
How it compares
Pattern reference for brownfield Framework 4.8, not a scaffold generator for modern .NET Core microservices.
Common Questions / FAQ
Who is dotnet-framework-4.8-expert for?
Developers who own legacy .NET Framework codebases and need vetted examples for Web API 2, EF6, and WCF-side-by-side designs.
When should I use dotnet-framework-4.8-expert?
During Build backend work when adding APIs, modernizing inventory or ERP modules, or planning dependency-safe refactors on 4.8.
Is dotnet-framework-4.8-expert safe to install?
Check the Security Audits panel on this page; the skill is documentation and patterns—review any generated code before production deploy.
SKILL.md
READMESKILL.md - Dotnet Framework 4.8 Expert
# .NET Framework 4.8 Expert - Code Examples & Patterns This document contains real-world examples, use cases, and implementation patterns for .NET Framework 4.8 development. ## Example 1: Legacy ERP System Modernization **Scenario:** A manufacturing company needs to add real-time inventory tracking to their 10-year-old ERP system built on .NET Framework 4.5. **Approach:** 1. **Codebase Analysis**: Mapped dependencies and identified refactoring boundaries 2. **Feature Addition**: Implemented Web API 2 endpoints alongside existing WCF services 3. **Database Integration**: Used Entity Framework 6 with existing SQL Server 4. **Testing Strategy**: Created integration tests for new functionality **Key Deliverables:** - Real-time inventory API serving 1000 requests/minute - Backward compatibility maintained for desktop clients - Migration path documented for future .NET Core upgrade ### Implementation ```csharp // Adding Web API 2 alongside existing WCF // WebApiConfig.cs public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); } } // InventoryController.cs [RoutePrefix("api/inventory")] public class InventoryController : ApiController { private readonly IInventoryService _inventoryService; public InventoryController(IInventoryService inventoryService) { _inventoryService = inventoryService; } [HttpGet] [Route("")] public async Task<IHttpActionResult> GetAll() { var items = await _inventoryService.GetAllAsync(); return Ok(items); } [HttpGet] [Route("{id:int}")] public async Task<IHttpActionResult> GetById(int id) { var item = await _inventoryService.GetByIdAsync(id); if (item == null) return NotFound(); return Ok(item); } [HttpPost] [Route("")] public async Task<IHttpActionResult> Create(InventoryItem item) { if (!ModelState.IsValid) return BadRequest(ModelState); var created = await _inventoryService.CreateAsync(item); return CreatedAtRoute("DefaultApi", new { id = created.Id }, created); } } ``` --- ## Example 2: WCF to Modern Integration Bridge **Scenario:** A healthcare provider needs to integrate a legacy WCF service with a modern cloud application. **Solution Architecture:** 1. **WCF Service**: Enhanced existing SOAP service with additional endpoints 2. **REST API Layer**: Created OWIN-hosted Web API 2 for modern clients 3. **Authentication**: Implemented token-based auth bridging to existing Windows Auth 4. **Message Queue**: Added Azure Service Bus integration for async processing **Results:** - Modern clients can access legacy data through REST API - Zero downtime during deployment - HIPAA compliance maintained throughout ### Implementation ```csharp // OWIN Startup for self-hosted Web API public class Startup { public void Configuration(IAppBuilder app) { var config = new HttpConfiguration(); // Configure OAuth token validation app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions { AuthenticationMode = AuthenticationMode.Active, TokenValidationParameters = new TokenValidationParameters { ValidAudience = ConfigurationManager.AppSettings["jwt:Audience"], ValidIssuer = ConfigurationManager.AppSettings["jwt:Issuer"], IssuerSigningKey = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(ConfigurationManager.AppSettings["jwt:Secr