• Engineering guidelines
  • Basics
  • Copyright header and license notice
  • External dependencies
  • Code reviews and checkins
  • Build numbers
  • Branch strategy
  • Solution and project folder structure and naming
  • Conditional compilation for multiple Target Frameworks
  • Assembly naming pattern
  • Unit tests
  • Coding guidelines
  • Coding style guidelines – general
  • Usage of the var keyword
  • Use C# type keywords in favor of .NET type names
  • Cross-platform coding
  • Line breaks
  • Environment Variables
  • File path separators
  • When to use internals vs. public and when to use InternalsVisibleTo
  • Async method patterns
  • Extension method patterns
  • Doc comments
  • Unit tests and functional tests
  • Assembly naming
  • Unit test class naming
  • Unit test method naming
  • Unit test structure
  • Testing exception messages
  • Use xUnit.net's plethora of built-in assertions
  • Parallel tests
  • Use only complete words or common/standard abbreviations in public APIs
  • Common Patterns
  • Logging patterns
  • Testing PRs
  • Product planning and issue tracking
  • Issue tracking
  • Breaking changes
  • GitHub Flavored Markdown
  • Including people in a GitHub discussion