
Adventures in .NET
Level up your .NET skills with our weekly discussion of C# and other Microsoft technologies for developers.Become a supporter of this podcast: https://www.spreaker.com/podcast/adventures-in-net--6102015/support.
Latest episodes

Sep 17, 2019 • 48min
.NET 006: Async and C# 8 with Filip Ekberg
Episode Summary In this week’s episode of Adventures in .NET the panel interviews Filip Ekberg, Microsoft MVP, about using async, await, and the new features in C# 8. They begin by discussing the evolution of running tasks and multithreading in async. Filip describes the evolution beginning with background workers, through task parallel libraries finally to async and await. The panel considers how managing tasks has been made almost too easy. Filip explains that there has been a drive to make everything asynchronous but explains that this approach doesn’t always make sense. The panel asks Filip when a developer should use async and await. If an application has a UI, Filip encourages the use of async and await and he outlines the benefits. He also explains that if someone wants to be a full-stack developer they need to understand async and await on both the serverside and clientside. The panel wonders what the most common async and await mistakes are in .NET. Filip shares a couple of the most common mistakes he sees. The first is deadlocking an application because of the inappropriate methods such as .result and .wait on tasks. The second is marking methods as async without running the await keyword. He explains what these mistakes do to your application and gives advice on avoiding these mistakes. The panel expresses past frustrations in making all methods especially tops methods when in ASP.NET. Filip gives the panel advice on making it asynchronous top to bottom and ways to handle those aggravating top methods. He also explains how to use the await keyword and state machines effectively. Debugging in async is the next topic the panel considers. Filip explains why debugging is so tricky in asynchronous applications. He gives a few tips, his biggest piece of advice is to update Visual Studio and you should get more help in debugging than from older versions. The panel moves on to discuss C# 8. Filip explains that C# is his language, he loves it! He shares three new changes to the language features in C# 8. They made changes to how tuples work, pattern matching and null reference types. Tuples are the first change the panel considers. Filip explains what tuples are and what they do. Tuples allow you to represent a type without actually using that type. The panel considers how tuples have changed in C# 8, they are still position based but are more flexible in calling them. Next, the panel discusses null reference types. The control null reference types allow over nulls is considered. Filip shares some recommendations for using null reference types. The panel considers what might happen if someone were to use null reference types in an existing application. The wonder if it would have any benefit or if it would break the whole application. The final feature they discuss is pattern matching. Filip explains the benefit of using the new pattern matching with the new tuples feature in C# 8. The new pattern matching can be used to find tupple patterns, position patterns, and property patterns. Panelists Shawn Clabough Charles Max Wood Caleb Wells Guest Filip Ekberg Sponsors Adventures in BlockchainAdventures in DevOpsThe Freelancers ShowCacheFly Links C# 8 and Beyond - Filip Ekberg Back to Basics: Efficient Async and Await - Filip Ekberg https://twitter.com/fekberg?lang=enhttps://www.filipekberg.se/https://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/dotNET_Podcast Picks Charles Max Wood: RR 429: Mechanical Confidence with Adam CuppyJSJ 392: The Murky Past and Misty Future of JavaScript with Douglas CrockfordDr. Mario World Caleb Wells: Upgrade to the new Nintendo Switch Filip Ekberg: Final Fantasy VIII RemasteredFinal Fantasy VII Remake Shawn Clabough: https://oz-code.com/ Special Guest: Filip Ekberg. Support this podcast at — https://redcircle.com/adventures-in-net/donationsAdvertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/adventures-in-net--6102015/support.

