.NET Blog

Free. Cross-platform. Open source. A developer platform for building all your apps.

Try the new System.Text.Json APIs

For .NET Core 3.0, we're shipping a brand new namespace called System.Text.Json with support for a reader/writer, a document object model (DOM), and a serializer. In this blog post, I'm telling you why we built it, how it works, and how you can try it. We also have a video: Getting the new JSON library The future of ...

Announcing .NET Core 2.2

We’re excited to announce the release of .NET Core 2.2. It includes diagnostic improvements to the runtime, support for ARM32 for Windows and Azure Active Directory for SQL Client. The biggest improvements in this release are in ASP.NET Core. ASP.NET Core 2.2 and Entity Framework Core 2.2 are also releasing today. You can download and ...

Announcing .NET Framework 4.8 Early Access build 3694

We are happy to let you know that .NET Framework 4.8 is now feature complete and we have an early access build to share with you all! We will continue to stabilize this release and take more fixes over the coming months, and we would greatly appreciate it if you could help us ensure this is a high-quality release by trying it out and providing...

Understanding the Whys, Whats, and Whens of ValueTask

The .NET Framework 4 saw the introduction of the  namespace, and with it the  class. This type and the derived  have long since become a staple of .NET programming, key aspects of the asynchronous programming model introduced with C# 5 and its  /  keywords. In this post, I'll cover the newer / types, which were introduced to help ...

Troubleshooting ASP.NET Core Performance Problems

This is a guest post by Mike Rousos I recently had an opportunity to help a developer with an ASP.NET Core app that was functionally correct but slow when under a heavy user load. We found a few different factors contributing to the app's slowdown while investigating, but the majority of the issues were some variation of blocking threads that...

Improve website performance by optimizing images

We all want our web applications to load as fast as possible to give the best possible experience to the users. One of the steps to achieve that is to make sure the images we use are as optimized as possible. If we can reduce the file size of the images then we can significantly reduce the weight of the website. This is important for various ...

RyuJIT Just-in-Time Compiler Optimization Enhancements

I'd like to tell you about some of the recent changes we've made as part of our ongoing work to extend the optimization capabilities of RyuJIT, the MSIL-to-native code generator used by .NET Core and .NET Framework. I hope it will make for an interesting read, and offer some insight into the sorts of optimization opportunities we have our ...

Profile-guided optimization in .NET Core 2.0

This post was co-written by Daniel Podder and Bertrand Le Roy. .NET Core 2.0 introduces many new optimizations that will make your code even faster. A lot of work has been done in the base class library to improve performance, but in this post, we'd like to talk about a specific category of optimization: profile-guided optimization (or PGO...

Performance Improvements in RyuJIT in .NET Core and .NET Framework

RyuJIT is the just-in-time compiler used by .NET Core on x64 and now x86 and by the .NET Framework on x64 to compile MSIL bytecode to native machine code when a managed assembly executes. I'd like to point out some of the past year's improvements that have gone into RyuJIT, and how they make the generated code faster. What follows is by no...

Performance Improvements in .NET Core

Update (2017/06/12): Added BenchmarkDotNet blog post link. There are many exciting aspects to .NET Core (open source, cross platform, x-copy deployable, etc.) that have been covered in posts on this blog before. To me, though, one of the most exciting aspects of .NET Core is performance. There's been a lot of discussion about the ...