We’ve made it to 40. Does this mean we’re over the hill?
- One big thing: Ignite recap
- The little things: a new upgrade assistant, Okta buys Auth0, hash codes
- Last week in the .NET world
Microsoft held Ignite this week. If you’re looking for splashy developer content, don’t hold your breath—that’s more suited for Build. Still, it’s an excellent opportunity to see what Microsoft is prioritizing. While most of this section won’t be pure .NET content, it’s still valuable (especially if you deploy to Azure). You can read a rundown of key announcements in the Book of News, and you can also hit up the YouTube playlist.
A big part of the VR-friendly keynote involved Satya Nadella sharing the virtual stage with Microsoft Mesh, the new mixed-reality platform. From the Book of News, it “powers collaborative experiences with a feeling of presence–meaning users feel like they are physically present with one another even when they are not.” Folks can interact with 3D objects and other people through Mesh-enabled apps across a wide variety of devices. If this is where you say, Dave, this a .NET newsletter - noted. However, as a technology that received attention at the Ignite keynote, it bears mention. (Especially with its applications in today’s pandemic world.)
If you’re into Azure Cognitive Services, Microsoft rolled out semantic capabilities. Also, their Form Recognizer service now has support for ID documents and invoice extraction. There are new Enterprise tiers for Azure Cache for Redis, and Azure Cosmos DB now has continuous backup and point-in-time support.
Azure Communication Services, announced last fall, is hitting general availability in a few weeks. If you aren’t familiar with it, Azure Communication Services allows developers to integrate voice, video, and text communication with their apps. (It certainly makes the relationship with Twilio a little more interesting.) The power of having these capabilities in Azure gives it the ability to integrate with other Azure products and services. For example, Azure Bot Service has a new telephony channel built on Azure Communication Services. If you’re writing a bot, you can leverage the AI from Cognitive Services and integrate it with your phone and messaging capabilities. These capabilities provide a distinct advantage to other services that focus on one need.
This week, Microsoft announced the .NET Upgrade Assistant, a global tool that promises to help you upgrade your .NET Framework-based applications to .NET 5. It’s a global CLI tool that offers a guided experience for “incrementally updating your applications.” The assistant determines which projects you need to upgrade and recommends the order to be upgraded. Unlike tools like try-convert, you can see recommendations and choose how to upgrade your code.
The .NET Upgrade Assistant is not a tool meant to upgrade with a click of a button—you’ll likely need to do some manual work. It does promise to make your upgrade experience a lot easier. You can check out the GitHub repo for details as well. Side note: I’ll be releasing a detailed post on the .NET Upgrade Assistant by month’s end.
Last week, Okta bought Auth0 for $6.5 billion. (I think I need to start an API company.)
It makes sense: at the risk of oversimplifying, Okta provides IAM to companies that use it for SSO. Auth0 works on the app level, allowing developers API access to SSO. Okta has a reputation for being very enterprise-y, and Auth0 is known as a company with a startup feel that provides a developer-first experience. With this news, IdentityServer v4 now a paid product, and the Azure AD offerings, you have many choices when it comes to integrating auth in your .NET apps.
Did you know about
HashCode.Combine? If you’re using custom
GetHashCode implementations and C# 9 records don’t suit your needs it makes overriding hash codes easier.
Aaron Stannard@aarononthewebI had no idea this feature existed in .NET - HashCode.Combine, for custom GetHashCode implementations. No more fancy bitwise operations needed to do this anymore. docs.microsoft.com/en-us/dotnet/a…17:55 PM - 06 Mar 2021
- Luis Quintanilla serves ML.NET models as HTTP APIs with minimal configuration.
- Isaac Abraham creates Azure solutions with the new Azure SDKs, F#, and Farmer.
- Microsoft announces the .NET Upgrade Assistant, now in preview.
- Phillip Carter writes about F# and F# tools updates for Visual Studio 16.9.
- Maria Naggaga announces .NET Interactive with SQL.
- .NET Core 2.1 will reach End of Support on August 21.
- Visual Studio 2019 v16.9 and v16.10 Preview are now available, and Peter Groenewegen writes about IntelliCode suggestions in completion lists in the new version.
- Visual Studio 2019 for Mac version 8.9 is now available.
- Jiachen Jiang writes about the state of the NuGet ecosystem, then Drew Gillies explains how to scan NuGet packages for security vulnerabilities.
- Kayla Cinnamon releases Windows Terminal Preview 1.7.
- The Ignite 2021 playlist is here.
- Scott Addie writes about what’s new in the ASP.NET Core docs.
- The .NET Docs Show talks about home automation.
- Microsoft publishes the Book of News for the Ignite conference.
- Jon Galloway writes about getting started with writing HTTP APIs in .NET.
- Blazorise 0.9.3 is out.
- Claudio Bernasconi rolls out a new video series on getting started with Blazor.
- Cecil Phillip rolls out a beginner’s guide to Web APIs.
- For community standups: Xamarin talks to Brandon Minnick about GitTrends, Machine Learning talks tooling, and ASP.NET talks about Web Live Preview.
- Jon Hilton gives Razor Pages some love.
- Andrew Lock configures HTTPS using a custom TLS cert with Netlify and Cloudflare.
- Marinko Spasojevic uses HttpClientFactory in ASP.NET Core apps, and also cancels HTTP requests in ASP.NET Core with CancellationToken.
- Grant Hair talks about how he tests his .NET APIs.
- Michał Białecki refactors with reflection.
- Maoni Stephens writes about the internals of the pinned object heap (POH).
- Nick Randolph writes about what’s in store for WinUI, Project Reunion, and MAUI.
- Sagar Shetty writes about new dynamic instrumentation profiling for .NET.
- The Microsoft Research Blog writes about how Bing uses semantic search with Azure Cognitive Services.
- Luis Cabrera-Cordon introduces semantic search for Azure Cognitive Services.
- Graham Else automates appointment reminders in C# using AWS Lambda.
- Abhishek Gupta autoscales Redis apps on Kubernetes.
- Daniel Krzyczkowski controls access to his API with Azure API Management.
- Paul Michaels defers messages with the Azure Service Bus.
- Damien Bowden uses Azure AD group authorization in ASP.NET Core for Azure Blob Storage.
- Ryan Palmer continues writing about SAFE authentication with Azure AD.
- Jason Roberts works with static local functions in C#.
- Konrad Jokosa writes about the 8 most missing features in C#.
- Jesse Liberty updates his C# coding standards.
- Kuba Ciechowski uses collections with the MemberData attribute in F#.
- Brian Douglas writes about 4 things you can do with GitHub Actions.
- Khalid Abuhakmeh writes raw SQL queries with EF Core 5, and also compares streamed results and buffered results with EF Core 5.
- Niels Swimberghe writes about better Twilio authentication with Twilio API keys.
- Giorgi Dalakishvili updates LINQPad.QueryPlanVisualizer for LINQPad6 and Entity Framework Core.
- Anne Gao writes about the Intelligent Visual Studio Search Service.
- James Newton-King writes about IntelliSense support for appsettings.json.
- Peter McKee writes about how to use your own Docker registry.
- Nitya Narasimhan introduces a visual guide to Dapr.
- Jon Gallant uses the Azure REST APIs with Insomnia.
- ThoughtWorks writes about the required mindset shift for Kubernetes adoption.
- Jimmy Bogard crosses the generics divide.
- The .NET Rocks podcast talks with Steve Gordon about Elasticsearch for .NET.
- The Merge Conflict podcast looks back on 3 years of FuGet.
- Software Engineering Radio talks about starting your own software company.
- JetBrains hosted a webinar with Dennis Doomen about Fluent Assertions.
- On .NET dives deep into Microsoft Orleans and also talks to Scott Addie about secretless .NET apps.