Sep 10, 2019 • 1h 13min
.NET 005: Xamarin with James Montemagno
Episode Summary In this episode of Adventures in .NET, James Montemagno, a PM in the developer division at Microsoft working with Xamarin shares with the panel all of the exciting things happening in the Xamarin world. Charles Max Wood invites listeners to check out James’s appearances on a different DevChatTV podcast, The iPhreaks Show. Charles expresses his excitement to see Xamarin from a .NET perspective. James starts the discussion by sharing how he got into Xamarin and .NET. He explains what he loves about .NET. James worked for Xamarin during the transition into Microsoft, he shares what it was like and how the unification of the two made their products even better. The panel discusses the changes in Microsoft’s practices over the past ten years, becoming more opensource friendly and less focused on selling products. What is Xamarin, is the next thing the panel answers. James explains that Xamarin helps developers build native apps in C#. He goes on to explain how the versions of Xamarin change based on the platform, Android, iOS and tooling inside visual studio. The topic turns to how Xamarin runs. James explains that there is a common theme in Xamarin, flexibility. Choosing how Xamarin is run is up to the developer, who can use AOT (ahead of time) or JIT (just in time). Charles explains what AOT and JIT mean and how they affect application size and performance. James explains how Xamarin runs differently for Android and iOS. James introduces a brand new mode called Startup Tracing and explains how it can reduce the start-up time for your Xamarin apps by up to 60% by using a small trace of AOT. He shares the future goals for this mode and explains that it is free and can be used today. The next concern the panel has is about sharing code between different platforms and how this works with Xamarin. James explains that this problem is solved with Xamarin forms, Xamarin forms has everything a mobile app developer could want. In Xamarin forms developers can create pages to share cross-platform or simply build their whole app for all platforms. James even explains how a developer can make platform-specific adjustments to the code. James defines customer-driven development and explains how this allows them to create the best product for developers. The flexibility and capabilities in UI’s and controls allows developers to choose what their app looks like. Caleb asks about the built template components that allows the developer to architect the navigation in their applications. James explains one of the tools, Shell and how it helps you set up your navigation how you want it while handling all the messiness with minimal code. Charles asks James about library integration into Xamarin. James starts by sharing what comes in the box with Xamarin, 100% API coverage for both Android and iOS. How this works is, a team looks at the needs of developers and makes a list of the necessary, popular and desired libraries and creates API bindings for them. Libraries that don’t make that list can have a binding generated with Xamarins binding generator, which will include the necessary features needed to use the library. The panel changes the topic to the new Xamarin features that James is most excited for. James mentions a one-stop library called Xamarin essentials that will hold all the things a developer might need. He also includes Xaml hot reload for Xamarin forms, this feature will create a better level of productivity as it reloads around typos and mistakes allowing developers to stay in their workflow. The panel discusses the other benefits of a feature like this. Caleb Wells warns how addictive a good hot reload can be. The episode ends with James giving advice and resources for getting into Xamarin. Charles praises the Microsoft documentation. Caleb gives an endorsement for Microsoft Learn. Charles invites listeners to suggest topics and guests at devchat.tv. Panelists Charles Max Wood Caleb Wells Guest James Montemagno Sponsors Adventures in DevOpsThe Freelancers ShowReact Round UpCacheFly Links https://montemagno.com/podcast-equipment-accessories-guide/ https://devchat.tv/views-on-vue/vov-078-waxing-philosophical-with-christoffer-noring www.mergeconflict.fm www.nintendodispatch.com www.xamarinpodcast.com https://www.mw-embedded.com/product/gameboy-color-replacement-lcd-module/ 096 iPS Xamarin and Wearables with James Montemagno iPS 206 Build Special 1: Embeddinator 4000 with James Montemagno 175 iPS Xamarin with James Montemagno https://montemagno.com/podcast-equipment-accessories-guide/ www.mergeconflict.fm www.nintendodispatch.com www.xamarinpodcast.com https://dotnet.microsoft.com/apps/xamarinhttps://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/dotNET_Podcast Picks Charles Max Wood: The ExpanseThe Black ListThe Amazing Race Caleb Wells: Doom Patrol James Montemagno: The Bachelor The Bachelor in ParadiseOzarksThe Big Lebowskihttps://www.mw-embedded.com/product/gameboy-color-replacement-lcd-module/ Special Guest: James Montemagno. Support this podcast at — https://redcircle.com/adventures-in-net/donationsAdvertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/adventures-in-net--6102015/support.

Sep 3, 2019 • 51min
.NET 002: Building Extensions with Mads Kristensen
Sponsors CacheFly Panel Charles Max Wood Shawn Clabough Caleb Wells Joined by Special Guest: Mads Kristensen Summary Mads Kristensen, from Microsoft, joins the panel to discuss building extensions in visual studio. Mads shares his story of getting into building extensions. Mads gives recommendations when getting started building an extension. The panel discusses what are important things to understand when you are new to building extensions. Charles Max Wood asks about the capabilities of extensions. Mads gives best practices for building extensions. Why writing extensions is getting easier and the place of extension in Microsoft is considered by the panel. The panel discusses the versions of visual studios and how they affect extensions. Mads shares what he is working on right now. Links 236 JSJ Interview with Mads Kristensen from Microsoft Ignite Getting started writing Visual Studio extensions Visual Studio 2015 Extensibility Checklist for writing great Visual Studio extensions https://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/adventures_net Picks Charles Max Wood: Azure FunctionsStranger Things Season 3 Shawn Clabough: https://slcnet.tech/https://www.dotvvm.com/ Caleb Wells: Xbox Live for PC Mads Kristensen: https://hubitat.com/Special Guest: Mads Kristensen. Support this podcast at — https://redcircle.com/adventures-in-net/donationsAdvertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/adventures-in-net--6102015/support.

