.NET Tools
Essential productivity kit for .NET and game developers
.NET Annotated Monthly | February 2022
Did you know? On Windows, it’s not possible to create a folder named “con”. Windows will display a dialog saying “The specified device name is invalid”. That’s because “con” is a reserved word dating back to MS-DOS.
.NET news
- Performance improvements in ASP.NET Core 6
- Announcing .NET MAUI Preview 12 (Latest Preview)
- State of the Windows Forms Designer for .NET Applications
- Announcing the Plan for EF7
- .NET 6 Networking Improvements
Featured content
We’d like to thank Layla Porter for curating this month’s featured content! Layla is a Developer Advocate at VMware Tanzu. She is a Live Coder on Twitch, a Microsoft MVP, GitHub Star, and the founder of the #WomenOfDotNet Initiative. Layla has also just started to dip her toe into the world of TikTok (or DevTok if you wish)!
Blazor was initially launched back in 2018. Since then at has gained huge traction and not only lets you build super-responsive client-side applications with C# (goodbye JavaScript – sort of!) but can now be integrated with the upcoming .NET MAUI to create mobile and desktop apps with ease!
Edit Local Images/Text from a .NET MAUI Blazor Hybrid App – Interaction with native Windows apps wasn’t possible with Blazor Hybrid at first, due to the JavaScript security context. That’s all changed and David Ramel demonstrates how it can now be achieved.
Pre-render Blazor WebAssembly at build time to optimize for search engines – Niels Swimberghe discusses the shortcomings of Blazor (and Single Page applications) with regards to SEO and then covers how pre-rendering your Blazor app can improve SEO performance.
Introducing the Telerik REPL for Blazor – the clever folks over at Telerik have created a free-to-use REPL to build and share Blazor components without the need for a solution. Ed Charbeneau talks through the basics in this article.
Secure a Blazor wasm asp.net core hosted app using BFF and OpenIddict – Damien Bod covers how to secure a client-side Blazor app using backend-for-frontend security architecture and OpenID Connect.
Built On Blazor – if you want to see what sites have been built with Blazor, then check out this website.
If you’d like to learn how to get started with Blazor, then Jeff Fritz has recently released this video.
If you’d like to watch Blazor applications being built in the wild, then check out these streamers (including myself!):
And finally, on February 10th, there will be a whole day of frontend .NET content including Blazor at the .NET Frontend Day
.NET & programing tutorials and tips
.NET tutorials and tips
Check out January’s blog posts, articles, videos and other tutorials from .NET developers.
- Model Binding in ASP.NET Core using Razor Pages – Whenever a user fills out a web form that’s been written in Razor Pages, those pages rely on Model Binding to appropriately scrub and verify the data in them. Elisenda Gascon demonstrates this essential feature in her post.
- Cascading Values and Cascading Parameters in Blazor – Golda from CodeMurals explains how to share data between components in Blazor using cascading values and parameters.
- Using Guard Clauses in .NET – A significant amount of coding is about verifying input to avoid errors during program execution. Charlin Agramonte shows this classic defensive programming technique in her tutorial on guard clauses.
- Learning about Clipboard in Xamarin Forms and Replicating Boarding Pass UI in Xamarin Forms – Catch these two excellent posts by Leomaris Reyes. Using the Clipboard is such an integral part of computing. And who doesn’t want to use a boarding pass style UI for their apps? Say what you will about airlines, but boarding passes are simple and clean UIs that get the job done.
- Getting started with Durable Functions – Durable functions give Azure Functions developers a way to manage state across functions. Stephanie Lee sends you on the right path to Azure Durable Functions in her tutorial.
- Distributed tracing with Azure Functions Event Grid triggers – In this more advanced piece, Liudmila Molkova details how to provide telemetry through distributed tracing in Azure Functions.
- Interacting with Orchestrations in Azure Durable Functions – This YouTube video by the ASP.NET Monsters (that’s James Chamber, David Paquette, and Simon Timms) show some more noteworthy details about how orchestrations work in Azure Durable Functions.
- Series: Creating a source generator – Andrew Lock has been publishing this wonderfully in-depth series on everything you need to know about source generators in C#. It’s well worth the read!
- An Honest Comparison of VS Code vs JetBrains: 5 Points – Jeremy Liu compares our own Rider IDE and VS Code, with the good and bad, and why he likes each.
- Build a game like Space Invaders using .NET Maui – Pew pew pew! Pew pew pew! Who doesn’t love Space Invaders?! Thank you Jon Nichols for showing us such a fun way to learn .NET Maui. Pew pew pew!
- 10 Best C# NuGet Packages to Improve Your Productivity in 2022 – Sangeetha Periyaiah lists some awesome NuGet packages that will help you out this year.
- Edit Local Images/Text from a .NET MAUI Blazor Hybrid App – Are you working on an image or text editor? Then you’ll want to read this post by David Ramel showing you how.
- .NET Watch Launch Setting Profile For ASP.NET Core and Get C# Metadata From a Call Site – Check out these two great posts by JetBrains coworker Khalid Abuhakmeh.
- ILogger, ILoggerFactory, and ILoggerProvider in .NET – It’s a necessary part of app development so take a few minutes to review this piece by Code Maze.
- What are Abstractions in Software Development [.NET] – Abstractions are a staple of object-oriented development, and Steve Smith explains them well in his blog post on the topic.
- How to stop forgetting to await an awaitable call – Some nice coding tricks in here by Dennis Doomen regarding the now ubiquitous async/await calls, in which everyone seems to forget to actually await things.
- How to Check if .NET Is Already Installed – New machine and not sure if .NET is installed? Here’s some quick scripts to check out which .NET version is installed by Code Maze. Handy!
- Dependency Injection in .NET 6 – Intro and Background – DI is how .NET keeps components loosely coupled and it’s important to get these basics down. This month Matthew Jones demonstrates the principle and how to put it to use.
- Working with Entity Framework Core inside JetBrains Rider – Andrew Rublyov has created a Rider plugin that enables developers to use a UI to manage EF Core migrations and other features. In this post he shows how to work with data efficiently using EF Core and Rider.
- How To Use NUnit Annotations For Selenium Automation Testing [With Example] – Here’s a really nice example of automation testing with NUnit and how to maximize tests with annotations. Post by Himanshu Sheth.
- How to get ASP.NET Core server URLs and How to send recurring emails in C# .NET using SendGrid and Quartz.NET – If you’re developing with ASP.NET or Azure, Niels Swimberghe has some great content walking you through everything you need to know.
- MergeSort in F# – If you’re a C# developer, now is a great time to see how a classic algorithm like this works in a functional language like F#. If you’re already developing in F#, this post is a nice intro or refresher into the Merge Sort. Post by Édgar Sánchez Gordón.
- Challenges of using SQL with F# – F# can and does work well with SQL, but there are a few challenges and “gotchas”, as demonstrated in this post by Akash Mair.
- Writing unit tests for EF Core – Yes, you must test EF Core code too! Jason Sultana has created a tutorial showing the best ways to do this.
- How did we get from .NET Framework to just .NET? – This is a great question that’s often asked. Jeff Fritz has the answers and a quick history tour of .NET.
- WPF UI – Check out this GitHub repo for those who want a modern and styling UX for their apps. It’s “A simple way to make your application written in WPF keep up with modern design trends.” Created by Leszek Pomian of Lepo.
- Secure Configuration in Azure with Managed Identity – Jason Farrell details what it takes to secure config in Azure with managed identity.
- De-mystifying Linq – Steve Fenton created this succinct article that helps make Linq a bit easier to code.
Free eBooks! ASP.NET Core, gRPC, and Blazor! Who doesn’t love free eBooks?
Related programming tutorials and tips
Software development is more than just coding. Learn about infrastructure, teams, workflow, and workplace dynamics with these excellent resources.
- Crowdsourcing quality: Can the hive mind/herd mentality help you in software testing? – People might do pair programming but many of us never even consider hive mind for testing. It’s definitely worth a read, and can help you boost the quality of your software. Article by Devyani Borade.
- The Role of CI/CD Pipeline in Software Development – Tetiana Stoyko details how CI/CD is important and where and how it fits into the development life cycle.
- Structural Lessons in Engineering Management – If you’re a manager, you can engineer your engineering management skills while managing your engineers. Or something like that. Let Camille Fournier explain further in a way that’s not confusing.
- How to begin your DevOps journey – You must start somewhere, and there’s no better place than by reading this article by Christina Hupy.
- Introduction to Containers and Docker – Check out Liam Mooney’s tutorial on containers and Docker.
- How Docker Desktop Networking Works Under the Hood – Take your Docker knowledge so much further with this in-depth article by David Scott. “Under the Hood” articles are really informative.
- This post was written with GitHub Copilot – The very meta Joseph Guadagno has used GitHub Copilot to write a post about GitHub Copilot. It’s GitHub Copilots, all the way down.
People often are reluctant to share because “everyone knows”. Sure, a few will, but you’ll find yourself surprised every time you share something you think is common knowledge but many say “Thanks! I didn’t know that!” So share it!
Great advice for software developers. They don’t tell you these things in school or at work.
Striving to be a senior? Here’s some advice to help you get there.
Interesting and cool stuff
Some random cool stuff that we found this month. Culture. Tech. Whatever.
- The Great Resignation is here. What does that mean for developers? – “Times, they are a changin!”, the old folks say. Eira May talks about how the employment landscape is working in favor of workers, spurred on by the pandemic.
- Can Music Really Help You Work Faster or Be More Creative? – Sure, many of us like music when we work. But can we use it to be both faster and more creative? What sorcery is this? Suzanne Scacca answers these questions.
- Why Are More Companies Trying 4-Day Workweeks? – Good question, David Cassel! Some companies are trying this, and it seems to be going well. So where’s the 4-day wave? Also, where’s that paperless, wireless office I’ve heard about since the 1990’s? So far, not much of either, but we shall see as the future unfolds.
Fun tweets this month…
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, and more:
- Entity Framework Core Inside Rider: UI Way (Guest post by Andrew Rublyov)
- Plugin Developers Appreciation Day
- Editing Markdown with Rider
- Why Your Ticket May End Up in a Different Tracker
Don’t miss this fantastic offer! CODE Magazine is offering 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!