On .NET (Audio) - Channel 9: Recent Episodes

Microsoft

The .NET ecosystem is continuously growing and empowering developers to create amazing applications. Join us as we take a look at the APIs, the tooling, and some of the interesting projects being created in the .NET ecosystem. You can follow your hosts, Rich Lander at @runfaster2000 and Cecil Phillip at @cecilphillip on Twitter. Use the hashtag #OnDotNET to let us know what you think about the show and even suggest topics you would like to see.

View Details

In this episode, Jeremy joins Christos to talk about some of the features and improvements made to the Cosmos DB provider in EF Core 6.

  • [00:00] - Introduction
  • [01:29] - EF 6 overview
  • [06:38] - EF Cosmos Demo
  • [10:53] - Connecting to the Storage Emulator

Useful Links

  • EF Core Azure Cosmos DB Provider
  • What's New in EF Core 6.0
  • EF Core on GitHub

View Details

OData (Open Data Protocol) can be considered an extension to REST that that defines an additional set of conventions for building and consuming Web APIs.

In this episode, Hassan Habib joins Jeremy to show us how we can easily add support for OData batch to our Web APIs

  • [00:00] - Introduction
  • [01:28] - What is OData?
  • [03:20] - What is OData Batching?
  • [09:07] - Setting up OData in an ASP.NET Core project
  • [20:54] - Adding batching support in OData

Useful Links

  • All in One with OData $Batch
  • https://www.odata.org/
  • ASP.NET Core OData on GitHub
  • Supercharging your Web APIs with OData and ASP.NET Core

View Details

Mike Rousos is back again! This time Mike shows us how to inspect and diagnose large Object Heap churn in .NET

  • [00:00] - Introduction
  • [01:36] - What tools can we use to look into performance?
  • [03:35] - Diagnostics Demo in Azure App Service
  • [08:50] - Collecting diagnostic traces using dotnet trace
  • [12:56] - Reviewing stats in Perfview
  • [19:56] - Inspecting GC Heap allocations
  • [22:16] - Reducing allocations ArrayPool
  • dotnet-trace performance analysis utility
  • What is Application Insights?
  • Analyze CPU usage without debugging in the Performance Profiler
  • Kudu service overview

View Details

Stripe elements provide prebuilt UI components that enable developers to create beautiful checkout flows for your applications. In this episode, CJ Avilla does on to show us how to integrate Stripe elements into an ASP.NET Core project.

  • [00:00] - Introduction
  • [01:34] - Exploring a custom form
  • [04:12] - Payment collection workflow
  • [06:37] - Adding stripe checkout to your app
  • [12:27] - Customizing the payment types
  • [15:12] - Can you apply your own styles?
  • [16:15] - How are taxes handled?

Accepting online payments (Checkout)

https://github.com/cecilphillip/ContosoCraftsStriped

https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout⟨=dotnet

Building custom payment forms with Stripe (Elements)

https://github.com/cjavilla-stripe/ContosoCraftsStripeElements

https://stripe.dev/elements-examples/

https://stripe.com/docs/payments/payment-element

https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements⟨=dotnet

General Stripe links

Register - https://dashboard.stripe.com/register

Support - https://stripe.com/go/developer-chat

Social - https://twitter.com/stripedev

View Details

Investigating high cpu usage in your applications can be challenging. Our friend Mike Rousos returns to show us how diagnose our applications using a few tools.

  • [00:00] - Introduction
  • [03:30] - Investigating CPU usage in a Web App
  • [05:33] - Reviewing the built-in monitoring in Azure
  • [07:24] - Using the App Service Kudu tools
  • [10:45] - Installing and using the dotnet-trace
  • [15:14] - Retrieving the dump file through Kudu
  • [16:45] - Analyzing the dump file
  • [22:40] - Recap

Useful Links

  • dotnet-trace performance analysis utility
  • Kudu service overview
  • What is Application Insights?
  • Analyze CPU usage without debugging in the Performance Profiler

View Details

In this episode, Software Engineer, Christopher Scott, join Jeremy to talk about the new Table Storage SDK for .NET.

  • [00:00] - Intro
  • [01:45] - When do I use Table Storage?
  • [02:32] - What are the highlights of the new SDK?
  • [04:46] - Exploring the GitHub samples
  • [08:48] - Migrating from other Table Storage SDKs

