Hey Reader, Let's talk about an exciting new feature in .NET 9. It is adding static server-side rendering (SSR) pages to a globally interactive Blazor Web App. What Are Render Modes?If you're familiar with Blazor in .NET, you know we have these interactive render modes:
We also have SSR (Static Server-Side Rendering), which means everything is rendered on the server and sent to the client as finished HTML. But what happens when you need interactivity, like clicking a button to trigger an action without using a form? That’s where interactive render modes come in. Creating a Blazor Project in .NET 9When you create a new Blazor Web App project in .NET 9, you can choose the render mode: Interactive Server, WebAssembly, or Auto. You can also set this render mode globally or per page/component. In Visual Studio 2022 Preview, you can use the following settings to create a new project. Set the interactive render mode to "Server" and the interactivity location to "Gloabl". In general, if you want to set the render mode only for a specific page or component, you can do that too. This flexibility allows you to mix and match static and interactive rendering in your application. Example: The Weather PageOn the weather page, we simulate fetching data from the server. Here, SSR can be used since there’s no need for interactivity. With .NET 9, you can change render modes dynamically, allowing certain pages to be interactive while others remain static. To do that, we the following line on top of the component: Additionally, we also have to change the App.razor a little: Make sure to use the "PageRenderMode" as render mode for the HeadOutlet and the Routes components. Improving User Experience with Stream RenderingTo improve the user experience, we can also use stream rendering. This technique loads the page immediately while fetching data asynchronously, providing a smoother experience. For example, when navigating to the weather page, the page loads instantly, and data is displayed shortly after. To make use of stream rendering, add the following attribute on top of the Weather.razor file: Using WebSocketsAnother important aspect is the use of WebSockets with Blazor Server globally. However, if you use SSR, WebSockets aren’t necessary, which can improve performance and scalability. For applications requiring specific layout components, like those from Radzen or MudBlazor, using global render modes can be beneficial. ConclusionIn summary, .NET 9’s improved render modes in Blazor offer great flexibility and performance enhancements. You can choose the best rendering strategy for your application's needs, improving both usability and efficiency. Check out the full tutorial on YouTube 👇 Happy coding! Take care, Patrick PS: Need help understanding .NET & Blazor? There are two ways I can help you with:
PPS: Would you like to sponsor this newsletter? I'm just an email away. Have an awesome weekend! 🎉 |
Become a .NET & Blazor expert with weekly tutorials featuring best practices and the latest improvements, right in your inbox.
Hey Reader, Last week, I tested GPT-5 Agent Mode on .NET and Blazor apps, and the results were surprising. This week, I went a step further. I used GitHub Copilot inside Visual Studio and asked it to create real .NET and Blazor projects for me. Here’s what happened: Copilot generated a working calculator app in C#. It built a Web API that responded with “Hello GPT-5 Agents.” It even created a Blazor app with extra features like a reset button, a plus five counter, and a weather API. Were...
Hey Reader, I just published a new video where I put GPT-5’s Agent Mode to the test. 🚀 Instead of asking it for something simple, I went all in: A .NET 9 console app calculator A Web API with endpoints and docs A Blazor Server app with extra counter buttons And even a Blazor app that calls a public weather API 🎥 Watch it now: In the video, I didn’t just type “make me an app” and hope for the best. I gave GPT-5 very specific prompts, like: “Please create a .NET 9 console application that works...
Hey Reader, I’m back! 🎉 I’ve been on parental leave for the past 2 months, enjoying time with the family. Now I’m diving back into videos and here’s the first one! 🎥 Watch it now: Here’s the TL;DR if you can’t click right now: AI can already write code, fix bugs, and explain complex concepts. So… are we doomed? No. AI isn’t replacing developers anytime soon. But: Developers who use AI will replace those who don’t. The best devs are using GPT to: Skip repetitive work Prototype faster Learn...