DEV Community

Anastasiia Vorobeva
Anastasiia Vorobeva

Posted on

.NET Digest #2

Welcome to our second news and event digest for the .NET world! The first digest resonated with you, so the PVS-Studio C# team has gathered the most awesome and handy insights for you again. Let's get started!

We'd love to hear your thoughts and ideas! :)

Feel free to send us some interesting findings using our feedback form!

Today in the digest: .NET 9 Preview 6, articles about new C# features, end of the .NET 6 support, and much more.

Top news

.NET 9 Preview 6. Microsoft has released the latest preview version. Now we're waiting for the next stage, RC 1. Let's briefly list the major changes:

  • enhancements to* System.Numerics and System.Text.Json*;
  • a new ability to use the [GeneratedRegex] attribute on properties;
  • an introduction of new types*: OrderedDictionary and ReadOnlySet*;
  • now you can use allows ref struct to constrain a generalized parameter—it tells the compiler and runtime that ref struct can be used as a generic parameter;
  • NuGetAudit now issues warnings for vulnerabilities in transitive dependencies;
  • a new feature, dotnet nuget why, to find out why a transitive package is being used in a project;
  • MSBuild BuildChecks now helps users detect issues during project building.

.NET 6 will reach End of Support on November 12, 2024. .NET 6 will reach the end of support. It means new security updates won't be released, and technical support will be stopped for .NET 6. You'll also get a warning about an unsupported version during builds. It'd be better to update to .NET 8.

Video

https://www.youtube.com/watch?v=5KdICNWOfEQ&t=0s

A Complete .NET Developer's Guide to Span with Stephen Toub. Here's a great video tutorial about Span in .NET by Stephen Toub.

Articles

.NET and .NET Framework July 2024 servicing releases updates. Now news about .NET and .NET Framework updates are combined in one location on the blog. Various vulnerabilities have been fixed in the July update.

C# 13: Explore the latest preview features. In this article, Microsoft describes the C# 13 updates available in the latest preview. You can learn more about params and the index operator enhancements, the new lock object, the partial properties, allows ref struct, and more.

The developers also announced that the extension types that were supposed to be released in C# 13 will only be introduced in C# 14 (.NET 10). It's a little disappointing, but it's better than getting a half-baked feature.

What's new in .NET Aspire 8.1 for cloud native developers! A new .NET Aspire 8.1 release brings new features. Now you can create container images via AddDockerfile(...), orchestrate the Python code using AddPythonProject(...), and other enhancements for testing telemetry. New components have also been added, including Keycloak, Elasticsearch, Garnet, Valkey, Kafka UI, and others.

We've recently posted an article about checking Microsoft Garnet source code with the PVS-Studio static analyzer.

Dive into native Windows development with new WinUI workload and template improvements. Microsoft recommends developers use WinUI to develop apps on Windows. Now you can use new workloads and templates to create projects.

Behind the scenes of collection expressions. Andrew Lock wraps up the series of articles on collection expressions. Here's the list of new articles:

Disambiguating types with the same name with extern alias. Andrew Lock takes a look at the issue of using two libraries that have the same type names and namespaces. It's a rare issue, but it's better to know how to avoid compilation errors and handle them.

Cloned Dictionary vs. Immutable Dictionary vs. Frozen Dictionary in high traffic systems. The author compares the effectivity of different dictionaries in high-traffic systems. He talks about which dictionary type may be less efficient because of high-cost memory allocation, and which type operates slower because of the need to allocate memory for each transaction.

CREATING HASHES IN .NET. In this article, you can learn about the different methods of creating hashes in .NET. Hashes are pretty handy for a one-way encryption, which is used to store credentials and other private data securely. Developers also use them for the JWT validation and other scenarios.

C# Design Patterns - Iterator - Language Features. The author describes C# built-in support for the iterator pattern: IEnumerator, IEnumerable, and IAsyncEnumerable.

Why and How to Execute GraphQL Queries in .NET. The post author tells how to query a GraphQL API in .NET using the Strawberry Shake library from a console app.

Adding Serilog to ASP.NET Core: a practical guide. Serilog is a logging library that you can use on your own. It's compatible with Microsoft.Extensions.Logging that is great for the ASP.NET Core apps. Do read this article if you want to learn why Serilog is a great choice and how to integrate it into your ASP.NET Core project.

ReadOnlySet in .NET 9. The preview 6 brings a new type, ReadOnlySet, in .NET 9. Here, you will read how it operates and why it was introduced.

Troubleshooting 6 Known Issues in .NET MAUI. Would you like to know what six most common issues in .NET MAUI are, and how to fix them? If you're interested, I'd highly recommend reading this article!

MemoryCache in C#: A Practical Guide. MemoryCache is the standard implementation of an in-memory cache for C# apps. It enhances performance and scalability through increasing the amount of used memory. This guide shows you when and how to best use MemoryCache.

News

Extend System.Guid with a new creation API for v7. Here you can read the discussion about the UUIDv7 support in .NET 9. This will bring several enhancements: improved time sorting, compatibility with other systems and standards, high uniqueness due to random and incremental data, and enhanced performance when generating and using UUIDs.

Thank you for reading! See you soon! Feel free to share your thoughts and findings with us!

Top comments (0)