Rock Your Code: Coding Standards for Microsoft .NET (8th Edition)

The 8th edition of the book, Rock Your Code: Coding Standards for Microsoft .NET, is available on Amazon. It consolidates Microsoft .NET coding standards and provides supplementary directives. Drawing insights from Microsoft’s code inspection tools, the book covers topics such as project setup, naming standards, class design, coding style, and more. The book's purpose is to facilitate superior code quality and swift integration of new team members. It's designed for use with Visual Studio 2022, C#, and .NET 8.

Microsoft .NET Code Analysis: Add Explicit Cast in foreach() Loops

The article highlights the importance of adding an explicit cast in foreach loops when dealing with collections to avoid potential runtime issues caused by hidden casting. It also suggests simplifying the code using LINQ and optimizing performance by using `AddRange()`.

Microsoft .NET Code Analysis: Make Collection Properties Read-Only

The article discusses the common programming practice of providing access to data collections through properties and highlights the issue of mutability in such properties, which can lead to undesirable collection replacements. To adhere to best practices, the article recommends either removing the property setter or using the init modifier to make the property read-only, emphasizing that read-only properties with collections are supported by binary and XML serialization.

Microsoft .NET Code Analysis: Simplify LINQ Expressions

The article discusses simplifying LINQ expressions in source code by eliminating unnecessary Where() methods and placing predicates directly in FirstOrDefault(). This not only improves code readability but also demonstrates a 1.9 times performance improvement in .NET 8.

Microsoft .NET Code Analysis: Utilize the Pattern Matching ‘not’ Operator

The article discusses how developers can improve code performance and readability by replacing explicit type checks with pattern matching, eliminating the need for redundant type conversions and enhancing code efficiency.

Analyzing Performance Issues in Microsoft .NET 8

The author details extensive performance benchmarking of .NET 8, showcasing its notable improvements but also highlighting areas of performance regression compared to .NET 6. The areas of regression include slows in object creation, disposing, checking for null, array creation, LINQ methods, string handling, string compression, finding strings, encoding and decoding, and certain LINQ APIs and Lambda methods. He encourages developers to benchmark their code before transitioning to .NET 8.

Microsoft .NET Code Analysis: Utilize Pattern Matching to Eliminate the Need for an ‘is’ Check

The author identifies inefficiencies in type conversions within a code sample from the Entity Framework codebase, suggesting improvements through pattern matching. They note 22 instances requiring fixes and recommend using their updated EditorConfig file for similar analyses. Feedback on their open-source project, Spargine, is welcomed.

Microsoft .NET Code Analysis: Use nameof() To Retrieve the Parameter Name

The article discusses the importance of using `nameof()` in code to retrieve parameter names, highlighting how it helps prevent issues when parameter names change during refactoring by automatically updating them in exception handling. Additionally, it mentions that `nameof()` provides performance benefits by generating names during the build process rather than at runtime.

Microsoft .NET Code Analysis: Choosing Between String.Contains() and String.IndexOf()

In this article, we explore Microsoft's recommendation to utilize the String.Contains() method instead of String.IndexOf() for improved code readability. We provide code examples to illustrate this suggestion and discuss its relevance in the context of common coding practices, referencing its application in Entity Framework source code and adherence to coding standards like CA2249.

Microsoft .NET Code Analysis: Remove Unnecessary Lambda Expressions

Microsoft recommends removing redundant Lambda expressions, which can be identified based on specific conditions such as the presence of method invocations, matching parameters, and other criteria. The article provides an example of code improvement by eliminating unnecessary Lambda expressions in Entity Framework source code, addressing violations like IDE0200.