adding working skeleton of WPF instructions (#111)
* adding working skeleton of WPF instructions * adding updated readme * Fixing final newline * based on code review Co-authored-by: Matt Soucoup <masoucou@microsoft.com> --------- Co-authored-by: Matt Soucoup <masoucou@microsoft.com>
This commit is contained in:
parent
647a2b43c3
commit
b0f671d072
@ -36,6 +36,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
|
||||
| [DevOps Core Principles](instructions/devops-core-principles.instructions.md) | Foundational instructions covering core DevOps principles, culture (CALMS), and key metrics (DORA) to guide GitHub Copilot in understanding and promoting effective software delivery. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdevops-core-principles.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdevops-core-principles.instructions.md) |
|
||||
| [DDD Systems & .NET Guidelines](instructions/dotnet-architecture-good-practices.instructions.md) | DDD and .NET architecture guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-architecture-good-practices.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-architecture-good-practices.instructions.md) |
|
||||
| [.NET MAUI](instructions/dotnet-maui.instructions.md) | .NET MAUI component and application patterns | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-maui.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-maui.instructions.md) |
|
||||
| [.NET WPF](instructions/dotnet-wpf.instructions.md) | .NET WPF component and application patterns | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-wpf.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-wpf.instructions.md) |
|
||||
| [Genaiscript](instructions/genaiscript.instructions.md) | AI-powered script generation guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenaiscript.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenaiscript.instructions.md) |
|
||||
| [Generate Modern Terraform Code For Azure](instructions/generate-modern-terraform-code-for-azure.instructions.md) | Guidelines for generating modern Terraform code for Azure | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenerate-modern-terraform-code-for-azure.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenerate-modern-terraform-code-for-azure.instructions.md) |
|
||||
| [Gilfoyle Code Review Instructions](instructions/gilfoyle-code-review.instructions.md) | Gilfoyle-style code review instructions that channel the sardonic technical supremacy of Silicon Valley's most arrogant systems architect. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgilfoyle-code-review.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgilfoyle-code-review.instructions.md) |
|
||||
@ -205,4 +206,4 @@ This project may contain trademarks or logos for projects, products, or services
|
||||
trademarks or logos is subject to and must follow
|
||||
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
|
||||
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
|
||||
Any use of third-party trademarks or logos are subject to those third-party's policies.
|
||||
Any use of third-party trademarks or logos are subject to those third-party's policies.
|
||||
|
||||
79
instructions/dotnet-wpf.instructions.md
Normal file
79
instructions/dotnet-wpf.instructions.md
Normal file
@ -0,0 +1,79 @@
|
||||
---
|
||||
description: '.NET WPF component and application patterns'
|
||||
applyTo: '**/*.xaml, **/*.cs'
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
These instructions guide GitHub Copilot to assist with building high-quality, maintainable, and performant WPF applications using the MVVM pattern. It includes best practices for XAML, data binding, UI responsiveness, and .NET performance.
|
||||
|
||||
## Ideal project types
|
||||
|
||||
- Desktop applications using C# and WPF
|
||||
- Applications following the MVVM (Model-View-ViewModel) design pattern
|
||||
- Projects using .NET 8.0 or later
|
||||
- UI components built in XAML
|
||||
- Solutions emphasizing performance and responsiveness
|
||||
|
||||
## Goals
|
||||
|
||||
- Generate boilerplate for `INotifyPropertyChanged` and `RelayCommand`
|
||||
- Suggest clean separation of ViewModel and View logic
|
||||
- Encourage use of `ObservableCollection<T>`, `ICommand`, and proper binding
|
||||
- Recommend performance tips (e.g., virtualization, async loading)
|
||||
- Avoid tightly coupling code-behind logic
|
||||
- Produce testable ViewModels
|
||||
|
||||
## Example prompt behaviors
|
||||
|
||||
### ✅ Good Suggestions
|
||||
- "Generate a ViewModel for a login screen with properties for username and password, and a LoginCommand"
|
||||
- "Write a XAML snippet for a ListView that uses UI virtualization and binds to an ObservableCollection"
|
||||
- "Refactor this code-behind click handler into a RelayCommand in the ViewModel"
|
||||
- "Add a loading spinner while fetching data asynchronously in WPF"
|
||||
|
||||
### ❌ Avoid
|
||||
- Suggesting business logic in code-behind
|
||||
- Using static event handlers without context
|
||||
- Generating tightly coupled XAML without binding
|
||||
- Suggesting WinForms or UWP approaches
|
||||
|
||||
## Technologies to prefer
|
||||
- C# with .NET 8.0+
|
||||
- XAML with MVVM structure
|
||||
- `CommunityToolkit.Mvvm` or custom `RelayCommand` implementations
|
||||
- Async/await for non-blocking UI
|
||||
- `ObservableCollection`, `ICommand`, `INotifyPropertyChanged`
|
||||
|
||||
## Common Patterns to Follow
|
||||
- ViewModel-first binding
|
||||
- Dependency Injection using .NET or third-party containers (e.g., Autofac, SimpleInjector)
|
||||
- XAML naming conventions (PascalCase for controls, camelCase for bindings)
|
||||
- Avoiding magic strings in binding (use `nameof`)
|
||||
|
||||
## Sample Instruction Snippets Copilot Can Use
|
||||
|
||||
```csharp
|
||||
public class MainViewModel : ObservableObject
|
||||
{
|
||||
[ObservableProperty]
|
||||
private string userName;
|
||||
|
||||
[ObservableProperty]
|
||||
private string password;
|
||||
|
||||
[RelayCommand]
|
||||
private void Login()
|
||||
{
|
||||
// Add login logic here
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```xml
|
||||
<StackPanel>
|
||||
<TextBox Text="{Binding UserName, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<PasswordBox x:Name="PasswordBox" />
|
||||
<Button Content="Login" Command="{Binding LoginCommand}" />
|
||||
</StackPanel>
|
||||
```
|
||||
Loading…
x
Reference in New Issue
Block a user