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 our host, Rich Lander at @runfaster2000 on Twitter. Use th…
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 LinksAll in One with OData $Batchhttps://www.odata.org/ASP.NET Core OData on GitHubSupercharging your Web APIs with OData and ASP.NET Core
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 utilityWhat is Application Insights?Analyze CPU usage without debugging in the Performance ProfilerKudu service overview
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/ContosoCraftsStripedhttps://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout&lang=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&lang=dotnet General Stripe linksRegister - https://dashboard.stripe.com/register Support - https://stripe.com/go/developer-chat Social - https://twitter.com/stripedev
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] - RecapUseful Linksdotnet-trace performance analysis utilityKudu service overviewWhat is Application Insights?Analyze CPU usage without debugging in the Performance Profiler
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 SDKsUseful LinksAzure for .NET DevelopersAzure Storage docsCosmos DB Docs
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 sessionsAccepting online payments (Checkout)https://github.com/cecilphillip/ContosoCraftsStripedhttps://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout&lang=dotnet General Stripe linksRegister - https://dashboard.stripe.com/register Support - https://stripe.com/go/developer-chat Social - https://twitter.com/stripedev
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 LinksLogging in .NETConsole log formatting
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 LinksThread pool exhaustionInvestigate performance countersDump collection and analysis utilitySymbol downloader
In this short video, David and Kendra diving into the deconstruction of non-tuple types. Useful LinksDeconstructing tuples and other typesCreating record typesTuple types.NET Videos
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 appUseful LinksDemo CodeIntroduction to ASP.NET Core Blazor Getting Started with SignalR
Properties in C# is such a fundamental feature. We'll learn all about them in this short video from James and Jayme Useful LinksProperties (C# Programming Guide)Properties (C# Concepts)First steps with C#.NET Videos
In just a few minutes, we'll learn about the "in" Parameter Modifier with Brandon and Jayme Useful LinksThe ‘in'-modifier and the readonly structs in C#in parameter modifier (C# Reference)First steps with C#.NET Videos
In this short video, you'll learn about Immutable collections from Leslie and Brandon.Useful LinksImmutable collections ready for prime timeImmutable Collections in MSDN MagazineFirst 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
In this short video, Brandon and Jasmine walk us through the use of ValueTask in C#. Useful LinksUnderstanding the Whys, Whats, and Whens of ValueTaskUnderstanding how to use Task and ValueTaskValueTask Reference
In this short video, with learn how Exhaustive case guards work with pattern matching in C# from Cecil and David.Useful LinksPattern MatchingA Tour of C# What's new in C# 9 First steps with C#
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-dapineA Tour of C# https://docs.microsoft.com/dotnet/csharp/tour-of-csharp/?WT.mc_id=ondotnet-c9-dapineWhat's new in C# 9 https://docs.microsoft.com/dotnet/csharp/whats-new/csharp-9?WT.mc_id=dotnet-00000-dapineFirst steps with C#https://docs.microsoft.com/learn/paths/csharp-first-steps/?WT.mc_id=dotnet-00000-dapine
Learn about Null Coalescing Assignment in short video from James and Maira. Useful Links?? and ??= operators (C# reference)Nullable Reference typesUnderstanding Nullable Reference TypesFirst steps with C#
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 APIUseful LinksThread pool exhaustionInvestigate performance countersDump collection and analysis utilitySymbol downloader
.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
Learn about the “using declarations” feature in C# from Matt and Maira.Useful Links:What's new in C# 8.0First steps with C#
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#
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 LinksAzure Static Web Apps docsSet up local development for Azure Static Web AppsRunning an Azure Static Web App with an API
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 Docshttps://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-qaLearn .NET with free self-guided learning from Microsoft Learn: http://aka.ms/learndotnet
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 LinksNullable Reference typesUnderstanding Nullable Reference TypesFirst steps with C#
In this episode, Scott Addie joins Christos Matskas to discuss feature management in .NET apps. An ASP.NET Core 5.0 Blazor Server app is used to demonstrate the following concepts:Integrating the Feature Management library with Azure App ConfigurationAccessing Azure Key Vault secrets from Azure App ConfigurationIntegrating Azure App Configuration with the .NET Configuration APITesting locally in Visual Studio with the Azure Identity libraryToggling features on/off from the Azure portalLinks:Blazor sample app: scottaddie/OnDotNetConfiguration at azure-app-config (github.com)Get your questions answered on the Microsoft Q&A for .NET: https://aka.ms/dotnet-qaAzure SDKs: https://aka.ms/azsdk
In this video, James and Maira explain how string interpolation works in C#.Useful LinksString Interpolation (C# reference)String Interpolation in C#String Interpolation interactive tutorialTake your first steps with C#
As we continue to explore Microsoft Orleans, Reuben Bond returns to chat with Rich about how we can implement observability in our Orleans applications. He reviews concepts like OpenTelemetry, call filters, and much more.[00:00] - Intro[01:20] - Brief Orleans overview[02:15] - What is Observability?[05:28] - Observability in Orleans[10:34] - Call Filters[13:35] - Request Context [14:55] - Implementing call filters (DEMO)[21:50] - Building on existing tooling Useful LinksBuilding real applications with OrleansDeep Dive into Microsoft OrleansInspecting application metrics with dotnet-monitorOrleans at MicrosoftGitHub Issue: Added distributed tracing support
In this short video Leslie and Bill explain how to use Async Streams in C#.Useful LinksGenerate and consume async streams C# 8 asynchronous streamsAsync Streams with IAsyncEnumerable in .NET Core 3 Async Streams: language proposal
Using Microsoft Orleans you can build applications that scale from a single on-premises server to globally distributed and highly-available in the cloud.In this episode, Reuben Bond joins Cecil to explain to us how we can use the builtin clustering feature in Orleans and how it works in the background.[01:15] - Clustering overview[03:17] - Setting up clustering in code[04:24] - Reviewing membership table[05:14] - Heterogeneous clusters[07:06] - Monitoring silo health[13:28] - Diving deeper into health monitoring[17:00] - Resources on Orleans Clustering Useful LinksOrleans HomepageOrleans sample application with Kubernetes hostingBuilding real applications with OrleansHeterogenous SilosOrleans at MicrosoftOrleansContrib
In this quick video, Leslie and Cecil teach us how to use exception filters in our applications. Useful LinksException HandlingUse user-filtered exception handlers
In this short video, Jasmine and Leslie teach us about Ranges in C# Useful LinksRangesRanges and Indices.NET Videos
In this episode, Rich is joined by Merrie and Klaus who walk us through some of the new capabilities available for VB .NET developers building WinForms applications[01:10] - What’s the relationship between WinForms and VB?[02:24] - What was needed to get VB .NET support working?[04:52] - Benefits of moving your VB .NET apps to .NET 5 (Demo)[12:34] - Making user of Win10 device sensors (Demo) Useful LinksWhat's New in Visual Basic on .NET 5?Walkthrough: Calling Windows APIs (Visual Basic)Windows Forms documentationVisual Basic documentationWalkthrough: Calling Windows APIs (Visual Basic)
In this quick video, Cecil and David show us how property tuple matching works. Useful LinksPattern MatchingA Tour of C#What's new in C# 9
In this quick video, Cecil and David show us how property pattern matching works. Useful LinksPattern MatchingA Tour of C#What's new in C# 9
Azure Managed Identity provides an identity for applications to use when connecting to resources.In this episode, Varun joins Christos to show us how us how to use managed identity along with the Azure SDK for .NET.[01:50] - What are managed identities?[05:10] - Types of managed identities [07:13] - Creating an identity in the portal (Demo)[14:10] - Deploying your project Useful LinksWhat are managed identities for Azure resources?Authenticate with the Azure SDK for .NETAzure for .NET DevelopersAzure SDK for .NET
In this short video, Jayme and Cecil teach us about init only setters in C# 9. Useful LinksInit Only SettersWhat’s new in C# 9.NET Videos
In this short video, Matt and Cecil show us how we can use default interface methods in your C# code. Useful LinksDefault Interface methodsUpdate interfaces with default interface methods in C# 8.0.NET Videos
Security can be tricky, especially when comes to serverless. Azure App Service Auth (also referred to as “Easy Auth”) does provide some support for adding auth to your applications with writing minimal or no code.In this episode, Christos is joined by Matthew Henderson from the Azure Functions team to show[01:11] - What does EasyAuth do?[04:18] - What are the supported providers ?[06:10] - Setting up an identity provider (DEMO) Useful LinksAuthentication and authorization in Azure App ServiceIntroduction to Azure FunctionsMicrosoft Identity Web authentication library
In this short video, Jasmine and Cecil teach us about the using static directive in C# Useful Linksusing static directiveC# version history.NET Videos
Windows Forms is been a solid UI framework for creating rich desktop client apps for the Windows Desktop.In this video, Jeremy catches up with Merrie and Igor to learn about some of the new improvements that have been added to WinForms for .NET 5.[02:00] - What are some of the improvements WinForms developers get by upgrading[09:17] - Enabling more accessibility features[12:17] - How do I enable the accessibility features?[13:10] - New built-in controls for WinForms developers. Useful LinksWindows Forms for .NET 5What’s new in WinFormsGetting started with WinForms
In this quick video, Cecil and Jayme show us how top level statements work in C# 9. Useful LinksTop level statements tutorialWhat’s new in C# 9
Nuke is an open source, cross-platform build automation solution for .NET projects. NUKE prides itself on its simplicity and extensibility that makes build automation approachable for everyone.In this episode, Matthias Koch joins Rich to give an understanding of what NUKE is and where it fits within the development cycle.[01:03] - What is NUKE?[03:00] - Where does NUKE shine?[06:45] - Setting up a NUKE configuration[11:50] - Does this ever conflict with MS Build?[14:44] - Exploring a publish configuration[20:46] - Where to find Getting Started information? Useful Links.NET Nuke Build.NET CakeMS Build documentation
In this quick video, Cecil and Jayme will teach us about the new target-typed new expression in C# 9.Useful LinksWhat's new in C# 9Target-typed new expressions Language referenceA Tour of C# 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
.NET MAUI is the evolution of Xamarin.Forms and a major aspect of the upcoming .NET 6 release.In this episode, Maddy Leger comes on the show to tell us what .NET MAUI is and what to expect as we get closer to the release. [01:15] - What is MAUI? [06:12] - What’s migration path for Xamarin.Forms developers? [07:37] - Will there be a VS Code experience ? [09:16] - How would deployment work? [10:30] - dotnet new maui?? [11:20] - How will shared code work? [13:45] - How can the community get involved? [15:38] - What can we expect until the release comes out? Useful LinksThe New .NET Multi-platform App UI.NET MAUI on GitHubAnnouncing .NET 6 Preview 2
Power Apps is a low-code solution that allows you to build custom business apps that connect to business data stored in various online and on-premises data sources.In this episode, Christos chats with Greg Hurlman to show us how to add our Web APIs as connects to PowerApps.[00:54] - What are PowerApps?[02:02] - Can any Web API work with PowerApps?[03:24] - Creating a connector for you Web API[08:07] - Configuring security permissions Useful LinksWhat is PowerApps?Build your first model-driven app from scratchPowerAppsBeginner’s Series to: Web Apis
The source generators feature was adding in .NET 5. They allow you to do interesting things like generate additional source files that will get added to a compilation.In this video, Kathleen chats with Jared Parsons to find out what source generators are capable of.[01:15] - What are Source Generators?[05:24] - Demo: Real-time code generator for classes[10:54] - Demo: Generating INotifyPropertyChanged[13:16] - How to learn about building generators? Useful LinksIntroducing Source GeneratorsSource Generators CookbookNew C# Source Generator samplesSource Generator SamplesWhat’s new in .NET 5
Tye is a tool that makes developing, testing, and deploying microservices and distributed applications easier for developers. With very little knowledge of Docker or Kubernetes, developers can run locally orchestrated projects during development, and then publish to a hosted orchestrator of their choice.In this video, Justin and Amiee come on to talk to us about how Project Tye works. They discuss the problems it solves, show us a few demos, and even talk a little about the future of the project.[01:20] - What is Project Tye and what problems does it solve?[05:04] - How much microservice knowledge do you need to get started with Tye[06:15] - Frontend / Backend Tye Demo[11:13] - How does Tye handle project dependencies today?[12:41] - How does Tye deploy work?[14:00] - Deployment to Kubernetes Demo[18:40] - Extended Tye features[20:43] - Future of Tye Useful LinksProject Tye on GitHubTye SamplesDeveloping and Deploying Microservices with 'Tye'Introducing Project Tye
In this episode, Scott Addie joins Christos Matskas to discuss secrets management in .NET apps. They cover the .NET SDK's Secret Manager tool as an option for your local development environment. Next, the Azure Key Vault service is introduced as a more secure option for any environment. You'll see how these two offerings integrate with the .NET Configuration API in an ASP.NET Core Blazor Server app. Links:Blazor sample app: https://github.com/scottaddie/OnDotNetConfiguration Get your questions answered on the Microsoft Q&A for .NET: https://aka.ms/dotnet-qa Azure Managed Identity: Managed identities for Azure resources | Microsoft DocsAzure SDKs: https://aka.ms/azsdk Connect with Identity experts on the 425Show: https://aka.ms/425Show Get your free Microsoft 365 Account here: https://aka.ms/425Show/FreeM365
Microsoft Orleans is a framework that helps you build distributed applications that you can host almost anywhere that .NET runs.In this episode, Reuben Bond from the Orleans team comes on to show Cecil what it gets to deploy an Orleans application into a Kubernetes cluster in Azure[01:28] - What are we going to deploy?[03:02] - Getting the application ready for Kubernetes[06:17] - Preparing the Kubernetes cluster[08:50] - Deploying the application[15:20] - Inspecting the deployment Useful LinksBuilding real applications with OrleansOrleans sample application with Kubernetes hostingAzure Kubernetes Service (AKS) documentation
Microsoft Orleans is a cross-platform framework for building distributed applications with .NET.In this episode, Reuben Bond joins Cecil to talk about some of the capabilities of Orleans. They cover application architecture, co-host alongside ASP.NET Core, and more.[01:10] - What problems does Orleans solve?[03:15] - Do I have to think different about how I build my application?[04:44] - The architecture of an Orleans application[10:56] - Hosting Orleans alongside ASP.NET Core (Demo)[16:44] - How can Orleans scale out?[18:50] - Using stateless workers Useful LinksOrleans HomepageOrleans sample application with Kubernetes hostingOrleans at Microsoft
NuGet defines how packages for .NET are created, hosted, and consumed. Using NuGet feeds, you can make your packages publicly available or limit them to an audience, such as your internal team.In this episode, Abel shows Jeremy some different options for publishing and hosting your own NuGet packages.[00:38] - Versioning dependencies with NuGet[02:47] - Creating NuGet packages basics[03:54] - Setting up a package feed in Azure DevOps Artifacts[05:05] - Building packages in Azure DevOps Pipelines[08:47] - Publishing and hosting NuGet feeds to GitHub Useful LinksNuGet Package creation workflowPublishing NuGet packagesGitHub Packages