Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
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 |