Bugs are an unavoidable part of software engineering, akin to a never-ending Whack-A-Mole game. Proper project architecture, adherence to coding standards, and strict enforcement are critical to minimize defects. Leadership plays a crucial role; when standards are neglected, bugs multiply, leading to delays and engineer burnout.
Category: .NET Coding Standards
dotNetDave Says… No One Writes Perfect Code!
No one writes perfect code, and that's acceptable. Code reviews provide valuable feedback that can enhance development skills and improve software quality. Embracing constructive criticism fosters collaboration, while avoiding personal interpretations of feedback is crucial. Ultimately, a supportive culture leads to better, safer, and more maintainable software through continuous improvement.
DotNetDave Says… All Data Coming into a Type Must Be Validated!
The post emphasizes the importance of input validation in object-oriented programming (OOP) to maintain encapsulation and code integrity. It highlights common pitfalls due to missing validation, illustrating with examples. By ensuring methods validate inputs at the start, developers can create more robust, maintainable software that prevents invalid data from causing issues.
Everything That Every .NET Developer Needs to Know About Disposable Types: Part 3 – Using Tools to Find Issues
This article series emphasizes the importance of understanding memory management and proper usage of the IDisposable interface in .NET code. Part 3 focuses on using various tools and Visual Studio extensions to identify and resolve memory and disposable-related issues in the codebase. While these tools can be helpful, manual analysis and adoption of memory profiler tools are also necessary to uncover all potential problems and improve the overall performance of .NET applications.
Internationalization and Localization Performance: Collection Count() & Any() with Predicate
In this article, I will show you how to properly use Any() or Count() with collections taking globalization into account. Updated February 2023.
Internationalization and Localization Performance: Comparing Strings
When comparing strings, it's important to use StringComparison. This article shows the performance of the different choices. Updated February 2023.
Internationalization and Localization Performance: String Validation with Equals()
When formatting strings it's important to use CurrentCulture when displaying strings to the user. This article shows the performance of the different choices. Updated February 2023.
Internationalization and Localization Performance: Formatting Strings
Taking globalization into account when displaying strings to the user means that they are properly formatted for their language and locale. This article shows the performance for string.Format(). Updated February 2023.
Serializing Objects Performance: XML Serialization
XML serialization has been around ever since .NET was released since it was so widely used back then. It’s still widely used, especially for legacy applications and services, even iTunes still uses XML to store library information. Benchmark results are for .NET 6 & 7.
Performance: Expanded & Expression Bodied Methods
A newer way of creating simple methods in .NET is by using expression-bodied methods. This article shows which method is more performant.

You must be logged in to post a comment.