.NET Annotated Monthly | March 2022
Did you know? The original name for C# was COOL, short for “C like Object Oriented Language”. However, due to some legal reasons and a lot of conflicts with cool, the naming team went with C#.
- Happy 20th Anniversary, .NET!
- .NET 20th Anniversary recording
- Announcing .NET MAUI Preview 13
- ASP.NET Core updates in .NET 7 Preview 1
- Announcing .NET 7 Preview 1
- Announcing Entity Framework 7 Preview 1
- (Plans) Requiring two-factor authentication on NuGet.org
We’d like to thank Joseph Guadagno for curating this month’s featured content, as well as the introductory trivia! Joe is a Director in Engineering at Rocket Mortgage, Microsoft MVP, active Blogger, and rambler on Twitter.
This month, Joe discusses everything about the C# language, particularly the latest and greatest features. Read on…
Static Abstract Members in C# 10 Interfaces – Khalid shows us how static abstract members allow each implementing member of an interface to implement their version of a static accessor.
Object not set to an instance of an object is an exception that many .NET developers had to deal with in the past. This is due to us not handling null values. Microsoft realizes this pain and has done work to improve this in C# 10. Before we move into the changes, Christian does a great of explaining how nullable, and the handling of it, has changed from the introduction of it in C# 8 through C# 10 in C# Nullable Features thru the Times. Don’t worry, Christian does not get into the (chitty chitty) !! operator yet. For more on the (chitty chitty) !! operator, check out Ian’s post of a C# 11 preview feature Parameter Null Checking.
Anthony looks at some unnoticed new additions to C# 10, Parameterless Constructors and Instance Field Initializers.
Working with strings is a big part of most software development. Let’s look at some of the changes made to String Interpolation and Constants. While working on string, sometimes we want to log method arguments names and values. C# 10 introduced the CallerArgumentExpression attribute which allows you to capture argument names and their values.
While not totally about C# 10, Charles Chen, Dispels 6 Myths about .NET.
To see more improvements made to C# 10, check out the C# 10 Features by C# Corner. If this excites you, check out the Early Peek at C# 11 features by Kathleen Dollard. If you want to see how to put some of these language features together, Christian shows us how to Upgrade an ASP.NET Core Web API Project to .NET 6 using many of new language improvements.
I’ll be presenting 6 (or so) new Features of .NET 6 at the Philly.net Code Camp on Monday March, 4th. It’s a free and virtual event. I’ll be covering a lot of topics in this newsletter. Hope to see you there. I’m also speaking at some other events soon. If you want to learn more on C# 10, the latest improvements in .NET, Azure, SQL Server, and more, you can join me and other speakers are DEVintersection, live and IN-PERSON April 4-9 in Las Vegas, Nevada. You can also catch me in Austin, Texas at THAT conference.
.NET tutorials and tips
- Tag Helpers in ASP.NET Core – A nice tutorial by Elisenda Gascon about Tag Helpers in ASP.NET Core. Tag Helpers allow you to create reusable widgets.
- Pattern Matching in C# – Jessica Hill demonstrates what pattern matching is, why to do it, and how to do it in this article.
- Early peek at C# 11 features – Check it out! What’s in sight for C#? Cool new stuff coming your way! By Kathleen Dollard.
- Replicating Course Profile UI in .NET MAUI – Leomaris Reyes demonstrates how to build a UI in MAUI that is similar to popular language learning course apps.
- 5 Important Things to Make Your Cross-Platform (.NET MAUI) App Accessible – Accessibility is important! If you’re doing MAUI, this post by Selva Ganapathy Kathiresan explains how you do it.
- Learn Progressive Web Apps with 30DaysOfPWA – Nitya Narasimhan is in the midst of publishing 30 days of PWA content. This is a great way to absorb material in small chunks.
- Improving the UX of Xamarin Apps – Listen in on Kerry Lothrop’s Podcast featuring Charlin Agramonte and Rendy Del Rosario, where they discuss how to improve the UX in your Xamarin apps. The user’s experience is what it’s all about. That’s why we build software. It’s for people.
- Testing ASP.NET Core 6 Apps – Khalid Abuhakmeh takes us back to basics with unit testing. After you read this, check out the next article on code coverage…
- ASP.NET Core – Implementing Code Coverage with JetBrains dotCover – Justin James has published this really great multi-part series on how to do everything you need regarding testing and code coverage featuring dotCover by JetBrains. (that’s us!)
- Automate your .NET project builds with NUKE a cross-platform build automation solution | Online Meetup DevApps, Topic Nuke Build Automation (French) | Unit testing Async WPF ICommand | Laurent’s presentations – Look at all this great content by Laurent Kempé this month! So much to learn. Nuke, unit testing, and updated presentations. All for you!
- Debug attributes in .NET – Want to enhance your debugging experience? Well you’re in luck. Steve Dunn show you how to debug better via attributes.
- How to Upload a File to Azure Blob Storage | 13 C# NuGet Packages EVERY .NET developer NEEDs to Know! | Introduction to Minimal APIs in .NET 6 – Here’s some excellent resources by Claudio Bernasconi. Check out those packages he suggests. You know you want them.
- Params Keyword in C# – Have you ever wanted to pass a bunch of stuff into a method as a single unit? Great! Let Bartosz Jarmuż show you how.
- Adding Tailwind CSS v3 to a Blazor app – Blazorinos, here’s your chance to evaluate and get started with Tailwind CSS. Tailwind is a really nice way to make CSS far less frustrating than it has traditionally been. Thanks Chris Sainty for this tutorial.
- Upgrading an ASP.NET Core Web API Project to .NET 6 – Upgrading is always a challenge. Christian Nagel details what you need to know about upgrading to .NET 6 Web API projects.
- Create a RESTful API with .NET Core and MongoDB – Nic Raboy walks us through the process in another informative “back to basics” post on creating a CRUD app, with Web API and REST, and MongoDB as the backend.
- Integrate ngrok into ASP.NET Core startup and automatically update your webhook URLs Web devs, ngrok is a way to manage and use ports securely. Niels Swimberghe has shown how you can incorporate ngrok into ASP.NET Core projects as a webhook.
- Building .NET project docs with DocFX on GitHub Pages – Do you need to generate docs? Great! James Croft made this doc so you can make yours. Read on!
- Working with the Azure SDK for .NET – Nice post on the Azure SDK by Max Hamulyák.
- Model Validation Using FluentValidation in ASP.NET – The very core of processing data on the web – validation. Learn how to use FluentValidation with Andrew Kulta’s post.
- Implement Identity On Existing ASP.NET Project – Valentin Anghel reviews what you need to know about Identity with your ASP.NET projects.
- Introducing FakeAuth for .NET Core – Caleb Jenkins makes OAth less painful. Dare I say, “easy”?
- Writing native WinDbg extensions in C# – We may try to stay in managed code but it’s not always feasible. Throw WinDbg in the mix and things get difficult. Kevin Gosse is here to help make this process easier.
- Vulnerabilities due to XML files processing: XXE in C# applications in theory and in practice and Why does my app send network requests when I open an SVG file? – Interesting posts by Sergey Vasiliev on XXE (an XML External Entity attack) and what’s happening in your network when you open SVG files.
- Gotchas! in Event Driven Architecture – What you need to be aware of and Building a Webhooks System – This month, Derek Comartin covers important things about event driven architectures, as well as Webhooks. These are two aspects of building software that .NET developers are getting into. Great resources! Also check out his YouTube channel for some YouTube #shorts on software.
Here’s a few older posts, in which some customers have recently had questions about. Hopefully these can provide answers:
- Creating Custom .NET Project Types with .NET CLI Project Templates – Rick Strahl creates custom types with CLI templates.
- 5 things you should know about enums in C# | 5 more things you should know about enums in C# | Enum.HasFlag performance with BenchmarkDotNet – Davide Bellone has answers to enum related questions.
Thanks, Paul! This is a great reminder.
Your periodic #dotnet reminder…— Paul Blasucci (@pblasucci) February 11, 2022
Even if folks sometimes ignore it, the MSFT #fsharp Style Guide — which covers a lot more than just formatting — has loads of really well-tested advice on a wide range of topics. Check it out (frequently):https://t.co/l4bK8cyOhl
Related programming tutorials and tips:
- Three Ways to Configure Modules in Your Angular App – As the post says, this tutorial by Alisa Duncan shows how to configure modules for Angular apps in 3 different ways.
- The basic T-SQL SELECT statement – This month we have a few “back to basics” posts. This one by Greg Larsen reviews the good ol’ SELECT statement.
- The Tuple Type in Typescript – Maina Wycliffe tells tales about Tuple types in TypeScript.
- Tips on reading code – What I learnt from reading code in 24 languages – A lot of folks think you don’t have to learn this, but you do. Here are some tips from John Kilmister. And in 24 languages, no less!
Interesting and cool stuff
- Nerd sniping myself into a rabbit hole – When there’s no support for his Sonos-compatible speakers, Maarten Balliauw finds a way, through several trials, troubles, and technologies.
- 4 Things I Learned from ‘The Subtle Art of Not Giving a Fu*k’ by Mark Manson – Got F*&%#s? Lisa Clark doesn’t. Well, there are 4 things she learned about it.
- How to Practice Radical Candor In Remote and Hybrid Workplaces – This is about feedback, honesty, kindness, how they all fit together and how to do them well (even remotely) by Brandi Neal.
And finally, the latest from JetBrains
Here’s a chance to catch up on JetBrains news that you might have missed:
🛠 Check out our .NET Guide! It’s a learning tool with tons of videos, tips, tricks, and info on a variety of .NET related topics. 🛠
Blog posts, webinars, etc..:
- Improvements and Optimizations for Interpolated Strings – A Look at New Language Features in C# 10
- Webinar: Working with SQL and databases in Rider (postponed)
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!
Subscribe to Blog updates
Thanks, we've got you!
A Second Set of Bug Fixes: ReSharper 2023.2.2 and Rider 2023.2.2 Are Here!
ReSharper and Rider have just received their second set of bug-fix updates for the 2023.2 release! Let’s take a look at the most important issues that have been resolved in this update. ReSharper For the full list of resolved issues, please refer to our issue tracker. …
ReSharper 2023.3 Early Access Program Begins!
Hello everyone, The Early Access Program for ReSharper 2023.3 has started! Before you download the first EAP build, let’s take a look at what is in store for you. Working with aliases With this first EAP build, we are introducing support for C# 12’s ability for alias directives to refer…
Rider Kicks Off the Early Access Program for the 2023.3 Release!
The Early Access Program for Rider 2023.3 has just begun with the release of the Rider 2023.3 EAP 1 build. There are several ways to get your hands on it: Download and install them from our website. Use the Toolbox App. Install this snap package from the SnapCraft store if you’re using a c…
Eager, Lazy and Explicit Loading with Entity Framework Core
Entity Framework Core (EF Core) supports a number of ways to load related data. There’s eager loading, lazy loading, and explicit loading. Each of these approaches have their own advantages and drawbacks. In this post, let’s have a quick look at each of these ways to load data for navigational prope…