dotnet-development

Review .NET applications for DDD, SOLID, and ASP.NET Core REST API compliance.

3|1|Updated Nov 28, 2025
One-click install
npx skills add https://github.com/iButters/ClaudeCodePlugins --skill dotnet-development
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dotnet-development
Source: https://github.com/iButters/ClaudeCodePlugins/tree/main/plugins/dotnet-development/skills/dotnet-development
Command: npx skills add https://github.com/iButters/ClaudeCodePlugins --skill dotnet-development

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides expert guidance to ensure your .NET applications are built with high quality, maintainability, and architectural soundness, preventing common pitfalls and technical debt. It streamlines adherence to best practices, saving review time and refactoring effort.

Core Features & Use Cases

  • Domain-Driven Design (DDD): Guides you in structuring your application around business domains, aggregates, and ubiquitous language.
  • SOLID Principles: Ensures your C# code adheres to Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion principles.
  • ASP.NET Core & C# Best Practices: Covers modern C# features, REST API patterns, Entity Framework Core, and robust testing strategies.
  • Use Case: You're developing a new ASP.NET Core microservice and need to ensure it follows Domain-Driven Design, uses clean architecture, and implements secure, performant REST APIs with proper testing.

Quick Start

Help me design a new C# class for a domain entity, ensuring it follows SOLID principles and DDD aggregates.

Frequently Asked Questions about dotnet-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a .NET application with Domain-Driven Design and clean architecture?

Domain-Driven Design in .NET organizes your application into Domain, Application, and Infrastructure layers, with business logic centered on aggregates and repositories. This separation ensures maintainability, testability, and alignment with business domains, reducing technical debt and making refactoring easier as requirements evolve.

How do I design C# classes that follow SOLID principles?

SOLID principles guide C# class design: Single Responsibility keeps classes focused on one reason to change, Open/Closed allows extension without modification, Liskov Substitution ensures derived types are substitutable, Interface Segregation prevents fat interfaces, and Dependency Inversion decouples high-level modules from low-level ones. Applying these reduces coupling and improves testability.

What's the best way to build REST APIs with ASP.NET Core and Entity Framework Core?

ASP.NET Core REST APIs pair controllers with EF Core data access, using async/await with cancellation tokens, constructor injection for dependencies, and boundary validation at entry points. Organize code into Domain, Application, and Infrastructure folders; use repositories and domain events to maintain clean architecture and support testing with xUnit and Moq.

Can I use DDD aggregates and repositories with ASP.NET Core microservices?

Yes. DDD aggregates define transactional boundaries in microservices, while repositories abstract data access. This pattern works well with ASP.NET Core controllers handling HTTP requests and EF Core managing persistence, enabling scalable, maintainable microservices that enforce business rules and maintain domain consistency.

What testing strategies work with DDD and SOLID in .NET applications?

Use xUnit for unit and integration tests, Moq for mocking dependencies, and FluentAssertions for readable assertions. Test domain entities and aggregates in isolation, verify repository behavior with test databases, and validate controller endpoints. This approach ensures business logic correctness and architecture compliance across layers.

When should I apply layered architecture instead of other .NET patterns?

Layered architecture with Domain, Application, and Infrastructure boundaries suits applications with complex business logic, multiple stakeholders, or long-term maintenance needs. It excels when domain rules change frequently or teams need clear separation of concerns, though it adds overhead for simple CRUD applications where simpler patterns may suffice.