Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# WPF Code Guidelines
|
|
|
|
* Use modern C# and current .NET/WPF conventions.
|
|
* Keep UI, application logic and domain logic clearly separated.
|
|
* Prefer MVVM for non-trivial views.
|
|
* Keep code-behind minimal.
|
|
* Use code-behind only for view-specific behavior that does not belong in the ViewModel.
|
|
* Avoid business logic in views.
|
|
* Avoid direct service access from controls.
|
|
* Keep dependencies explicit and testable.
|
|
* Prefer composition over inheritance.
|
|
* Avoid unnecessary abstractions and framework wrappers.
|
|
* Follow the existing project architecture unless there is a strong reason to change it.
|
|
|
|
## Safety Rule
|
|
|
|
* The UI must remain responsive.
|
|
* Do not block the UI thread with I/O or expensive CPU work.
|
|
* Do not bypass validation or security controls for convenience.
|
|
* Do not introduce hidden cross-thread access.
|
|
* Prefer predictable, explicit and testable UI behavior.
|
|
|
|
## Detailed guidance
|
|
|
|
Read the matching reference file before working in that area:
|
|
|
|
| Read this reference for... | ...this kind of work |
|
|
| --- | --- |
|
|
| `references/mvvm-and-binding.md` | MVVM, data binding, property change notifications, dependency/attached properties |
|
|
| `references/commands-and-async.md` | Commands, async/threading, UI-thread work, events |
|
|
| `references/collections-and-xaml.md` | Collections, virtualization, layout, XAML |
|
|
| `references/resources-and-lifecycle.md` | Resources/styles, windows/dialogs, navigation, memory, images/media |
|
|
| `references/security-and-errors.md` | Security, file/process access, error handling, logging, validation |
|
|
| `references/architecture-and-quality.md` | Architecture, DI, testing, code quality, performance |
|