Hey Reader,
Today, we're diving into two burning questions that have been on a lot of your minds: How to implement Clean Architecture in a Blazor Web App and whether Blazor is viable in the industry.
In my newest video tutorial, I break down the essentials of setting up a Clean Architecture for your Blazor Web App in Visual Studio. We'll explore the four layers - Domain, Application, Infrastructure, and Presentation - and how they seamlessly integrate.
Here's what you need to know:
Start with a blank solution in Visual Studio and create a "src" folder for all your projects.
Begin layering by setting up three class library projects: "Domain," "Application," "Infrastructure". For the Presentation layer, kick off a new project with the "Blazor Web App" template, which will then be the starting project.
With Clean Architecture, each layer points inwards to ensure separation of concerns. A common industry practice allows the presentation layer to directly reference the infrastructure layer.
Ensure proper project referencing: Application refers to Domain, Infrastructure to Application, and Presentation to Infrastructure (taking the shortcut here).
For service registration, don't bunch it all in the Presentation layer's Program.cs. Add a DependencyInjection.cs file in both Application and Infrastructure layers with an extension method for the IServiceCollection. Invoke this in the Presentation layer's Program.cs.
That's it!
A lot of you have been asking if people really use Blazor for real work.
The story of BurnRate, run by .NET expert Robert McLaws, shows that yes, they do.
Instead of using complicated Excel sheets, BurnRate uses a smart "People Algorithm" with the help of Blazor and ASP.NET. This makes their website able to handle detailed financial stuff easily.
It's a great example of how Blazor is good for making reliable, ready-for-business apps. Check out how BurnRate uses Blazor here: BurnRate is fueling revenue success with Blazor.
Thank you immensely for your enthusiasm and support for the .NET Web Academy. Just a friendly reminder, enrollment is open for just one more week. Secure your place now at https://learn.dotnetwebacademy.com.
Have questions or need clarifications? Don't hesitate to hit reply to this email. I'm here to support with more tutorials if needed.
A big thank you to our incredible community and my Patrons for your steadfast support. You're the backbone of this newsletter and my channel. Stay safe, and remember, joy is found in coding! 💻
Take care,
Patrick
Become a .NET & Blazor expert with weekly tutorials featuring best practices and the latest improvements, right in your inbox.
Hey Reader, Ever tried to choose the perfect weapon for each creature in a dark, spooky forest? Silver bullets for werewolves, garlic for vampires, chainsaws for zombies... but what if you had to pick your weapon before entering the forest? Just like that forest adventure, dependency injection in C# can leave you stuck with the wrong tool when you need it most - unless you know about the Factory Pattern! Today, I’m breaking down how the Factory Pattern solves real-world dependency injection...
Hey Reader, In today’s tutorial, I’ll walk you through how to use Dapper, a high-performance micro ORM (object-relational mapper) with a .NET 8 Web API and SQL Server. We’ll cover everything you need to know to build a simple CRUD (Create, Read, Update, Delete) application. Watch on YouTube 📺 Check out the full tutorial on YouTube to see everything in action 👇 What We’ll Be Doing We’re going to work with a simple video game database to start. You’ll learn how to: Read all games or a specific...
Hey Reader, Today, I show you how combining Blazor and JavaScript can give you the best of both worlds. Let’s dive into how you can easily mix the power of these two technologies in your projects! Watch on YouTube 📺 Check out the full tutorial on YouTube to see everything in action 👇 A Simple Example: Console Logging in Blazor Imagine you’re working on a Blazor Server application, and you want to log the current count (of the Counter page) to the console. Your first thought might be to use...