Development Guide
This guide covers the technical setup and workflow for developers contributing to the optimizerDuck codebase.
Tech Stack
- Primary Language: C# (Modern .NET)
- UI Framework: WPF with WPF UI (lepoco)
- Testing: xUnit with Coverlet for coverage
- Build System: .NET CLI / MSBuild
Environment Setup
- Prerequisites:
- Visual Studio 2026 (recommended) or JetBrains Rider.
- Latest .NET SDK: https://dotnet.microsoft.com/download
- Clone the Repository:bash
git clone https://github.com/itsfatduck/optimizerDuck.git - Build the Project: Run the
build.batscript in the root directory, or use the .NET CLI:bashdotnet build optimizerDuck.slnx
Project Structure
optimizerDuck/: Main application source.UI/: XAML views, pages, and UI components.Services/: Business logic and system level operations.Common/: Utilities, helpers, and shared data converters.Resources/: Assets and.resxtranslation files.
optimizerDuck.Test/: xUnit test suite.
Coding Standards
We follow standard C# naming conventions and use .editorconfig to enforce style consistency.
- Naming:
PascalCasefor classes and methods;camelCasefor variables and parameters. - XAML: Use the custom localization extension
{ext:Loc Key}(or{ext:Loc Key, {Binding arg}}to format strings) for all user-facing text. - Commits: We use Conventional Commits:
feat: New features or optimizations.fix: Bug fixes.refactor: Code restructuring without functional changes.
Testing
Ensure all tests pass before submitting a Pull Request:
bash
dotnet test optimizerDuck.Test/optimizerDuck.Test.csprojPull Request Process
- Create a descriptive branch:
feature/your-feature-name. - Ensure the project compiles and tests pass.
- Include screenshots or GIFs if you are modifying the UI.
- Link any related issues in the PR description.