Dennis Doomen @dennisdoomen.com · 29/09/2026PackageGuard 2.8 adds gated policies so you can prevent your builds from succeeding based on a various quality, operation and security attributes. Read all about that at www.dennisdoomen.com/2026/09/pack... 000
Dennis Doomen @dennisdoomen.com · 28/09/2026Few conferences leave such a lasting impression as Techorama does, so I'm happy that, again, I'm playing a small part in their impressive line-up. To celebrate that, I can offer you a discount of 100 euros through tickets.techorama.nl/2026/redeem?... Will I see you there? 010
Dennis Doomen @dennisdoomen.com · 17/09/2026v2.7 of PackageGuard makes it easy to figure out why your codebase is using a specific NuGet or NPM package. It will show where in your project a particular package is used, which version was resolved and risks exists. Learn more about this at packageguard.org/docs/explain 000
Dennis Doomen @dennisdoomen.com · 15/09/2026Tomorrow, I'll be travelling to Oslo to speak at the renowned @ndcconferences.com. Although this is my 7th NDC, I remain humbled to be at the one that started it all. Will I see you there? 000
Dennis Doomen @dennisdoomen.com · 14/09/2026This evening, we've released Fluent Assertions 8.11. Check out the detailed release notes at github.com/fluentassert... #mvpbuzz #unittesting #assertions 000
Dennis Doomen @dennisdoomen.com · 10/09/2026PackageGuard, the fully open-source alternative to tools like Snyk, Black Duck and others, has just received an update that improves the risk report by removing overlapping risk factors and include all the vulnerabilities details. Also check out the new website at packageguard.org 000
Dennis Doomen @dennisdoomen.com · 09/09/2026Mockly, the open-source HTTP mocking library for .NET is getting better and better. Check out some of the newest features that got released over the weekend in the image below, or read the docs at mockly.org/docs/advance... 010
Dennis Doomen @dennisdoomen.com · 08/09/2026Pathy, the source-only .NET library that makes working with files and directories a very fluent experience, received a new version. Check it out at github.com/dennisdoomen... 010
Dennis Doomen @dennisdoomen.com · 07/09/2026Reflectify, a source-only open-source package with tons of Reflection smartness, got a new release. Check out the release notes at github.com/dennisdoomen... #mvpbuzz #dotnet #csharp #oss 001
Dennis Doomen @dennisdoomen.com · 07/09/2026When should a C# operation be a method rather than a property? Use a method if it’s expensive, performs a conversion, returns a different result each call, or causes side effects. Lazy-loading and internal caching are reasonable exceptions. #csharp #codingguidelines #codingconventions 010
Dennis Doomen @dennisdoomen.com · 04/09/2026My weekly Claude Team limit got reset halfway the week and will reset again tomorrow. Did that happen to anybody else? 200
Dennis Doomen @dennisdoomen.com · 31/08/2026Properties should be stateless with respect to other properties. Setting DataSource then DataMember should have the same result as the reverse. Sounds trivial, but I've seen plenty of classes where properties were anything but simple. #csharp #codingguidelines #classdesign #codingconventions 100
Dennis Doomen @dennisdoomen.com · 31/08/2026I've just burned through my 5-hour limit and 13% of my weekly limit in 38 minutes and I don't even understand what happened. Using Cloud Team and Sonnet 5. 200
Dennis Doomen @dennisdoomen.com · 27/08/2026PackageGuard, your totally free NuGet/NPM package scanning and risk reporting tool now supports generating a Software Bill Of Materials (SBom) in CycloneDX and SPDX format. Check out the documentation at github.com/dennisdoomen... Stay tuned for even more awesome features soon... 000
Dennis Doomen @dennisdoomen.com · 27/08/2026I always had a wish to replay "The Witcher 3", but that has now become a definitive plan.... www.youtube.com/watch?v=IGk1...youtube.comThe Witcher 3: Wild Hunt — Remastered | Official Announcement TrailerYouTube video by The Witcher 010
Dennis Doomen @dennisdoomen.com · 25/08/2026💡And for those that are concerned about the dependency hell. Reflectify ships as a source-only package. In other words, it compiles the code into your project without any visible binary dependencies. 000
Dennis Doomen @dennisdoomen.com · 25/08/2026Over the weekend, I've released Reflectify 1.10, a NuGet package that replaces all that hand-rolled Reflection code with battle-tested extension methods. Check out the release notes at github.com/dennisdoomen... 100
Dennis Doomen @dennisdoomen.com · 25/08/2026I love this new description of the term IDE in the age of AI #dotnetdaych 010
Dennis Doomen @dennisdoomen.com · 20/08/2026Looking forward to my first real .NET conference in Switzerland. And let's start the conference season on a high note with two talks in the same day. Will I see you there? #mvpbuzz #dotnetdaych 130
Dennis Doomen @dennisdoomen.com · 17/08/2026During the weekend, I've released Mockly 1.11, the new in-memory HTTP mocking library in town. This version allows you to simulate delayed responses or requests that throw exceptions. Check out the docs at mockly.org 010
Dennis Doomen @dennisdoomen.com · 17/08/2026If you love Band of Brothers like me and remember every scene episode by episode, check out this amazing reunion. www.youtube.com/watch?v=xMaM...youtube.comThe Actors Roundtable | 25th Anniversary 'Band of Brothers' SymposiumYouTube video by The National WWII Museum 260
Dennis Doomen @dennisdoomen.com · 14/08/2026Want to learn more about high-quality software development? Check out csharpcodingguidelines.comcsharpcodingguidelines.comIntroductionfor all C# versions up to v14 000
Dennis Doomen @dennisdoomen.com · 14/08/2026Want to learn more about high-quality software development? Check out csharpcodingguidelines.comcsharpcodingguidelines.comIntroductionfor all C# versions up to v14 000
Dennis Doomen @dennisdoomen.com · 14/08/2026Check it out at docs.fallout.builddocs.fallout.buildFalloutBuild automation for C#/.NET — the hard-fork successor to NUKE 000
Dennis Doomen @dennisdoomen.com · 14/08/2026The 2026-2027 MVP ring has finally made it from the US. #mvpbuzz 010
Dennis Doomen @dennisdoomen.com · 13/08/2026We released Fallout 10.4—the first new version since Nuke was abandoned. Fallout replaces messy YAML pipelines with refactorable, debuggable, navigable C#. • Inspired by Make • Makes Azure DevOps → GitHub Actions migration easier • Used in my OSS & client projects 340
Dennis Doomen @dennisdoomen.com · 12/08/2026C# 12 primary constructors reduce boilerplate when capturing dependencies. Prefer when: ✅ Constructor only captures dependencies/config ✅ No complex initialization Avoid when: ✅ Validation or non-trivial initialization is needed #csharp #codingguidelines #classdesign 120
Dennis Doomen @dennisdoomen.com · 10/08/2026Prefer a single-method interface when state matters, the contract is strong (IDisposable, IEquatable), default interface methods help, or more members are likely soon. #codingstandards #csharp #codingguidelines #designpractices #bestpractices 100
Dennis Doomen @dennisdoomen.com · 10/08/2026An interface with one method is often just a named function signature. If it is not likely to grow, a delegate is simpler, more loosely coupled, and easier to test. 211
Dennis Doomen @dennisdoomen.com · 06/08/2026Want to learn more about high-quality software development? Check out csharpcodingguidelines.comcsharpcodingguidelines.comIntroductionfor all C# versions up to v14 010
Dennis Doomen @dennisdoomen.com · 05/08/2026Choosing between records and classes in C# matters! Records: data-focused, immutable, structural equality (DTOs, value objects) Classes: behavior-focused, mutable state, identity-based Record struct: small immutable values (stack allocation) Mix them and you've got a design problem. #CSharp 100
Dennis Doomen @dennisdoomen.com · 05/08/2026Want to learn more about high-quality software development? Check out csharpcodingguidelines.com 110
Dennis Doomen @dennisdoomen.com · 04/08/2026...that are used to transfer data over a communication channel, also called Data Transfer Objects, or a class that wraps several parameters of a method. For DTOs, consider using an immutable record type instead of a class to make the intent explicit. #csharp #codingguidelines #classdesign # 100
Dennis Doomen @dennisdoomen.com · 04/08/2026In general, if you find a lot of data-only classes in your code base, you probably also have a few (static) classes with a lot of behavior. Use the principles of object-orientation explained and move the logic close to the data it applies to. ⚠️The only exceptions to this rule are classes... 120
Dennis Doomen @dennisdoomen.com · 29/07/2026💡 Inversion of Control or Dependency Injection frameworks sometimes require exposing a dependency as a public property. If it's only used for dependency injection and nothing else, I wouldn't consider that a violation. #bestpractices #codingdesign #codingguidelines #csharp 000
Dennis Doomen @dennisdoomen.com · 29/07/2026By doing so, calling code becomes coupled to the underlying class you're using, making it harder to replace or refactor later. 💡 Fluent Interfaces may look like a violation, but they're simply returning themselves to enable method chaining, so they don't break the intent of the rule... 100
Dennis Doomen @dennisdoomen.com · 29/07/2026If you find yourself writing code like this someObject.SomeProperty.GetChild().Foo() ...then you may be violating the Law of Demeter. An object should not expose other classes it depends on, because callers may misuse that exposed property or method to access the object behind it... 110
Dennis Doomen @dennisdoomen.com · 29/07/2026Want to learn more about high-quality software development? Check out csharpcodingguidelines.com 010
Dennis Doomen @dennisdoomen.com · 23/07/2026...class. A less subtle example is not honoring the behavior expected by the base class. #bestpractices #codingdesign #codingguidelines #csharp 100
Dennis Doomen @dennisdoomen.com · 23/07/2026In other words, you should be able to pass an instance of a derived class wherever its base class is expected, without the callee knowing the derived class. A very notorious example of a violation of this rule is throwing a NotImplementedException when overriding methods from a base... 100
Dennis Doomen @dennisdoomen.com · 21/07/2026Did you know there's a great way to start building an (open-source) library in .NET that comes with everything you'd expect from a professional package? And did you know it supports GitHub and Azure DevOps? If not, check out github.com/dennisdoomen.... Version 1.9 was released over the weekend. 040
Dennis Doomen @dennisdoomen.com · 16/07/2026✅7 done 🎤5 to go Hope to see you after the summer... #mvpbuzz 000
Dennis Doomen @dennisdoomen.com · 16/07/2026Do you know organizations that use GitHub with Enterprise Managed Accounts and Data Residency. If so, why (not)? 000
Dennis Doomen @dennisdoomen.com · 15/07/2026Yes, and my 4th year as an MVP is in the pocket. #mvpbuzz 1130
Dennis Doomen @dennisdoomen.com · 14/07/2026...IProvideClusterwideLock that describe what the interface does rather than what class implements it. #csharpguidelines #cleancoding #bestpractices 000
Dennis Doomen @dennisdoomen.com · 14/07/2026...to call or implement the interface related to a particular task. This rule is more commonly known as the Interface Segregation Principle. 💡Avoid taking the name of the class and slapping an "I" in front of it. Instead, consider using role-based names like IFetchSomething or... 100
Dennis Doomen @dennisdoomen.com · 14/07/2026Interfaces should have a name that clearly explains their purpose or role in the system. Do not combine many vaguely related members on the same interface just because they were all on the same class. Separate the members based on the responsibility of those members, so that callers only need... 120
Dennis Doomen @dennisdoomen.com · 13/07/2026Getting there was an adventure. A last-minute technical issue canceled my KLM flight at the gate. I picked up my luggage, got in the car, and drove to Berlin instead. That's how much I didn't want to miss this event. 000
Dennis Doomen @dennisdoomen.com · 13/07/2026The atmosphere at WeAreDevelopers is incredible. The energy starts with the opening session and keeps going until the end of the day. It's one of those events where you constantly run into interesting people and conversations. 100