.NET Tools
Essential productivity kit for .NET and game developers
.NET Annotated Monthly | July 2021
Did you know? Microsoft created a C based language named C# in 1988? 1988!? You heard that right! It’s true! This language, of course, was not the C# that we all know and love today. Meanwhile, Rico Mariani says in that same article that the code name for VB version 1 was named “Thunder”. Befitting.
.NET news
- What’s new in Windows Forms in .NET 6.0 Preview 5
- Package Validation
- Announcing .NET MAUI Preview 5
- Announcing Entity Framework Core 6.0 Preview 5: Compiled Models
- Announcing .NET 6 Preview 5
- Date, Time, and Time Zone Enhancements in .NET 6
Featured Content
Hey, F#-ers! This month’s featured content is for you! On July 29th, join the Focus on F# conference for 2 days of live-streamed content. Coming up in September, be sure to catch F# Europe (also online). Later, in October F# eXchange 2021 happens online. If you can’t attend these conferences, here are the next best things:
- F# for Fun and Profit – Everyone likes fun, and everyone likes profit, so this is the best of both for F# developers. This site contains a bank of useful links, posts, and resources for F# developers of all expertise levels.
- F# Weekly – Sergey Tihon maintains this super handy list of resources and things that are happening in the F# world.
- Eugene Auduchinok (@auduchinok) – Follow Eugene on Twitter! He’s our developer who creates all the great features in Rider specifically related to F#. Twitter is a great place to interact with him.
- Interview with F# designer Don Syme and Interview Part 2/2 with F# designer Don Syme – Check out these two interviews with the creator of F#, and learn why and how the language has evolved to be what it is today.
- Dev Impressions Ep. 3 with Phillip Carter – what’s new in F#? – Get the low down on all the new goodies in the F# language.
- Why OO Matters (in F#) – An excellent post by Eirik Tsarpalis explaining why F# is for more than functional programming. It excels in OO too.
- Automate your dev life with F# scripts – This is handy even for developers who don’t use F#. Post by Mark Allibone.
- F# Hawaii – Check out this project by Zaid Ajaj. It’s a “.NET CLI tool that generates type-safe F# clients from OpenAPI documents.”
Tutorials and articles
.NET tutorials
- Build serverless, full stack applications in Azure – Anna Hoffman demonstrates how to build a full-stack app and go serverless while you do it.
- Creating an Append-Only List Wrapper in C# – This is handy! An append only list so other programmers can’t remove the items you put in it! Ilyana Smith shows us how to make one.
- C# Language Highlights: Using Declarations – How to use
using
the right way. Ch 9 video by Maira Wenzel and Matt Soucoup. - C# Language Highlights: Nullable Reference Types – Another great Ch 9 video by Leslie Richardson and Matthew Soucoup discussing nullable referecne types.
- Speed up Creating Code with Live Templates in JetBrains Rider or ReSharper – Joseph Guadagno shows off the awesome Rider/R# Live Templates, and how to speed up the coding process with them.
- Create a REST API with .NET 5 and C# – Beau Carnes (long article)
- Your Guide to REST API Versioning in ASP.NET Core – Dave Brock lays out details showing how to do REST API versioning. This is a much needed blog post for many, as versioning is often overlooked until the API is published.
- Test Your .NET HttpClient Based Strongly Typed Clients Like a Boss – Adam Storr shows us how to create strongly typed HTTP clients to use in the testing process.
- How to authorize and post Slack messages from ASP.NET Core – Many companies have integrated Slack into their enterprise systems. Thomas Ardal created this great tutorial on Slack integration and ASP.NET Core.
- A Peek Into .NET 6’s DateOnly And TimeOnly Structure – Check out the new .NET constructs for working with dates & times by Anu Viswan.
- Print Any File in C# .NET – As the title says, print any file using C#. Uses LEADTOOLS. Post by Zac Cole.
- Conditional compilation for ignoring method calls with the ConditionalAttribute – It’s so much nicer to be able to use an attribute for conditional compilation as opposed to the traditional
#if
and#endif
directives. Andrew Lock has written a nice tutorial demonstrating how to make this happen. - Boost ASP.NET Core Performance with Static Content – We all want better performing web apps. Khalid Abuhakmeh what content to make as static as well as how to in this great post.
- Real-Time Web by leveraging Event Driven Architecture – Derek Comartin has produced this tutorial on real-time web with event driven architecture – something he’s written much about. Check this out as well as his other blog posts with videos.
- Why build Single Page Apps in Blazor – What a great question! David Pine has some answers.
- Simple Steps to Convert an ASP.NET Core with Angular App to a Desktop App – The web->desktop conversion will happen many times in the future. Let Vivek Sankar help you become familiar with how to make this happen.
- Blazor on WPF – Sam Basu shows us how to use Blazor on WPF, for more desktop fun.
- Blazor, TypeScript and Static Web Apps – Aaron Powell reviews what you need to know about these three key technologies in today’s .NET developer landscape.
- Azure Functions and .NET 5: Query params, Dependency Injection, Bicep & Build – John Reilly demonstrates some important concepts needed when building serverless apps.
- ASP.NET Core: State Management in Blazor Applications – State management is something all web devs must deal with. Mahesh Sabnis breaks it down, and shows how to manage state well in ASP.NET Core apps.
- Custom bindings with Azure Functions .NET Isolated Worker – Maarten Balliauw published this nice piece showing how to create custom bindings to reduce the amount of boilerplate code.
- Why We Chose Blazor WASM for our SPA – Steve Peirce explains his team’s reasoning for using Blazor WASM, as opposed to Next.js or other frameworks. He also lays out a few pain points that arose from that decision.
- Toast Notifications In Blazor Web Assembly App Using C# – Prasad Rane writes how to create this frequebntly requested feature of apps everywhere.
Related programming tutorials
- How to filter entries by linked references in GraphQL – GraphQL is highly popular and gaining popularity in the .NET world. Salma Alam-Naylor shows how to do this necessary task: filtering linked references.
- What Ruins A Developer’s Day – We all know that interruptions and meetings can ruin one’s day, but Janet Smith has laid out exactly why that is.
- Data-Driven Testing – Find out what exactly data-driven testing is and how to do it. Post by Louise Gibbs.
- Testing Practices for Cloud Engineering – Sophia Parafina lays out testing patterns for the cloud.
- With Agile Approaches, No Need to “Meet” or “Enforce” Deadlines – Time to show this to the boss! Johanna Rothman details how Agile can enable software getting done without dreaded deadlines.
- The Most Common Project Blockers And Ways To Eliminate Them – Thank you Sam Milbrath for sharing this post. It’s not something developers think about often, until they run into a serious blocker that causes project-wide problems.
- Tackling Legacy Code – We all gotta do it. So check out this guide Peter Morlion to make legacy life easier.
- What Developers Need to Know About Progressive Web Apps – Do you know what you need to know about PWAs? Florian Rappl explains.
- The Five Steps of API-First Design – A super quick 5 step post by Juan Pablo Claude on design principles.
Tweet tips
This advice should work for many people. For those who don’t want to completely rewrite existing projects, building the same kind of software as the original project may work.
I’ve found that teaching myself new programming languages is 10x easier and faster when I do so in the context of rewriting an existing project (vs. starting a new one). There are fewer unknowns. There is a clear roadmap. It’s mostly googling for “do <thing I know> in <new lang>”
— Jared Palmer (@jaredpalmer) June 1, 2021
Since this month features F#, perhaps, dear readers, you should try it out too. A quick twitter search revealed several tweets similar to this where folks said that they really enjoy F# and find it useful, fun, and easy.
It’s been so fun writing fsharp for a prototype. Technology isn’t just tools, it’s the people who use them more than anything. I got help from tons of people and was able to largely put together a full stack prototype in a couple long nights. If ur on the fence, just try #fsharp.
— Gina Marie Maini (@wiredsis) June 24, 2021
Interesting and cool stuff
- 3 Enemies of Developer Velocity – This concept isn’t even something we often think about, so it’s worth reading this article by Nočnica Fee to see if your organization is inadvertently holding back your team.
- 5 Types Of Boundaries To Start Setting With Your Team – Boundaries are one the most important aspects of healthy relationships, whether they be with colleagues, spouses, friends, or anyone. So get healthy with Genevieve Michaels as she goes into detail about proper boundaries in your team.
- How to Spread Technical Practices Like TDD in an Organization – We all have to promote good technical practices, but are often at a loss as to how. That’s where this post by Emily Bache comes into play.
- What App Designers Can Do to Reduce User Churn – Losing users? Suzanne Sacacca has some solutions for you to help retain their interest.
- An incomplete list of skills senior engineers need, beyond coding – There are skills that have little to do with daily coding tasks and Camille Fournier demonstrates what they are in this nice post.
- .NET Open Source: What Happens When the Free Lunch Ends? – Aaron Stannard exposes some of the issues regarding publishing and maintaining a popular OSS project in the .NET ecosystem.
- 3 Terrible Programming Features From the Past – Matthew MacDonald made a really fun post and a blast from the past.
Onto some fun tweets…
Has this happened to you? Perhaps not with a desk but other items? I think more of us can relate to this than want to admit.
So I bought a standing desk, and this whole standing thing doesn’t work for me. I’m now looking for a very very tall chair so as to justify having bought a standing desk.
— Hadi Hariri (@hhariri) June 9, 2021
This is exactly how it feels, Richard.
— Richard Campbell (@richcampbell) June 11, 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 – tips, tutorials, and resources for .NET developers
Blog posts
- Import settings from Visual Studio and VS Code to Rider
- Must-have JetBrains Rider Plugins For ASP.NET Core Developers
- What’s New for C# Nullable Reference Types in ReSharper and Rider 2021.2 EAP?
- Improved Allocation Details and Powerful Type Filters in dotMemory 2021.2 EAP
- OSS Power-Ups: Verify [Live Webinar on July 14th]
Webinars
- Absolute Beginner’s Guide to Docker – Webinar Recording
- OSS Power-Ups: SpecFlow – Webinar Recording
- OSS Power-Ups: Silk.NET – Webinar Recording
- OSS Power-Ups: Snoop – Webinar Recording
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 rachel.appel@jetbrains.com, or drop me a message via Twitter.