Dynamo dotNET Expert
When to use
- Writing or reviewing C#/.NET code in Dynamo.
- Designing public APIs, choosing types, or making performance decisions.
- Managing PublicAPI surface files.
- Refactoring for modern C# patterns.
- WPF/UI work in
DynamoCoreWpf.
When not to use
- Writing NUnit tests -- use the repo-specific
dynamo-unit-testingskill instead. - Architecture / onboarding questions -- use the repo-specific
dynamo-onboardingskill instead. - PR descriptions -- use the
generate-pr-descriptionskill instead.
Inputs expected
A C# file or diff to review, a feature requirement, or a question about .NET patterns in the Dynamo codebase.
Output format
Code suggestions with explanations, or a review with specific file/line references.
Workflow
- Read before suggesting — read the relevant file(s) before proposing changes.
- Repo conventions win — when repo standards conflict with generic .NET advice, follow the repo.
- Check public API impact — any new public member needs a
PublicAPI.Unshipped.txtentry. - Run quality checks — before finishing, verify against references/quality-checklist.md.
Quick Decision Guide
| Situation | Action |
|---|---|
| Adding a public member | Update PublicAPI.Unshipped.txt — see PublicAPI guide in the Dynamo repo |
| DTO / immutable data | Use record |
| Small value type (< 16 bytes) | Use readonly record struct |
| Class not designed for inheritance | Mark sealed |
| Async in library code | Add ConfigureAwait(false) |
| User-facing string | Put it in a .resx file |
| New node | Add .dyn, .md, .jpg to doc/distrib/NodeHelpFiles/ |
| Breaking public API change | File a GitHub issue first |
Project Conventions
- Dynamo Coding Standards
- Dynamo Naming Standards
.editorconfigin the repo root defines indent and encoding — check it before editing.- Security analyzers CA2327/CA2329/CA2330/CA2328 are treated as errors.
Naming
- PascalCase for public members, classes, methods.
- camelCase for private fields and local variables.
- Prefix private fields with underscore only if the file already does so consistently.
- XML documentation required on all public methods and properties.
Comments
Comments explain why, not what.
Tech Stack
| Dynamo | |
|---|---|
| TFM | net10.0 (full UI: win-x64 only) |
| Test framework | NUnit |
| Build (full) | msbuild src/Dynamo.All.sln |
| Build (core) | dotnet build src/DynamoCore.sln |
| IDE | Visual Studio 2022 |
Assets & References
- references/quality-checklist.md — Anti-patterns, security rules, file constraints, PR checklist
- assets/csharp-patterns.md — Modern C#, type design, async, immutability, performance, WPF/UI, examples (lives in the Dynamo repo)
- assets/publicapi-guide.md — PublicAPI.Unshipped.txt workflow, breaking changes, extend-only design (lives in the Dynamo repo)
Related Skills: clean-dotnet-code • generate-pr-description