A Special Group Presentation on Blazor Architecture - Episode 138

Azure DevOps Podcast

Episode | Podcast

Date: Mon, 26 Apr 2021 08:00:00 +0000

<p><span style="font-weight: 400;">Today on</span> <em><span style="font-weight: 400;">The Azure DevOps Podcast,</span></em> <span style="font-weight: 400;">Jeffrey Palermo is sharing an exclusive presentation on Blazor Architecture Patterns.</span></p> <p><span style="font-weight: 400;"><br /></span><span style="font-weight: 400;">Blazor is one of the new frameworks that has</span> <em><span style="font-weight: 400;">a lot</span></em> <span style="font-weight: 400;">to offer and is bringing many unique aspects together. With there already being so many fantastic developer tutorials and how-to’s on Blazor, Jeffrey is instead going to be focusing on an architectural look at Blazor. Specifically, how the architecture works, as well as how you, as a developer, should be thinking about Blazor so that when you</span> <em><span style="font-weight: 400;">do</span></em> <span style="font-weight: 400;">choose to make use of it in its various forms, you can make the appropriate choice for your situation.</span></p> <p> </p> <p><span style="font-weight: 400;">Jeffrey covers a variety of topics in this presentation and it is jam-packed full of tips, advice, techniques, tools, resources, and how-tos! He speaks about the patterns that are appropriate for</span> <em><span style="font-weight: 400;">every</span></em> <span style="font-weight: 400;">Blazor architect to consider, how the different flavors of Blazor operate at the architectural level, how Blazor handles memory management, the high-level hub-and-spoke architecture and how it can apply to a Blazor application, eventing throughout the user interface, how to test Blazor applications, and the unique things you need to do when monitoring a Blazor application when it’s running in production.</span></p> <p> </p> <p><span style="font-weight: 400;">Be sure to tune in as this presentation is beneficial for</span> <em><span style="font-weight: 400;">all</span></em> <span style="font-weight: 400;">.NET developers and those who make use of the Microsoft platform!</span></p> <p> </p> <p><strong>Topics of Discussion:</strong></p> <p><span style="font-weight: 400;">[:38] Be sure to visit</span> <a href="http://azuredevops.show/"><span style="font-weight: 400;">AzureDevOps.Show</span></a> <span style="font-weight: 400;">for past episodes and show notes.</span></p> <p><span style="font-weight: 400;">[:50] About</span> <em><span style="font-weight: 400;">The Azure DevOps Podcast</span></em><span style="font-weight: 400;">, Clear Measure, the new podcast</span> <em><span style="font-weight: 400;">Architect Tips</span></em><span style="font-weight: 400;">, and Jeffrey’s offer to speak at virtual user groups.</span></p> <p><span style="font-weight: 400;">[1:17] About today’s special episode. </span></p> <p><span style="font-weight: 400;">[1:35] Jeffrey’s introduction to his special group presentation on Blazor architecture.</span></p> <p><span style="font-weight: 400;">[2:32] What this presentation will be about.</span></p> <p><span style="font-weight: 400;">[3:11] Jeffrey introduces himself and shares about his developer background.</span></p> <p><span style="font-weight: 400;">[3:58] The topics that this presentation will be covering.</span></p> <p><span style="font-weight: 400;">[4:55] If you would like an electronic copy of Jeffrey’s book,</span> <em><span style="font-weight: 400;">.NET DevOps for Azure,</span></em> <span style="font-weight: 400;">send him an email at</span> <a href="mailto:Jeffrey@Clear-Measure.com"><span style="font-weight: 400;">Jeffrey@Clear-Measure.com</span></a><span style="font-weight: 400;">! You can also obtain a print copy anywhere books are sold.</span></p> <p><span style="font-weight: 400;">[5:32] About</span> <em><span style="font-weight: 400;">The Azure DevOps Podcast.</span></em></p> <p><span style="font-weight: 400;">[6:08] Getting started with Blazor: an overview.</span></p> <p><span style="font-weight: 400;">[9:00] The first step: source control.</span></p> <p><span style="font-weight: 400;">[11:50] How the Blazor Server-Side architecture works.</span></p> <p><span style="font-weight: 400;">[16:57] Settings that are important to get right in order for a Blazor Server-Side app to work properly.</span></p> <p><span style="font-weight: 400;">[20:48] Settings that are important for Blazor WebAssembly.</span></p> <p><span style="font-weight: 400;">[22:44] How to choose between Blazor Server-Side and Blazor WebAssembly.</span></p> <p><span style="font-weight: 400;">[25:21] How to handle memory management in Blazor WebAssembly and Blazor Server-Side.</span></p> <p><span style="font-weight: 400;">[31:26] Entity Framework for Blazor Server-Side.</span></p> <p><span style="font-weight: 400;">[34:30] About the hub-and-spoke pattern and how it can apply to a Blazor architecture.</span></p> <p><span style="font-weight: 400;">[37:19]</span> <span style="font-weight: 400;">A word from</span> <em><span style="font-weight: 400;">Azure DevOps Podcast</span></em><span style="font-weight: 400;">’s sponsor: Clear Measure.</span></p> <p><span style="font-weight: 400;">[37:51] Check out PlantUML if you are looking for a way to have design diagrams or architectural diagrams that are versionable that can be stored with your codebase.</span></p> <p><span style="font-weight: 400;">[39:01] The main conduit from the user interface into the application.</span></p> <p><span style="font-weight: 400;">[39:59] Jeffrey’s favorite under-the-covers library right now for integrating and routing and integration for IOC Containers: the MediatR Library.</span></p> <p><span style="font-weight: 400;">[40:53] Jeffrey talks component libraries and gives his recommendations around them.</span></p> <p><span style="font-weight: 400;">[42:11] Why you need to think about all of the methods that your developers are using so that they are successful.</span></p> <p><span style="font-weight: 400;">[42:46] Jeffrey addresses a crosscutting concern that the Bus can give developers.</span></p> <p><span style="font-weight: 400;">[43:50] Jeffrey talks UI eventing within Blazor.</span></p> <p><span style="font-weight: 400;">[48:20] The speed and performance of Blazor Server-Side when loading a screen that’s a little bit long.</span></p> <p><span style="font-weight: 400;">[49:46] How to refresh your browser pages in the DOM a lot quicker.</span></p> <p><span style="font-weight: 400;">[51:59] Broadcasted events: how to do them across many users of the same application.</span></p> <p><span style="font-weight: 400;">[55:12] Why you need to test your Blazor components.</span></p> <p><span style="font-weight: 400;">[57:14] The tests that have to run in a fully deployed environment of your application, and the three steps to continuous integration.</span></p> <p><span style="font-weight: 400;">[1:00:16] Operations and monitoring in Blazor.</span></p> <p><span style="font-weight: 400;">[1:02:51] Monitoring and metrics in Blazor.</span></p> <p><span style="font-weight: 400;">[1:08:33] Jeffrey wraps up the presentation.</span></p> <p> </p> <p><strong>Mentioned in this Episode:</strong></p> <p><a href="http://architecttips.clearmeasure.com/"><em><span style="font-weight: 400;"> Architect Tips</span></em></a> <span style="font-weight: 400;">— New video podcast!</span></p> <p><a href="https://azure.microsoft.com/en-ca/services/devops/?&amp;OCID=AID736756_SEM_7eul5uID"> <span style="font-weight: 400;">Azure DevOps</span></a></p> <p><a href="https://www.clear-measure.com/"><span style="font-weight: 400;">Clear Measure</span></a> <span style="font-weight: 400;">(Sponsor)</span></p> <p><a href="https://www.amazon.com/NET-DevOps-Azure-Developers-Architecture/dp/1484253426"> <em><span style="font-weight: 400;">.NET DevOps for Azure: A Developer's Guide to DevOps Architecture the Right Way,</span></em> <span style="font-weight: 400;">by Jeffrey Palermo</span></a> <span style="font-weight: 400;">— Available on Amazon!</span></p> <p><a href="http://www.lulu.com/shop/jeffrey-palermo/net-devops-for-azure-ebook-edition/ebook/product-24094762.html"> <span style="font-weight: 400;">bit.ly/dotnetdevopsebook</span></a> <span style="font-weight: 400;">— Click here to download the</span> <em><span style="font-weight: 400;">.NET DevOps for Azure</span></em> <span style="font-weight: 400;">ebook!</span></p> <p><a href="https://www.youtube.com/channel/UC-ROXy08zc-qTA0-3GAQDLw"><span style="font-weight: 400;"> Jeffrey Palermo’s Youtube</span></a></p> <p><a href="https://twitter.com/jeffreypalermo?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor"> <span style="font-weight: 400;">Jeffrey Palermo’s Twitter</span></a> <span style="font-weight: 400;">—</span> <span style="font-weight: 400;">Follow to stay informed about future events!</span></p> <p><a href="https://blog.stevensanderson.com/"><span style="font-weight: 400;">The Azure DevOps Podcast’s Twitter: @AzureDevOpsShow</span></a></p> <p><a href="https://visualstudio.microsoft.com/"><span style="font-weight: 400;">Visual Studio</span></a></p> <p><a href="https://www.nopcommerce.com/en"><span style="font-weight: 400;">nopCommerce</span></a></p> <p><a href="https://blazortrain.com/"><span style="font-weight: 400;">Carl Franklin’s Blazor Train</span></a></p> <p><a href="https://www.devexpress.com/"><span style="font-weight: 400;">DevExpress</span></a></p> <p><a href="https://git-scm.com/"><span style="font-weight: 400;">Git</span></a></p> <p><a href="https://webassembly.org/"><span style="font-weight: 400;">WebAssembly</span></a></p> <p><a href="https://dotnet.microsoft.com/apps/aspnet/signalr"><span style="font-weight: 400;">SignalR</span></a></p> <p><a href="https://jasperfx.github.io/lamar/documentation/ioc/"><span style="font-weight: 400;">Lamar</span></a></p> <p><a href="https://www.entityframeworktutorial.net/what-is-entityframework.aspx"> <span style="font-weight: 400;">Entity Framework</span></a></p> <p><a href="https://plantuml.com/"><span style="font-weight: 400;">PlantUML</span></a></p> <p><a href="https://www.nuget.org/packages/MediatR/"><span style="font-weight: 400;">MediatR Library</span></a></p> <p><a href="https://www.telerik.com/"><span style="font-weight: 400;">Telerik</span></a></p> <p><a href="https://www.radzen.com/"><span style="font-weight: 400;">Radzen</span></a></p> <p><a href="http://sites.bu.edu/rf/"><span style="font-weight: 400;">BU Responsive Framework</span></a></p> <p><a href="https://www.selenium.dev/"><span style="font-weight: 400;">Selenium</span></a></p> <p><a href="https://dotnet.microsoft.com/apps/aspnet/mvc"><span style="font-weight: 400;">ASP.NET MVC</span></a></p> <p> </p> <p><strong>Want to Learn More?</strong></p> <p><span style="font-weight: 400;">Visit</span> <a href="http://azuredevopspodcast.clear-measure.com/"><span style="font-weight: 400;">AzureDevOps.Show</span></a> <span style="font-weight: 400;">for show notes and additional episodes.</span></p>