Agent skill · software engineering · aiskillstore
reviewing-dotnet-code
Reviews and generates .NET/C# code following Microsoft conventions and modern patterns. Use when reviewing C# files, writing .NET code, refactoring, or when user mentions "C#", ".NET", "dotnet", "csharp", or asks about naming conventions in .NET projects.
Why this skill is useful
Provides specific naming conventions and modern C# patterns that the AI wouldn't reliably generate on its own.
What it needs
About 3k tokens when loaded. Last updated 2026-08-07. 405 stars on the source repository.
What this skill does
Reviewing .NET Code Apply Microsoft's .NET coding conventions and modern C# patterns when reviewing or generating code. Quick Reference Naming Conventions Element Style Example --------- ------- --------- Classes, Records PascalCase CustomerService, OrderRecord Interfaces IPascalCase IRepository, IDisposable Methods PascalCase GetCustomer(), ValidateOrder() Properties PascalCase FirstName, IsActive Public Fields PascalCase MaxRetryCount Parameters camelCase customerId, orderDate Local Variables camelCase itemCount, isValid Private Fields camelCase connectionString, logger Constants PascalCase DefaultTimeout, MaxItems Enums PascalCase (singular) Color.Red, Status.Active Async Methods PascalCaseAsync GetCustomerAsync() Type Keywords Always use language keywords over framework types: Modern C# Patterns (C# 10+) Review Workflow Step 1: Check Naming Scan for naming violations: Classes/methods not in PascalCase Private fields without underscore prefix Parameters/locals not in camelCase Async methods missing Async suffix Step 2: Check Patterns Look for outdated patterns: String instead of string new List<T>() instead of new() or [] Block-scoped namespaces Manual null checks instead of ?. or ?? Step 3: Check Async/Await Flag async anti-patterns: async void (except event handlers) .Result or .Wait() blocking calls Missing ConfigureAwait(false) in libraries Step 4: Check Exception Handling Verify exception patterns: Catching Exception instead of specific types Empty catch blocks Not using using for disposables Step 5: Check LINQ Usage Identify LINQ opportunities: Manual loops that could be Select/Where/Any Multiple enumerations (should .ToList()) When to Read Reference Files Read REFERENCE.md when: User asks for detailed naming rules Reviewing complex class hierarchies Need specific async/await guidance Reviewing exception handling patterns Read EXAMPLES.md when: Need before/after refactoring samples Showing concrete improvements User asks "how should this look?" Anti-Pattern …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills aiskillstore/reviewing-dotnet-code