.NET Tools
Essential productivity kit for .NET and game developers
.NET Annotated Monthly | December 2023
Did you know? The acronym ASP in ASP.NET stands for “Active Server Pages”. Before ASP.NET was released in 2002, ASP (just ASP, not ASP.NET) is how developers wrote websites on the Microsoft stack. It was a very basic model of server side rendering. Today, there are many ASP.NET products for building web applications, including MVC, Razor Pages, and Blazor. And did the recently released Aspire get the first part of its name from there as well?
.NET news
November is always full of releases:
- Announcing ML.NET 3.0
- Announcing .NET Chiseled Containers
- Announcing .NET 8
- Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8
- Announcing F# 8
- Announcing C# 12
- Announcing ASP.NET Core in .NET 8
- Entity Framework Core 8 (EF8) is available today
Featured content
In November, we published the results of our DevEcosystem Survey 2023, including a language breakdown for C#. Here’s some of the .NET highlights:
Survey Question: Which programming languages are you using in your .NET project?
Our numbers show Blazor developers at around 13% in 2022, and this year it’s up to 16% for Blazor server developers and 13% for Blazor WASM. Meanwhile, both JavaScript TypeScript usage among .NET developers have declined just a few percent (4% and 2%, respectively).
Survey Question: Which runtimes do you regularly use?
Our numbers show every year (2021, 2022, 2023) that there are a significant number of projects that remain on previous frameworks.
Next year, we can expect some questions about how developers use AI for their daily tasks. 🤖
Programing tutorials and tips
.NET tutorials and tips
- Automating memory profiling with the JetBrains DotMemory Profiler API – Steve Gordon demonstrates ways that developers can automate the collection of snapshots in a repeatable way to do profiling right, and have the best performing software.
- Guide To Building AWS Lambda Functions with Ease in JetBrains Rider – Rahul Pulikkot Nath created this great tutorial showing how to use Rider to create AWS Lambda Functions.
- Comparing REST, gRPC & GraphQL – This 3-Part series by Poornima Nayar goes over everything you need to know about the differences and similarities between all three of these popular web technologies.
- Text Truncation and Wrapping in .NET MAUI and From Text to Action: Creating Hyperlinks in .NET MAUI – This month, it’s all about various ways to work with text in MAUI. Posts by Leomaris Reyes.
- How Does Blazor Compete with MVC and Razor Pages – Rockford Lhotka explains the phenomenon behind the results of our DevEcosystem survey results on ASP.NET technologies: Blazor, MVC, and Razor Pages.
- Test-Driving Windows 11 Dev Drive for .NET and Provide opt-in to experimental APIs using C#12 `ExperimentalAttribute` – DevDrive is a new type of storage volume for Windows. Maarten Balliauw tried it out, and jotted down his observations about it as well as explaining how it works. His second article discusses how to properly opt into APIs.
- Implementing a Simple Garbage Collector in C# – Your first question about this article may be “But why?”, but Nicolas Descartes explains that building a simple GC can really reinforce the concepts behind how .NET’s (or any) garbage collector works.
- What’s new in C# 12 – Read the latest summary by Laurent Kempé about many of the new features in C# 12.
- Exploring what is inside the ASP.NET Core cookies – ASP.NET Core issues several cookies, including authentication, antiforgery, and session cookies. This blog post by Tore Nestenius explores what these cookies contain and how they are protected.
- How to (and how not to) design REST APIs – Derek Comartin published this video with some excellent advice regarding REST API design.
- Creating Zip Files in Azure Blob Storage – Very useful! At some point, we all have to write some code to create a zip file for an app. Tutorial by Mark Heath.
We all know this feeling…
Interesting and cool stuff
- LinkedIn Post on engineering disciplines – Ian Cooper posted some thoughts about the differences between software development, software engineering, craft coding, and what should or shouldn’t be considered “engineering”.
- Are remote workers more productive? That’s the wrong question. – Eira May throws down the gauntlet on remote work. It’s not simply a matter of productivity, though many remote workers feel more productive at home.
- A Few Ways CSS Is Easier To Write In 2023 – Did you decide you hate CSS and haven’t written it in a long time because of that? Perhaps you should take another look – modern CSS is quite nice. Post by Geoff Graham.
- Octoverse: The state of open source and rise of AI in 2023 – Everyone who’s anyone and even more folk seem to be getting into AI nowadays. But other than the JetBrains DevEcosystem survey, where’s the good info on it, focusing on AI? GitHub to the rescue!
It’s Git discussion bingo time! 🤣
And finally, the latest from JetBrains
Here’s a chance to catch up on JetBrains news that you might have missed:
Join our ReSharper & Rider 2023.3 Release Party
Wednesday December 13, 2023. 🥳🎉
ReSharper 2023.3: Support For C# 12, Performance Enhancements, and More AI-Powered Features 🎉
dotCover, dotMemory, dotPeek, and dotTrace 2023.3 Release 🎉
Check out our .NET Guide! 🗺️ Videos, tips, and tricks on .NET related topics. ⚒️
Blog posts, webinars, etc..:
- Another Look into the Future with Rider’s Predictive Debugger
- Primary Constructors – Using C# 12 in Rider and ReSharper
- Visualize Entity Framework Relationships and Additional Query Analysis in ReSharper 2023.3
- Automatically Analyze ASP.NET Core Performance With Dynamic Program Analysis
- How Zynex Monitoring Solutions uses Qodana to Manage Code Quality for their .NET Applications – Case Study
- How JetBrains Rider Implemented .NET WebAssembly Debugging
- OSS Power-Ups: MassTransit – Webinar Recording
- Scott Sauber – Test Driven Development with Blazor – Webinar Recording
CODE Magazine offers a free subscription to JetBrains customers. Get your copy today!
Sharing is caring! So share content that you find useful with other readers. Don’t keep it to yourself! Send us an email with your suggestions for publication in future newsletters!