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, You may have seen the recent blog post from Jimmy Bogard (creator of MediatR and AutoMapper) announcing that these libraries are going commercial. And to be clear, I fully support that. Time is money, and supporting your family always comes first. BUT… In most of my projects, I don’t actually use everything MediatR offers. I usually just need a small part of it, the classic "send a request, get a response" pattern. So I thought: why not build a simple version myself? 👉 That’s...
Hey Reader, In my last video, I showed you how to build a CRUD app using Vertical Slice Architecture and controllers in .NET 9. But… What if you could do the same thing - cleaner, simpler, and without all that controller clutter? 👉 That’s exactly what I show you in my brand-new video: In this one, you’ll learn how to: Use Minimal APIs instead of controllers Keep your Program.cs neat and tidy Stay fully organized with the Vertical Slice Architecture Work with Carter, a super helpful library...
Hey Reader, If you’ve ever built a simple CRUD app with a layered architecture… you might be making things harder than they need to be. In my newest YouTube tutorial, I show you how to build a scalable CRUD app using something super clean and refreshing: 👉 Vertical Slice Architecture in .NET 9 We’ll build a full Video Game API, step-by-step, with: .NET 9 Web API + Entity Framework Core Code-first migrations Controllers (yep, still using those!) The Mediator pattern for cleaner code And, of...