The .NET Stacks #7: Azure SDKs, testing, community roundup, more!
A rundown on new Azure SDKs, test automation, community roundup, and more!
This is an archive of my weekly (free!) newsletter, The .NET Stacks. Consider subscribing today to get this content right away! Subscribers don’t have to wait a week to receive the content.
On tap this week:
- A look at the Azure SDKs
- What’s your test automation maturity level?
- The evolution (and optics) of how far .NET has come
- Community roundup
A look at the Azure SDKs
If you work with Azure SDKs, have you looked into the improvements lately in the last 6-9 months? (You can catch up quickly with a quick video Microsoft pushed out last month.)
Here’s the gist: before the new SDKs were released, each Azure team created their own SDKs in their own repositories, with their own CI process, with varying levels of OS support, language support, and so on. The new SDKs promise new common guidelines, centralized systems and repositories, and consistent security and support. These SDKs deliver language support for .NET, Java, Python, and JavaScript/TypeScript, with a promise of more languages to come. Most importantly, packages have been released to all the common package managers, meeting developers where they are—instead of asking them to conform to the whims of each API.
Microsoft has a landing page of sorts where you can review releases, feature updates, and API information.
What’s your test automation maturity level?
From the Applitools blog, Angie Jones published a nice piece on how to measure your test automation maturity. While this is tech-agnostic, it’s worth a mention in this space as I found it valuable for me to think more critically about my own testing approach.
I found it interesting that, in her research, she found that 60% of the teams no longer have a distinction between development and QA engineers. Score one for end-to-end ownership and the DevOps movement.
As you read the article, you can give your team its own testing maturity score based on:
- Your ability to automate unit tests, web tests, API tests, security tests, performance tests, and accessibility tests
- If you test across browsers, devices, and screen sizes
- If tests are executed in your CI/CD pipeline
- If you use feature flags (shameless plug for my series on .NET feature toggles)
What was your score?
The evolution (and optics) of how far .NET has come
If you spend any time looking at #dotnet Twitter, this week was an interesting one. Billy Collins (@BlazorGuy) tweeted, “What’s up with non-.NET developers thinking C# is a Windows only, corporate bloatware language? It’s not 2005 anymore!” This caused another discussion spearheaded by ASP.NET Core architect David Fowler. Microsoft is definitely having to strike a fine balance of attracting modern development, yet supporting enterprise (legacy) customers.
The big challenge Microsoft still faces is trying to get developers who haven’t worked on .NET in awhile—and have perhaps ditched it for faster, cross-platform solutions—that .NET has a cutting-edge platform again, and has been for the last 5 years. Their persistence to keep the .NET/ASP.NET name on every iteration of the platform has, I believe, done Microsoft a disservice. Let’s say I ditched .NET in the old Framework days and only have a passing interest in .NET. If I hear things like .NET Core, .NET Standard, and .NET 5, do I believe things have changed without researching more?
As Fowler tweeted, “This is why timing and marketing is super important in product development. Not only is it hard to erase search history for something that’s been around for 20 years, but you have to deal with the impressions people has years ago about a “new product” with the same name. At the same time, you want to leverage the existing ecosystem so you’re not starting from scratch.”
With all that said, .NET 5 promises a unified framework and a stable, predictable release schedule—with a new major version every November. In many ways, this is a realization of a vision Microsoft developed many years ago with a unified, fast, cross-platform framework. And people can run apps without a separate deploy of .NET Core! These are exciting times. Hopefully, the community perception continues to improve as a result.
Community roundup
From Microsoft
- Phillip Carter fills us in on an F# and F# 5 June update.
- Charlotte Yarkoni discusses new investments in Microsoft Learn.
- James Montemagno offers a quick tip for easy back navigation for Xamarin.Forms.
- Shayne Boyer works through microservices with .NET Core, Project Tye, and GitHub Actions.
- Azure Data Lake Storage static websites are now in preview.
- Azure Functions now has an extension for Dapr.
- An announcement for Pylance, Python support in Visual Studio Code.
Blog posts
- Thomas Levesque exposes a custom type as a JSON string in ASP.NET Core.
- Mark Heath lists and downloads the contents of a GitHub repo in C#.
- Anthony Giretti writes a light API with ASP.NET Core.
- Ian Griffiths talks about the C# 8 NotNull attribute.
- Joydip Kanjilal works with GraphQL APIs in ASP.NET Core 3.1.
- Shahed Chowdhuri wraps up his ASP.NET Core A-Z series with zero-downtime web apps.
- Changhui Xu load balances an ASP.NET Core web app with Nginx and Docker.
- Siddharth Patel diagnoses targeting deprecated APIs and cross-platform issues.
- Matthew Jones continues his series about building Minesweeper in Blazor WebAssembly.
- Brandon Minnick talks about updating to Azure Functions v3 from Visual Studio.
- Microsoft offers three ways to customize your Windows terminal.
- AWS has a new porting assistant for .NET, and also discusses environment variables with .NET Core and Elastic Beanstalk.
- Matthew Robbins simplifies grids in Xamarin.Forms.
- Joseph Guadagno debugs a pesky “no route matches the supplied values” error.
- Khalid Abuhakmeh discusses Azure Functions on macOS with JetBrains Rider.
- Vladimir Pecanac talks string concatenation in C#.
- Cezary Piatek discusses the magical methods in C#.
- Matthias Koch talks about cross-platform setup and bootstrapping in .NET.
- Muhammad Rehan Saeed discusses the easiest way to version NuGet packages.
- David Grace uses SignalR in ASP.NET Core and React to send messages.
- Simon Bisson talks about future-proofing .NET app dev with Uno.
Podcasts/videos
- Visual Studio Toolbox continues going in-depth on EF Core.
- The DotNet Docs Show talks about securing .NET apps with Heather Downing.
- For community standups: Xamarin discusses the 4.7 release, .NET has a Q&A, and ASP.NET has a bunch of random stuff.
- ON.NET talks about Worker templates and deploys microservices to Azure Container Instances.
- Leslie Richardson and friends start a series on finding code in Visual Studio.
- At the Azure Podcast, a Microsoft Q&A.
- The Xamarin Show goes beyond MVU basics.
- .NET Rocks discusses nDepend with Patrick Smacchia.
New subscribers and feedback
Has this email been forwarded to you? Welcome! I’d love for you to subscribe and join the community. I promise to guard your email address with my life.
I would love to hear any feedback you have for The .NET Stacks! My goal is to make this the one-stop shop for weekly updates on developing in the .NET ecosystem, so I look forward to any feedback you can provide. You can directly reply to this email, or talk to me on Twitter as well. See you next week!