Useful Links

  • Azure for .NET Developers
  • Azure Storage docs
  • Cosmos DB Docs

View Details

Stripe is a great service that makes it easy for developers to accept payments and send payouts globally.

In this episode we’re joined by Stripe Developer Advocate, CJ Avilla, who shows us how to enable Stripe in a Blazor application.

  • [00:00] - Introduction
  • [00:54] - What is Stripe?
  • [02:44] - Setting up Stripe.NET
  • [14:35] - Understanding price data
  • [16:30] - Using stripe.js in the frontend
  • [20:21] - Learning about checkout sessions

Accepting online payments (Checkout)

  • https://github.com/cecilphillip/ContosoCraftsStriped
  • https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout⟨=dotnet

General Stripe links

  • Register - https://dashboard.stripe.com/register
  • Support - https://stripe.com/go/developer-chat
  • Social - https://twitter.com/stripedev

View Details

In this episode we’re joined by Maryam Ariyan, one of the Software Engineers that works on the Logging extensions for .NET. Maryam talks to us about some of the new enchantments that her team have been working on to improve logging for .NET applications.

  • [01:03] - What’s new for console logging?
  • [04:06] - SimpleConsole demo
  • [07:54] - Changing the console log format
  • [17:06] - Customizing your own log format

Useful Links

  • Logging in .NET
  • Console log formatting

View Details

In this episode, Software Engineer, Mike Rousos, joins Rich to show can we can use tools like dotnet-dump and Visual Studio to diagnose memory leaks in our .NET applications, even if they're running on a different OS.

  • [00:55] - What are memory leaks?
  • [04:45] - Inspecting memory leaks cross platform
  • [18:30] - Using dotnet-dump
  • [21:35] - Inspecting dumps in Visual Studio
  • [27:03] - Inspecting dumps with dotnet-dump

Useful Links

  • Thread pool exhaustion
  • Investigate performance counters
  • Dump collection and analysis utility
  • Symbol downloader

View Details

In this short video, David and Kendra diving into the deconstruction of non-tuple types.

Useful Links

  • Deconstructing tuples and other types
  • Creating record types
  • Tuple types
  • .NET Videos

View Details

In this episode, David Pine joins Jeremy to show off this chat bot enabled demo that's powered by Blazor WASM and SignalR

  • [00:00] - Start
  • [01:09] - Why is SignalR and Blazor interesting together?
  • [05:00] - Blazing Chatter Demo
  • [11:54] - Blazing Chatter Demo Client
  • [24:10] - Check out the demo app

Useful Links

  • Demo Code
  • Introduction to ASP.NET Core Blazor
  • Getting Started with SignalR

View Details

Properties in C# is such a fundamental feature. We’ll learn all about  them in this short video from James and Jayme

