Project Overview: Inventory Management System (IMS) in .NET 8 with Blazor
https://www.youtube.com/watch?v=JgEjgobtDg0&ab_channel=FrankLiu
Github:
IMS-Blazor-8/IMS.Plugins/IMS.Plugins.EFCoreSqlServer at master · frank-liu-toronto/IMS-Blazor-8
1. Course Foundation & Tech Stack
- Instructor & Platform
- Developed by Frank Liu, a senior full-stack developer—teaching via Udemy. (Udemy)
- Core Technologies
- Blazor Server (in .NET 8) — rapid full-stack SPA development using C#, minimal JS. (Udemy)
- Entity Framework Core with SQL Server — for data access and persistence. (Udemy)
- ASP.NET Core Identity — for user authentication and policy-based authorization. (Udemy)
- Clean Architecture — use-case driven, layered architecture; enforces separation of concerns. (Udemy)
- Plugin-Based Data Store — interchangeable store implementations: In‑Memory vs EF Core SQL Server. (Udemy)
- Key Learning Outcomes
- Build a functional Inventory Management Web App using Blazor and .NET 8
- Implement structured, testable architecture (use cases, DI, plugins)
- Establish secure auth flows with Identity
- Work with EF Core, utilize migrations, and manage data stores flexibly (Udemy, Microsoft Learn)
2. Architecture Highlights & Component Breakdown
A. Blazor Front-End
- Razor components (
.razor
files) with:
- Two-way data binding
- Event handling (e.g., button clicks, form submissions)
- Validation using built-in Blazor and custom
ValidationAttribute
logic (Udemy)
- UI Tooling:
- HTML + Bootstrap for layout and styling (GitHub)
- Navigation & Layout:
- Clean component routing, layouts, and state management patterns
B. ASP.NET Core Identity & Security
- Integral authentication/authorization system
- Role and policy-based access control to protect views/actions (Visual Studio Magazine)
C. Clean Architecture + Plugin System
- Use Case Driven Development:
- Clearly defined interactor/use-case classes encapsulate application logic. UI layer calls into these instead of directly hitting persistence or domain objects. (Udemy)
- Plugin Data Stores:
- In-Memory Plugin: fast and simple store for development/testing
- EF Core SQL Server Plugin: production-grade plugin using EF Core + SQL Server
- Repository pattern wraps data access; plugins implement interfaces to register DI services dynamically