- don't pipe to /dev/nul. we run git bash on windows and it doesn't work.
- in case the file exists use
rm -f "./WowClassicGrindBot/nul"
Multi-project .NET 10 solution (MasterOfPuppets.sln) with Blazor Server frontend, SignalR communication, and various utility projects.
- Target: .NET 10 (
net10.0) with C# 14 (LangVersion: preview) - SDK: 10.0.100 (defined in
global.json) - Use latest C# 14 features: primary constructors, collection expressions,
fieldkeyword, extension types, etc. - Nullable reference types are enabled project-wide
dotnet build MasterOfPuppets.sln
dotnet test
dotnet run --project BlazorServer
dotnet run --project Benchmarks -c Release- Replace magic strings/numbers with
public constfields for cross-file discoverability - Place constants in the owning class to enable Find All References and compile-time safety
- When the
Core\Requirement\RequirementFactory.csis changed, a user facing API is added, removed, renamed make sure to update theREADME.mdfile
Existing .editorconfig defines style rules. Key conventions:
- File-scoped namespaces
- Explicit types preferred over
var - Expression-bodied properties/indexers/accessors, but not methods/constructors
- Use pattern matching and null propagation
- Prefer braces for control statements
BlazorServer/- Main web application entry pointCore/- Core business logicGame/- Game interaction layerFrontend/- Blazor UI componentsPPather/- Pathfinding implementationBenchmarks/- BenchmarkDotNet performance testsSharedLib/- Shared utilitiesWinAPI/- Windows API interop
Central package management via Directory.Packages.props:
- Logging: Serilog with structured logging
- Serialization: Newtonsoft.Json, MessagePack, MemoryPack
- UI: Blazor Bootstrap, MatBlazor
- Benchmarking: BenchmarkDotNet
- Constructor-based dependency injection via
Microsoft.Extensions.DependencyInjection - SignalR for real-time client communication (MessagePack protocol)
- Async/await throughout - avoid blocking calls
- Run benchmarks in Release mode:
dotnet run --project Benchmarks -c Release - Use BenchmarkDotNet
[Benchmark]attributes for performance testing
- Main branch:
dev - Create feature branches from
dev