Sep 3, 2019 • 47min
.NET 004: All About Azure Functions with Colby Tresness
Sponsors CacheFly Panel Shawn Clabough Caleb Wells Joined by Special Guest: Colby Tresness Summary Colby Tresness, from Microsoft, joins the panel to answer questions about azure functions. He starts by defining the two different types of azure functions. He overviews the different plans available and what they offer. The panel discusses the best use cases for azure functions and Colby shares what to avoid doing with azure functions. The panel asks Colby about cold start penalties and the security of functions. Colby explains what languages azure functions supports and how it is able to support so many different languages. The new trend of using azure storage for static websites is discussed. Colby talks about durable functions, a stateful function. Links https://code.visualstudio.com/docs/azure/deployment https://azure.microsoft.com/en-us/blog/author/cotresne/https://github.com/ColbyTresnesshttps://twitter.com/colbytresness?lang=enhttps://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/adventures_net Picks Shawn Clabough: NPR Planet Money Caleb Wells: Elder Scrolls Online Colby Tresness: DarkSpecial Guest: Colby Tresness. Support this podcast at — https://redcircle.com/adventures-in-net/donationsAdvertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/adventures-in-net--6102015/support.

Sep 3, 2019 • 28min
.NET 001:Welcome to Adventures in .NET
Sponsors CacheFly Panel Caleb Wells Shawn Clabough Summary In this very first episode of Adventures in .NET the panel starts by introducing themselves. The panel shares their journeys when they got started in programming and how they got into .NET. The panel considers the evolution of technology and how the modern path of a programmer has changed. They discuss what projects they are currently working on and what projects excite them in .NET. Links https://www.linkedin.com/in/calebcwells https://twitter.com/wopr_devhttps://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/adventures_net Picks Caleb Wells: Enneagram Shawn Clabough: WarGameshttps://www.dotnetconf.net/Support this podcast at — https://redcircle.com/adventures-in-net/donationsAdvertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/adventures-in-net--6102015/support.

Sep 3, 2019 • 53min
.NET 003: Blazor with Daniel Roth
Sponsors CacheFly Panel Shawn Clabough Caleb Wells Joined by Special Guest: Daniel Roth Summary Daniel Roth, from Microsoft, the ASP .NET team, joins the panel to discuss Blazor. Daniel starts by introducing Web Assembly and how this changed web development. Blazor allows full-stack development through .NET with C#. The panel asks Dan about Blazor's capabilities and future. Dan shares Blazor’s origin story. The panel compares Blazor to Silverlight and Dan compares the two and explains how Blazor is superior to Silverlight. Dan explains why developers are so excited for Blazor. The panel discusses the runtime Blazor uses and whether it is core only. The panel asks Dan about how to adopt Blazor into specific projects and how Blazor works under the hood. Links https://blazor.netNDC Oslo 2019: Blazor, a new framework for browser-based .NET apps - Steve SandersonTelerikDevExpressSyncfusionRadzenhttps://github.com/AdrienTorris/awesome-blazorhttps://gitter.im/aspnet/blazorhttps://github.com/aspnet/AspNetCore/tree/master/src/ComponentsASP.NET Core and Blazor updates in .NET Core 3.0 Preview 7Blazor now in official preview!https://aka.ms/blazorworkshophttps://devblogs.microsoft.com/aspnet/https://github.com/AdrienTorris/awesome-blazorBlazor, a new framework for browser-based .NET apps - Steve Sanderson https://gitter.im/aspnet/blazor https://github.com/danroth27 https://twitter.com/danroth27?lang=enhttps://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/adventures_net Picks Shawn Clabough: Merlin Caleb Wells: Muse 2 headband Daniel Roth: Roblox Special Guest: Daniel Roth. Support this podcast at — https://redcircle.com/adventures-in-net/donationsAdvertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/adventures-in-net--6102015/support.