Collection Performance

These articles delves into performance optimization for collections in .NET, covering topics like looping, sorting, and utilizing different types of objects. The author identified performance variations related to the object type in the collection and recommends conducting benchmark tests. All recommendations are specific to .NET 8.

Mastering Globalization

Globalization is essential for application development and should be integrated from the start, not as an afterthought. It encompasses more than just text translation, including nuances of languages, cultures, and data formats. Proper implementation enhances performance and user experience worldwide, while neglecting it can lead to significant difficulties and costs later.

Adobe Lightroom: Issues with Most Updates

The article outlines the author's frustration with Adobe Lightroom Classic updates, citing issues like lost edits and export failures due to catalog format changes. They urge for better testing, maintenance of user setups, and swift bug resolution. Specific grievances include vanished settings, performance decline, and incompatibility with MacMini systems. The author emphasizes the need for Adobe to prioritize user experience to retain subscribers.

Optimizing String Performance

Strings in .NET can severely impact performance if not managed properly. This guide explores string performance optimization, covering issues like concatenation, formatting, and memory allocation. It provides practical solutions using tools like StringBuilder and spans, offering benchmark-driven strategies to enhance application efficiency for developers dealing with strings.

Reference Type & Structure Performance

Understanding the differences between reference types (classes) and value types (structs) is crucial for optimizing .NET application performance. This content offers benchmark-driven insights on when to use each type, emphasizing the impact of choice on execution efficiency. Mastering these concepts ensures high-performance code in your applications.

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.