.NET Annotated Monthly | October 2021
Did you know? The first person to write a program was Ada Lovelace, in 1843. Ada was an English mathematician and writer who worked on Charles Babbage’s machine, the “Analytical Engine”. She realized that computers have applications beyond mathematical calculations and thus became the first person to create an algorithm to put those non-mathematical applications to use. How amazed would Ada be if she were able to experience today’s computer programs?
- HTTP/3 support in .NET 6
- Announcing .NET 6 Release Candidate 1
- Update on .NET Multi-platform App UI (.NET MAUI)
- File IO improvements in .NET 6
This Month’s Picks
Desktop apps, as well as mobile apps/websites are key types of software that help businesses run. Both Xamarin and MAUI are platforms that extend the .NET framework to provide languages, libraries, and tools for mobile and cross platform development.
Tips and Ticks when creating a Custom Control in Xamarin Forms. Part. 1 – Charlin Agramonte covers a few gems that help make Xamarin controls more robust.
Getting Device Information with Xamarin Essentials – Leomaris Reyes reviews a few basics of the
DeviceInfo object to confirm information about a device.
Xamarin Forms Circular Activity Indicator For UWP – The progress indicator is a well needed utility for any UI developer’s toolbox. Ninaada Bellippad demonstrates how to create one for UWP.
How To Set up .NET MAUI on Windows – You gotta start somewhere. Claudio Bernasconi walks you through the setup steps to get MAUI up and running on your Windows machine.
Tutorials and articles
- Dapr for .NET Developers – Free eBook! Everyone loves free eBooks! This one is on Dapr for .NET Developers by Rob Vettor, Sander Molenkamp & Edwin van Wijk.
- Is C# Getting Too Complex? – Michael Moreno wonders if C# should embrace Python’s stance of “one way to do things”. What do you think?
- Compress Strings With .NET and C# – Khalid Abuhakmeh writes a nice tutorial on string compression.
- Exploring the code behind WebApplicationBuilder – Part 3 of 3 in which Andrew Lock shows what’s going on behind the scenes in ASP.NET.
- Ahead-Of-Time Compilation for Blazor Wasm – If performance or fast start up times are a concern with your Blazor apps, then check out Kristoffer Strube’s article on ahead-of-time compilation for Blazor WASM.
- Start a journey into the .NET Profiling APIs – Christophe Nasarre demonstrates how to profile .NET apps. Using the low-level profiler APIs directly.
- How to test HttpClientFactory with Moq – A nice guide to mocking HTTP calls by Davide Bellone.
- Unit Testing Legacy Code, Part 1: Creating Maintainable Applications – Peter Vogel talks about how unit tests and maintainability go hand in hand.
- Creating Microsoft Teams meetings in ASP.NET Core using Microsoft Graph – Do you want to make your coworkers entirely insane? Then learn how to create teams meetings programmatically with this post Damien Bod has for you!
- Using Source Generators with Blazor components in .NET 6 – Source generators and Blazor are both hot new techs and Andrew Lock aims to combine them here to use in some common business scenarios.
- MS Graph, Blazor WebAssembly and Azure Static Web Apps – Justin Yoo demonstrates an enterprise scenario with multiple .NET technologies with a focus on security.
- Accepting online payments with Stripe – Cecil Phillip hosts this video featuring CJ Avilla in which they discuss using Stripe to accept payments in your web app.
- Events in C# – Vladimir Pecanac takes us back to the basics with everything you need to know about events and delegates in C#.
- An opinionated look at Minimal API in .NET 6 – Oleksii Nikiforov puts forth his experienced-based ideas and opinions on structuring .NET minimal API projects.
- Maybe it’s time to rethink our project structure with .NET 6 – Similarly to Oleskii’s post, Tim Deschryver makes some points about how to structure Minimal API projects.
- Versioning ASP.NET Core Services – Yep, you have to version these too. Or else those services end up in a versioning mess. Post by Leslie Richardson and Phil Japikse.
- C# 10 new features and examples that are not in C# 9 – David Grace writes about the newest features.
- C# 10.0 implicit global using directives – Ian Griffiths shows off the new global using directive of C#.
- A look at the upcoming improvements to LINQ in .NET 6 – Matt Eland shows off some really nice improvements to come in .NET 6.
- Aaron Stannard’s response to Rodney Little’s post. Rodney Littles II talks about his experience as a .NET Foundation director, and why he chose to resign. These posts point out some issues and offer some criticism about the .NET Foundation, particularly regarding its perception and whether it continues to be helpful to the .NET OSS community. If you’re interested or involved in OSS and want to keep up with what’s happening in that space, follow the discussions Aaron and Rodney are having.
Related programming tutorials
- Bug Reporting—Writing for an Audience – Knowing how to write a proper bug report is essential to the testing/QA and developer experience. Yet they don’t teach this skill in school, boot camps or conferences. So we can turn to Louise Gibbs who has written down the important aspects of writing a bug report.
- So GitHub has a CLI – let’s take a look – Yes, indeed! GitHub does have a CLI, and sometimes it helps to step away from the UI in favor of the command line. So let Sarah Lean show us some CLI tricks for when we do that.
- The Pros and Cons of Tailwind CSS – Nancy Young throws down the gauntlet on Tailwind CSS.
- How multiple writes and reads are handled in Azure Cosmos DB – Daniel Krzyczkowski dives into the different scenarios related to geo-replication and multiple-writes handling in the Azure Cosmos DB.
- Why Our Agile Journey Led Us to Ditch the Relational Database – This is quite the journey. Listen to Jeff Needham’s story about going Agile and realizing that an RDBMS isn’t always the best database for .NET projects.
- What is Cloud-Native? Is It Hype or The Future of Software Development? – Well? What do you think? Thorben Janssen has some ideas.
- ID Token and Access Token: What Is the Difference? – Here are some security basics by Andrea Chiarelli, specifically, on tokens.
Reuse is often the first thing on a developers’ mind. Sometimes, it’s even considered the most important thing despite the fact that we tend to forget that not all code should be reused. Here Andrew Stellman makes the case for single use code.
Do you always design your code for reuse? Thinking about reuse first can lead to complex code. The “use-use-reuse” model—design for one case first, and pull out the part you need to reuse only when you actually have a real need to reuse it—can leave you with much simpler code.— Andrew Stellman 👾 (@AndrewStellman) September 27, 2021
Interesting and cool stuff
- 4 Team Effectiveness Models To Understand Your Team Better – The majority of professional developers work on teams, even if they are small. Independent consultants often take projects as part of a team. But do we ever think about what being part of a team means? Do we understand it? Learn about these important facets of teams by Deanna deBara.
- Fantastic terminal programs and how to quit them – This wonderfully satirical piece by Zheng Tao is fun to read.
- How Medical Companies are Innovating through Agile Practices – One great way to gain perspective and skills is through examining software by those industries that you have no experience in. You will find certain practices or techniques apply across industries. So broaden your horizons with this article by Nancy Van Schooenderwoert & Brian Shoemaker about Agile in medical software.
IT resiliency in one picture pic.twitter.com/0hXve9vugs— Chris Kubecka 🇵🇷 ✈️ #BLM @MiddleEastInst (@SecEvangelism) September 27, 2021
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 – Learning resources for ReSharper, Rider, and more.
The Rider and ReSharper EAPs (Early Access Program) are here!
OSS Power-Ups, Webinars, and Blog Posts
- OSS Power-Ups: CliWrap – Webinar Recording
- Building an Online Ticket Store with Blazor WebAssembly – Webinar Recording
- ChatOps the Easy Way with Abbot – Webinar Recording
- Webinar: Profiling and Fixing Common Performance Bottlenecks
- Advanced Git Workflow Tips
Check out this fantastic offer! CODE Magazine is offering a free subscription to JetBrains customers!
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 email@example.com, or drop me a message via Twitter.
Subscribe to Blog updates
Thanks, we've got you!