.NET Tools
Essential productivity kit for .NET and game developers
.NET Annotated Monthly | September 2021
Did you know? There is a reason for why the language C was named C, and it’s all about our A, B, C’s. It’s because there was a language called B and C comes after B in the alphabet! It sounds like a joke, but it’s not. Really! In addition, C did borrow a few concepts from B, so this seemed like a natural progression in naming. But B wasn’t called B because it came after A. B was an implementation of BCPL. In case you were wondering, JetBrains has no plans to create an IDE for B programming, but B-Line would be the perfect name for such a tool.
.NET news
- Announcing .NET 6 Preview 7
- Announcing .NET MAUI Preview 7
- .NET Core 2.1 container images will be deleted from Docker Hub
- Performance Improvements in .NET 6
- New .NET 6 APIs driven by the developer community
Our Favorites
This month our favorites are about XAML and desktop development.
Do you get errors when trying to create dialogs that use async operations? Then you’re in luck, as this post may help. Rick Strahl details the challenges regarding using the WebView and Modal Dialogs in WPF Async Code and how he has fixed those issues.
A much needed UI technique is to allow a user to hide and show a paragraph or element on the screen. This is especially useful for mobile apps, where screen space is much more limited than on the desktop. So check out this excellent post by Charlin Agramonte on how to add an Expandable Paragraph Control in Xamarin Forms to your app.
If there is ever a UI that is both easy to use and nice to look at, it’s a fashion app! There is much to be learned from other industries, and fashion is certainly one that we developers can learn from, but tend to ignore. Turn your user interface into a real user experience with this post by Leomaris Reyes showing how to Replicating Fashion UI in Xamarin Forms.
Tutorials and articles
.NET tutorials
- File Upload in Blazor Server ASP.NET Core 5.0 – Golda at Code Murals demonstrates how to create a Blazor Server page to allow users to upload a file.
- Domain-Driven Refactoring: Encapsulating Data – Jimmy Bogard continues to teach how to refactor using DDD concepts.
- 5 Methods to Redirect a Request in ASP.NET Core – Detailed Guide – Sanjay Modi writes this detailed guide on HTTP redirects.
- End-to-End Tests With ASP.NET Core, XUnit, and Playwright – Learn all about testing, including using the Playwright testing framework, and how to test end to end in your ASP.NET apps. Post by Khalid Abuhakmeh.
- What I Like About C# 9 – Joseph Guadagno outlines all the things he likes about C# 9. Do you like the same features? Different ones? Let us know. Comment on the blog post.
- Improving application security in Blazor using HTTP headers – Part 2 – Security. It’s important, but no application, OS, or system can be 100% secure. However, we can get to “as secure as possible”. Let Damien Bod show you how.
- What’s New in .NET 6 for Blazor? – John Hilton runs down a few of the new items coming to us in the near future.
- Introduction to Async Programming in C# – We’re all doing async nowadays so check out this post by Facundo Giuliani on how to do it in C#. This works with any framework – web or desktop/mobile.
- Stripping Times from Dates in C# – Working with dates can be a pain. Steve Fenton has a few tips to help us sort them out.
- Add, Remove, Extract, and Replace Images in PDF using C# – Editing PDF files in apps is a common “to do” for developers. This post by Praveen Kumar focuses on working specifically with images in PDFs, where most blog posts only focus on generating them from another text source. This is most helpful.
- Is Dependency Injection Into a Custom Exception a Good Idea? – Is it? Have you ever considered this question, or tried to perform this action yourself? Before you do – Adam Storr asks and answers this important dev technique question for us.
- Introduction To .NET Multi-Platform App UI (MAUI) – An Overview – Sundaram Subramanian demonstrates a nice intro on .NET MAUI for multiple platforms.
- Learn to build applications with F# – As it says, Jon Galloway explores a bit of F# programming, with some embedded videos on building F# apps.
- NuGet Package Explorer is now a Web App powered by Uno Platform – Sasha Krsmanovic writes about this new package explorer from Uno.
Related programming tutorials
- The Journey to Accessible Apps: Making Visual Text Accessible – Rachel Kang reviews the important points you need to cover to make your text visually accessible.
- How To Set Project Timelines and Deadlines You Can Meet – Hitting a deadline is difficult for many, since surprises pop up and expectations change. How do you manage? Read this post by Suzanne Scacca and find out.
- Agile Approaches Offer Strategic Advantage; Agile Tools are Tactics, Part 3 (Part 1and Part 2) – Johanna Rothman wrote a series on Agile approaches, their benefits, tools, and tactics. Lots of great stuff in here.
- The Three Pillars of WebAssembly – Connor Hicks throws down the gauntlet about WebAssembly.
- Comparing Techniques for Communicating Between Services – Ever wonder what is the best way to talk to other services? Steven Smith tells us.
- Native JavaScript Routing? – Yep, it’s a thing. We often need to rewrite URLs. Chris Coyier demonstrates the technique.
- SQL Server identity column – The vast majority of SQL tables have an identity column, so get to know how to use them better with this post by Greg Larsen.
Tweet tips
Here’s an excellent tweet thread by our own Maarten Balliauw on source generators.
Time for another thread, this time on source generators. #dotnet
— Maarten Balliauw 🌴 (@maartenballiauw) August 10, 2021
Source generators… generate code. Sometimes with errors.@resharper‘s Solution Wide Error Analysis (SWEA) now includes errors from generated sources (so you can see them before building)
1/🧵 pic.twitter.com/W6G5WZhuWX
Interesting and cool stuff
- How To Address And Resolve Team Conflict When You’re All Remote – Our industry at large has been grappling with so many people working remotely. Kat Boogaard details what to do when you’re remote and a conflict occurs.
- Shash Code – Lisa Shashkova from the JetBrains PyCharm team has started this new YouTube channel in which she presents on various programming topics. Check it out, this is good stuff!
This is an interesting discussion, proposed by Derek Comartin. How important is domain knowledge vs. technical knowledge? Why don’t more companies require a certain level of domain knowledge? What do you think? Drop your reply in the comments.
I’m really curious about the software industry’s love for making language/framework/tools the top priority of knowledge and experience. Why isn’t the type/domain of software you develop the most important thing? Ex, hiring C# developer vs. hiring a developer for insurance.
— Derek Comartin (@codeopinion) August 6, 2021
And finally, the latest from JetBrains
Here’s a chance to catch up on JetBrains news that you might have missed:
Roadmaps!
Webinars
- Webinar: Building an Online Ticket Store with Blazor WebAssembly
- Webinar: ChatOps the Easy Way with Abbot
- OSS Power-Ups: Statiq – Webinar Recording
- Supercharge Your ASP.NET Core Applications – Webinar Recording
Blog posts & news
- ReSharper & Rider 2021.2 Release Party – YouTube
- The .NET Ecosystem in 2021: Over half of .NET devs use C# 8, 46% do not use diagnostic tools, and other facts
- dotMemory Standalone 2021.3 – 32-bit Version Deprecation
- ReSharper 2021.2.1 and Rider 2021.2.1 Bug Fixes Are Out!
- Profiling Native Apps in dotTrace
- Sunsetting dupFinder Command Line Tool
- Initial Support for Visual Studio 2022 Preview Is Available!
- Improved Support for Source Generators in ReSharper 2021.2
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 rachel.appel@jetbrains.com, or drop me a message via Twitter.