.NET Annotated Monthly | January 2021
Happy new year! It’s now 2021 and if you’re reading this, you survived the crazy year that has been 2020! For this year, we’ll start the .NET Annotated newsletter with fun tidbits of computing information. If you have fun computing or computer language trivia, facts, or tips, send them to us! We’ll do our best to fit them in here.
Did you know? The acronym BASIC means "Beginners All-Purpose Symbolic Instruction Code". It’s been a wildly popular language for decades, known for its ease of use. From AppleSoft BASIC to ZBasic, there are hundreds of dialects of the BASIC language. While Microsoft’s VB6 has been retired in 2008, VB.NET’s popularity is still rising!
Year’s end is a slow news period for .NET, since Microsoft headquarters is in the USA where Christmas is celebrated in December. Much of the company is on break and not working, but a few items of interest have been published:
- What’s next for System.Text.Json?
- What’s new in Windows Forms runtime in .NET 5.0
- .NET Core 2.1, 3.1, and .NET 5.0 updates are coming to Microsoft Update
January’s featured podcast is the ASP.NET Monsters Podcast, hosted by a group of Canadian developers, David Paquette, Simon Timms, and James Chambers. The ASP.NET Monsters publish weekly video sessions with industry notables and discuss a range of programming topics – not just ASP.NET. Check them out!
January’s featured blog post may seem like absolute blasphemy to some. Microservices are often argued about which usually causes more questions than answers. What is a microservice? Should my team migrate everything to microservices? Are microservices always necessary? When should we use them? When should we not? In his blog post Why I’ve Been Merging Microservices Back Into The Monolith At InVision, Ben Nadel answers these questions and more in this excellent post where he shows why his team needed to merge microservces back into their monolith, and what problems that has solved. There are lessons here for everyone, whether you’re building microservices or not. Thanks, Ben!
Tutorials and articles
- Real World Localization Implementation ASP.NET Core 5 – Mitchel Sellers demonstrates much needed localization principles and how to’s in this post.
- User Lockout Functionality with Angular and ASP.NET Core Identity – The ability to lockout a user after a few login attempts is essential to any website, and Marinko Spasojevic shows us how to do this.
- Blast Off with Blazor: Prerender a Blazor Web Assembly application – Dave Brock shows us how to prerender app content for better performance.
- Supercharge Blogging With .NET and Ruby Frankenblog – Khalid Abuhakmeh blogs about blogging with .NET and Ruby Frankenblog.
- 5 Habits for Highly Effective .NET Debugging – Idan Shatz demonstrates good debugging habits that are good to know. We all need some debugging from time to time and this post has excellent tips to keep in mind.
- Using C# Extension Methods for Auth0 Authentication – Get Auth0 Authentication right. Andrea Chiarelli offers some insights on using extension methods for authentication in ASP.NET apps.
- Guidelines to improve your software design skills with .NET (Part I) – Continuous improvement should be the cornerstone of every developer’s career. So check out this excellent article by Kevin Avignon detailing some guidelines for you to improve your design skills.
- Avoid C# 9 Record Gotchas – Gotchas! Get them before they get you! by Khalid Abuhakmeh.
- Video: How to deploy ASP.NET Blazor WebAssembly to GitHub Pages – shipping is a feature! Niels Swimberghe takes us to the final but important step in the development process: deployment.
- Playing with top-level programs, records, and Elasticsearch.net – Here’s a great post by Steve Gordon casually taking us through how top-level programs, records and Elasticsearch works.
- Nullable reference types; CSharp’s very own strictNullChecks – Catch this short but informative article by John Reilly on strict null checks in C#.
- Understanding WebSockets with ASP.NET Core – Here’s a nice article by Sahan Serasinghe that describes what happens when you use WebSockets in ASP.NET Core.
- Mixed Model Binding in ASP.NET Core – This is a nice write-up by Jonathan Seeley demonstrating how to use multiple sources for data binding in ASP.NET Core. Bookmark this one because mixed model binding is one of those things that when you need it, you need it.
- Dynamic Class Creation in C# – Preserving Type Safety in C# with Roslyn – This article by Jose Manuel Redondo goes into detail about dynamic class creation and preseving type safety. While long, it’s well worth the time.
Related programming tutorials
- Json Web Tokens: A few Gotchas – Janani Subbiah shares some challenges you might face when working with Json web tokens. She has dealt with these gotchas so you don’t have to.
- Commits are snapshots, not diffs – Many people only use a few commands from GitHub, and feel it’s difficult to wander outside of those few commands. This article by Derrick Stolee goes into detail about all those things folks really should know about GitHub.
- Making a CRUD API using Azure Functions and Azure Cosmos DB – We all need to make a CRUD API at some point. Let Samson Amaugo show you how to do it with Azure Functions & CosmosDB.
- What Is Good API Design? – Here’s a great piece where Andrew Williams lays out his thoughts on what makes a good API. What do you think? Do you agree with his assessments?
- Transitioning from conventional to shift-left testing – It’s so easy to neglect and forget about testing, let alone niche testing principles such as shift-left testing. Unsure of what it is? Then check out this piece by Haritha Hari.
- Mary Poppendieck on Why You Should Just Burn Your Backlog – Do it! Do it! Burn the backlog! In this post, Mary Poppendieck burns down the house, err, backlog.
- Getting Started with Windows Terminal – You might be a hard-core UI person or a keyboard warrior, so there’s a new terminal in town and Kayla Cinnamon is in charge of it. Check it out.
- .NET Has a Third-Party Software Problem – If you don’t read anything else, read this article by Matthew MacDonald. Matthew goes into detail about the .NET & OSS ecosystem. He describes how so many companies do a disservice to themselves by just going with the Microsoft solution rather than considering a 3rd party OSS solution that may be better.
Interesting and cool stuff
A programming language syntax is often dismissed as something insignificant, a matter of personal preference. Yet, the syntax is a vital piece of UX. It is what people read. Common constructs must be concise and unobtrusive, rarely used ones — explicit and easy to understand.
— Roman Elizarov (@relizarov) December 4, 2020
Excellent words of wisdom from our own Roman Elizarov.
— Igal Tabachnik (@hmemcpy) December 2, 2020
Igal (and me) are poking some fun at functional devs. :D
How Programming Languages Change How You Think – Thank you, Matt Eland, for this interesting and engaging piece. Indeed, both human and programming languages influence how you think about the real or programming world around you, and how you go about solving problems.
Accelerate employee’s growth by fostering a “Cultivation” culture – Sara Michelazzo & Sylvia Le Hong share details on how your company can supercharge itself by fostering a "cultivation" culture, where employees can be wonderfully productive and innovate.
Scientific Research Initiatives by JetBrains – Did you know? We do science! There is some awesome science going on at JetBrains. Of course, there’s a lot of computer science happening, such as machine learning, cryptography, languages, and concurrent computing. But there’s also lots of other cool stuff like neurodevelopment/neurophysiology and nuclear physics. We’ve got some super smart folks here, making the world a bit better with technology!
And finally, the latest from JetBrains
Here’s a chance to catch up on JetBrains news that you might have missed:
News, blog posts, and webinars
- Catch up with 2020’s .NET community webinars
- Webinar – Xamarin, the best way to make NFC Apps
- Webinar – OSS Power-Ups: FluentValidation
- Rider 2020.3: .NET 5, C# 9, F# 5, Immediate Window, Project Dependency Diagram, and Updates to Unity Support
- ReSharper 2020.3: Support for C# 9 and Source Generators, New Features in Inlay Hints, and Support for Avalonia UI
- Tips & Tricks to improve your .NET Build Setup with MSBuild – Webinar recording
- Use C# 9 records and init-only properties in ReSharper and Rider 2020.3
- Rider for Unreal Engine 2020.3.3 Preview: Create New Unreal Engine Class Action and Support for .ini Files
- dotCover 2020.3 Improvements And Updates
- Rider 2020.2.5: Support for Big Sur
Sharing is caring! So share your content with other readers. Don’t keep it to yourself! Send a Tweet or email with tips or content for publication in future newsletters! Share with a comment here, email me at firstname.lastname@example.org, or drop me a message via Twitter.
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…