# .NET (C#/F#) ## Признаки платформы - `*.csproj`, `*.fsproj` - `*.sln` - `global.json` - `appsettings.json` - `Program.cs`, `Startup.cs` ## Признаки многомодульного проекта - Несколько `*.csproj` файлов - Решение с несколькими проектами - `src/`, `tests/` каталоги с projects ## Источники перед созданием навыка - `*.csproj` (зависимости и SDK) - `*.sln` (структура проекта) - `appsettings.json` (конфигурация) - `global.json` (версия SDK) ## Что искать в кодовой базе ### Корневые каталоги исходников - `src/`, `*/` (для каждого проекта) ### Типовые слои и каталоги: зафиксируй найденные `Controllers/`, `Services/`, `Repositories/`, `Models/`, `Entities/`, `DTOs/`, `Middleware/`, `Extensions/` ### Признаки шаблонов | Шаблон | Критерии обнаружения | Имя навыка | |---------|-------------------|------------| | Controller | `[ApiController]`, `ControllerBase`, `[HttpGet]` | aspnet-controller | | Service | `I*Service`, `class *Service` | dotnet-service | | Repository | `I*Repository`, `class *Repository` | dotnet-repository | | Entity | `class *Entity`, `[Table]`, `[Key]` | ef-entity | | DTO | `class *Dto`, `class *Request`, `class *Response` | dto-pattern | | DbContext | `: DbContext`, `DbSet<` | ef-dbcontext | | Middleware | `IMiddleware`, `RequestDelegate` | aspnet-middleware | | Background Service | `BackgroundService`, `IHostedService` | background-service | | MediatR Handler | `IRequestHandler<`, `INotificationHandler<` | mediatr-handler | | SignalR Hub | `: Hub`, `[HubName]` | signalr-hub | | Minimal API | `app.MapGet(`, `app.MapPost(` | minimal-api | | gRPC Service | `*.proto`, `: *Base` | grpc-service | | EF Migration | `Migrations/`, `AddMigration` | ef-migration | | Unit Test | `[Fact]`, `[Theory]`, `xUnit` | xunit-test | | Integration Test | `WebApplicationFactory`, `IClassFixture` | integration-test | ## Обязательные разделы результата Добавь, если найдено: - **Контроллеры**: конечные точки API - **Сервисы**: бизнес-логика - **Репозитории**: доступ к данным (EF Core) - **Сущности/DTO**: модели данных - **Промежуточные обработчики**: цепочка обработки запросов - **Фоновые сервисы**: размещённые сервисы ## Откуда брать команды - `*.csproj` цели сборки - README, документация и CI - Обычные команды: `dotnet build`, `dotnet test`, `dotnet run` - Добавляй только команды, которые есть в репозитории ## Основные пути - `src/*/`, project каталоги - `tests/` - `Migrations/` - `Properties/`