# dotnet-wpf

Настраивает GitHub Copilot на генерацию кода для WPF на .NET 8.0 и новее с соблюдением паттерна MVVM. Помогает держать логику во ViewModel и избегать кода в code-behind.

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

## Что делает

Правило задаёт стандарты разработки десктопных приложений на C# и WPF. Оно применяется к файлам `**/*.xaml` и `**/*.cs`. Ассистент фокусируется на паттерне MVVM, разделяя разметку и поведение. Инструкция запрещает Copilot предлагать бизнес-логику внутри code-behind или использовать приёмы из WinForms и UWP.

Генерация опирается на `CommunityToolkit.Mvvm` либо собственные реализации `RelayCommand` и `ObservableObject`. Для списков ассистент рекомендует виртуализацию UI и привязку к `ObservableCollection<T>`. Свойства связываются через `nameof` без строковых литералов, а долгие операции выносятся в `async/await`.

Если проект написан на версиях фреймворка ниже .NET 8.0, сгенерированные шаблоны и атрибуты генераторов исходного кода потребуют ручной адаптации.

## Установка

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

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

### Claude Code

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

### Codex

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

### Cursor

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

### Windsurf (Devin Desktop)

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

### Cline

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

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

## Когда брать
- отделить логику интерфейса от разметки XAML с помощью MVVM
- сгенерировать шаблон ViewModel с поддержкой INotifyPropertyChanged и RelayCommand
- настроить виртуализацию UI в списках ListView с привязкой к ObservableCollection
- перенести обработчики кликов из code-behind в команды ViewModel

## Примеры запросов агенту
- Создай ViewModel для экрана входа со свойствами логина, пароля и командой LoginCommand
- Напиши разметку ListView с виртуализацией UI и привязкой к ObservableCollection
- Вынеси обработчик клика по кнопке из code-behind в RelayCommand во ViewModel

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

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

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