~/talk

10 Opinions For Creating More Maintainable .NET Apps

Talkat NDC Sydney 2024 · 2024-02-12..02-16· [devops-and-delivery]
slides:none on file

Ten concrete practices for maintainable .NET apps: use feature folders to co‑locate controllers, views and assets; flip TreatWarningsAsErrors for new projects; use Serilog via the ILogger abstraction and structured logs (include version, correlation id); store audits in the transactional DB not in logs; prefer FluentValidation over data annotations; remove the Kestrel Server header; avoid injecting IOptions<T> (register T.Value); expose a version file endpoint; enable ValidateOnBuild for DI errors; adopt build once deploy many times — one client moves from 12 to ~2000 deployments/year with <1% rollbacks.

AI-written summary · about

  1. 0:00Introduction
  2. 3:36Group by feature not layers
  3. 8:35Compiler warnings as errors
  4. 10:23Logging best practices
  5. 18:30Authorization with fallback policies
  6. 20:36Fluent Validation over Data Annotations
  7. 23:49Remove Server header
  8. 25:39Avoid IOptions
  9. 28:09Version endpoint
  10. 31:16Refactor with early returns
  11. 34:51HTTP security headers
  12. 37:20Build once deploy many
  13. 39:48Validate IoC on build
  14. 41:53Maintainable automated tests
  15. 46:28Central Package Management
  16. 49:17Debug EF SQL queries
  17. 50:40Continuous deployment
  18. 54:59Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.