Files
sharpcompress/AGENTS.md
Adam Hathcock d1e1a65f32 add agents file
2025-10-13 11:55:41 +01:00

2.9 KiB

description, applyTo
description applyTo
Guidelines for building C# applications **/*.cs

C# Development

C# Instructions

  • Always use the latest version C#, currently C# 13 features.
  • Write clear and concise comments for each function.

General Instructions

  • Make only high confidence suggestions when reviewing code changes.
  • Write code with good maintainability practices, including comments on why certain design decisions were made.
  • Handle edge cases and write clear exception handling.
  • For libraries or external dependencies, mention their usage and purpose in comments.

Naming Conventions

  • Follow PascalCase for component names, method names, and public members.
  • Use camelCase for private fields and local variables.
  • Prefix interface names with "I" (e.g., IUserService).

Code Formatting

  • Use CSharpier for all code formatting to ensure consistent style across the project.
  • Install CSharpier globally: dotnet tool install -g csharpier
  • Format files with: dotnet csharpier format .
  • Configure your IDE to format on save using CSharpier.
  • CSharpier configuration can be customized via .csharpierrc file in the project root.
  • Trust CSharpier's opinionated formatting decisions to maintain consistency.

Project Setup and Structure

  • Guide users through creating a new .NET project with the appropriate templates.
  • Explain the purpose of each generated file and folder to build understanding of the project structure.
  • Demonstrate how to organize code using feature folders or domain-driven design principles.
  • Show proper separation of concerns with models, services, and data access layers.
  • Explain the Program.cs and configuration system in ASP.NET Core 9 including environment-specific settings.

Nullable Reference Types

  • Declare variables non-nullable, and check for null at entry points.
  • Always use is null or is not null instead of == null or != null.
  • Trust the C# null annotations and don't add null checks when the type system says a value cannot be null.

Testing

  • Always include test cases for critical paths of the application.
  • Guide users through creating unit tests.
  • Do not emit "Act", "Arrange" or "Assert" comments.
  • Copy existing style in nearby files for test method names and capitalization.
  • Explain integration testing approaches for API endpoints.
  • Demonstrate how to mock dependencies for effective testing.
  • Show how to test authentication and authorization logic.
  • Explain test-driven development principles as applied to API development.

Performance Optimization

  • Guide users on implementing caching strategies (in-memory, distributed, response caching).
  • Explain asynchronous programming patterns and why they matter for API performance.
  • Demonstrate pagination, filtering, and sorting for large data sets.
  • Show how to implement compression and other performance optimizations.
  • Explain how to measure and benchmark API performance.