# dotnet-architecture-good-practices

Правило задаёт Copilot порядок работы над .NET-кодом: сначала разбор домена и слоёв, потом реализация. Пригодится в проектах на DDD.

- правило · `type=rule` · GitHub Copilot · ★ 40451
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/instructions/dotnet-architecture-good-practices.instructions.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/rules/dotnet-architecture-good-practices

## Что делает

Правило включается на файлах `**/*.cs`, `**/*.csproj`, `**/Program.cs` и `**/*.razor`. Перед любым изменением кода ассистент обязан объяснить, какие паттерны DDD и принципы SOLID применимы, какие слои затронуты и как решение соотносится с ubiquitous language. Не сможет внятно объяснить — должен остановиться и спросить.

Дальше идёт разбор по слоям. В доменном слое — агрегаты, value objects, доменные события и спецификации. В прикладном — сервисы, DTO и валидация входных данных. В инфраструктурном — репозитории, шина событий и адаптеры внешних систем. Отдельно прописаны тесты: имена по шаблону `MethodName_Condition_ExpectedResult()`, покрытие домена и прикладного слоя не ниже 85%.

Правило требует пяти шагов: анализ домена, проверка архитектуры, план реализации, сама реализация и разбор после неё. В тексте есть разделы про безопасность и производительность, но он обрывается на пятом шаге — что именно проверяется после реализации, из него не видно. Установка сводится к одному файлу в репозитории, никаких зависимостей и ключей не нужно.

## Установка

### GitHub Copilot (родная платформа)

**Вручную: положить файлы**
- Файл: `.github/instructions/dotnet-architecture-good-practices.instructions.md` — Поле applyTo задаёт, к каким файлам применять

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/dotnet-architecture-good-practices.md` — Поле paths во frontmatter ограничивает файлы: applyTo из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/rules/dotnet-architecture-good-practices.mdc` — Во frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/dotnet-architecture-good-practices.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/dotnet-architecture-good-practices.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/instructions/dotnet-architecture-good-practices.instructions.md

## Когда брать
- удержать бизнес-логику в доменном слое, а не в сервисах
- провести границы агрегатов и транзакционной целостности
- заставить ассистента объяснять план до написания кода
- выдержать единый стиль имён тестов в команде
- согласовать термины кода и документации

## Примеры запросов агенту
- Разбери этот сценарий по DDD: какие агрегаты затрагиваются и какие доменные события публикуются?
- Добавь оформление заказа в `OrderService.cs` — сначала покажи анализ слоёв и план тестов
- Проверь `Program.cs` на соответствие SOLID и предложи, что вынести из прикладного слоя

## Похожие
- [dotnet-domain-modeling](https://affpapa.org/nevibecode/skills/dotnet-domain-modeling.md) — скилл · 535 установок
- [ddd](https://affpapa.org/nevibecode/skills/ddd.md) — скилл · 2900 установок
- [architecture-advisor](https://affpapa.org/nevibecode/skills/architecture-advisor.md) — скилл · 2800 установок
- [dotnet-inspect](https://affpapa.org/nevibecode/skills/dotnet-inspect.md) — скилл · 508 установок
- [software-architecture](https://affpapa.org/nevibecode/skills/software-architecture.md) — скилл · 1769 установок
- [V3 DDD Architecture](https://affpapa.org/nevibecode/skills/v3-ddd-architecture.md) — скилл · 1100 установок

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 928 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
