Hey Reader,
This week we're diving deep into Blazor via .NET 8, focusing on mastering CRUD operations using the fresh render modes—Auto, Server, WebAssembly, and even no render mode for static server-side rendering via stream rendering. Yep, that's a mouthful of new capabilities for you!
No sweat, I've got you sorted. This week's video walks you through each render mode and demonstrates how to flawlessly execute CRUD operations, complete with persistence via Entity Framework and SQL Server Express.
If you're more of a code-first person, here's a sneak peek at the essential code sections. With the latest Blazor Web App template in Visual Studio 2022 Preview, selecting Auto or WebAssembly render modes gifts you two projects—Server and Client. The Server project comes fully equipped for Web API tasks, including the ability to add API controllers, which is vital for using server-side services in your client project.
Say you've crafted a simple game library entity:
Along with the requisite Entity Framework boilerplate:
Watch Your Steps!
Have you set all this up in the Server project? Ah, but what if you need to access your Game Entity or services from the Client project? To solve this, I shifted everything to a separate Class Library:
You'll notice that this setup closely resembles the older Blazor WebAssembly ASP.NET Core Hosted template from .NET 7.
To call server logic from your client app, web service calls are still the way to go. Dependency Injection comes to the rescue, allowing us to implement the IGameService interface differently for the client:
Remember to register your GameService and HttpClient on both client and server ends.
Client:
Server:
And, of course, don't forget the new controller on the server:
I get it; this might feel overwhelming at first. But trust me, once you get your bearings, the new .NET 8 features will feel like second nature. I'm also working on a video that compares the .NET 7 and .NET 8 versions of a Blazor WebAssembly app. So stay tuned!
To grab the complete code, watch the video or head to my Patreon page for the repo download.
💌 Got questions or topics you're curious about? Just hit 'reply'—your input is priceless. A massive shoutout to everyone for making this community what it is! 🙌 Special thanks to my Patrons—your support fuels this newsletter and my YouTube channel.
Until our next coding journey, stay well and happy coding! 💻
Patrick
Become a .NET & Blazor expert with weekly tutorials featuring best practices and the latest improvements, right in your inbox.
Hey friend, Last week I wrote a full .NET 10 Web API by hand. It worked great. But I kept thinking… Can I build the same thing faster with AI? So I tried. And wow. The result blew my mind. In my new YouTube video, I show you the exact workflow I used with GitHub Copilot to build a full API. Step by step. Real code. No fluff. If you ever thought things like: “How do I use Copilot in real .NET apps?” “Is Copilot even helpful for Web API, EF Core, or real projects?” “Am I using this tool the...
Hey Reader, .NET 10 just dropped. 🥳 And if you’ve been waiting for a reason to build something new, this is it. In my latest tutorial, I’ll walk you through how to build a complete Web API from scratch in .NET 10, including: Setting up Controllers Using Entity Framework Core 10 Connecting SQL Server Working with DTOs the right way It’s perfect if you’re starting fresh or want to upgrade an older .NET 8 or .NET 9 project to the newest version. Watch the full tutorial here 👇 Take a look, and...
Hey Reader, .NET 10 is almost here, and it brings a big upgrade for validation in Minimal APIs. In this week’s tutorial, I’ll walk you through how validation works now in .NET 10 (using Entity Framework, Scalar, and Minimal APIs). Before, writing validation logic in each endpoint was a pain. You had to manually check for null values, invalid quantities, or missing fields. But in .NET 10, that’s all built-in and super clean. Watch the full tutorial now: 👇 Happy coding! Take care, Patrick