Useful Links

  • Properties (C# Programming Guide)
  • Properties (C# Concepts)
  • First steps with C#
  • .NET Videos

View Details

In just a few minutes, we’ll learn about the "in" Parameter Modifier with Brandon  and Jayme

Useful Links

  • The ‘in’-modifier and the readonly structs in C#
  • in parameter modifier (C# Reference)
  • First steps with C#
  • .NET Videos

View Details

In this short video, you'll learn about Immutable collections from Leslie and Brandon.

Useful Links

  • Immutable collections ready for prime time
  • Immutable Collections in MSDN Magazine
  • First steps with C#
  • .NET Videos

Get your questions answered on the Microsoft Q&A for .NET - http://aka.ms/dotnet-qa​

Learn .NET with free self-guided learning from Microsoft Learn: http://aka.ms/learndotnet #DotNet #Csharp

View Details

In this short video, Brandon  and Jasmine walk us through the use of ValueTask in C#.

Useful Links

  • Understanding the Whys, Whats, and Whens of ValueTask
  • Understanding how to use Task and ValueTask
  • ValueTask Reference

View Details

In this short video, with learn how Exhaustive case guards work with pattern matching in C# from Cecil and David.

Useful Links

  • Pattern Matching
  • A Tour of C#
  • What's new in C# 9
  • First steps with C#

View Details

In this quick video, Cecil and David walk us through positional pattern matching works.

Pattern Matching https://docs.microsoft.com/dotnet/csharp/pattern-matching?WT.mc_id=dotnet-00000-dapine

A Tour of C# https://docs.microsoft.com/dotnet/csharp/tour-of-csharp/?WT.mc_id=ondotnet-c9-dapine

What's new in C# 9 https://docs.microsoft.com/dotnet/csharp/whats-new/csharp-9?WT.mc_id=dotnet-00000-dapine

First steps with C#
https://docs.microsoft.com/learn/paths/csharp-first-steps/?WT.mc_id=dotnet-00000-dapine

View Details

Learn about Null Coalescing Assignment in short video from James and Maira.

Useful Links

  • ?? and ??= operators (C# reference)
  • Nullable Reference types
  • Understanding Nullable Reference Types
  • First steps with C#

View Details

In this episode, Software Engineer, Mike Rousos, joins Rich to go through some ways to diagnose thread pool exhaustion in your .NET apps. Mike discusses and demos a collection of .NET CLI tools and techniques that can be used on Windows or Linux environments.

  • [00:00] - Intro
  • [01:23] - How does thread pool exhaustion occur?
  • [03:18] - Inspecting diagnostics using dotnet-counters
  • [09:07] - Collecting and analyzing dumps with dotnet-dump
  • [19:42] - Switching to the async API

Useful Links

  • Thread pool exhaustion
  • Investigate performance counters
  • Dump collection and analysis utility
  • Symbol downloader

View Details

.NET for Apache Spark empowers .NET developers to participate in the world of big data analytics. In this episode, Jeremy chats with Michael Rys to discuss some of the new features and capabilities available in this release

  • [00:00] - Intro
  • [00:55] - What is .NET for Apache Spark?
  • [05:04] - How can you use it?
  • [17:10] - What’s the performance impact?
  • [25:04] - Other v1.1.1 highlights
  • [27:00] - Working on .NET for Apache Spark v2.0

Useful Links

  • .NET for Apache Spark™
  • .NET for Apache Spark™ tutorial
  • .NET for Apache Spark™ documentation

View Details

Learn about the “using declarations” feature in C# from Matt  and Maira.

Useful Links:

  • What’s new in C# 8.0
  • First steps with C#

View Details

The null coalescing operator in C# is a really handy feature. Learn how it works in this short video from James and Maira

Useful Links

  • ?? and ??= operators (C# reference)
  • First steps with C#

View Details

Azure Static Web apps makes it easier for developers to build and deploy their static apps to the cloud.

In this episode, Anthony Chu joins the show to talk to us about some of the benefits of using Azure Static Web apps and also show us what the local dev experience is like

  • [00:00] - Intro
  • [00:49] - What are Static Web Apps
  • [03:03] - Whats the difference between a SPA and Static Web App?
  • [04:26] - How would you host your static web app?
  • [10:10] - What is the local development experience like?
  • [12:02] - Reviewing an Demo
  • [17:36] - Deploying using the extension

Useful Links

  • Azure Static Web Apps docs
  • Set up local development for Azure Static Web Apps
  • Running an Azure Static Web App with an API

View Details

Azure AD B2C enables your applications to authenticate to social accounts and enterprise accounts using open standard protocols.

In this episode, Christos get together with our friend JP to show us how to integrate Azure AD B2C into our .NET applications.

  • [00:00] - Intro
  • [01:11] - What is Azure AD B2C?
  • [02:30] - What does it take to integrate with B2C?
  • [05:04] - Setting up an application registration
  • [08:42] - Creating the user flow
  • [14:08] - Setting up a new web app using the dotnet new templates

Azure AD B2C Docs
https://docs.microsoft.com/azure/active-directory-b2c/?WT.mc_id=dotnet-00000-cephilli

Get your questions answered on the Microsoft Q&A for .NET - http://aka.ms/dotnet-qa​

Learn .NET with free self-guided learning from Microsoft Learn: http://aka.ms/learndotnet

View Details

Learn about the benefits of Nullable Reference types from Leslie https://twitter.com/lyrichardson01 and Matt https://twitter.com/CodeMillMatt in this short video.

Useful Links

  • Nullable Reference types
  • Understanding Nullable Reference Types
  • First steps with C#