Skip to content

Blazor Web Assembly/MAUI example app, using code first GRPC-Web for backend API calls and Identity Server authentication.

License

Notifications You must be signed in to change notification settings

rebelzach/blazor-wasm-maui-clean-architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blazor WebAssembly and MAUI Clean Architecture Example

Screenshot of the create design page with a 3D block and some controls to alter its name and size.

This is an INCOMPLETE work-in-progress experiment.

This example application is intented to allow a theoretical customer to create a 3D model, a "Thing", that they might wish to order as a 3D printed item.

Introduction:

  • Loose goals for this project
    • Have some fun with Blazor and MAUI!
    • Explore isolating domain components for use in WebAssembly Blazor, specifically the Thing.Domain.SolidModeling project.
    • Minimize the API glue necessary to make backend calls using common contract interfaces and GRPC-Web
    • Experiment with verification/snapshot testing.
    • Experiment with implementing a simple DDD paradigm along with an application façade layer.
  • Based on the clean architecture template from Steve Smith
  • Also invaluable, the Blaze Orbital example from from Steve Sanderson
  • Uses Verify and BUnit for rapid implementation of tests.

Quick Start

  • WebAssembly Client and Backend API

    • Right click on the solution and "Set Startup Projects..."
    • Set both Thing.Designer.App.Api and Thing.Designer.App.WebClient to start.
    • Debug > Start Debugging
  • MAUI targeting Android or WinUI 3

    • To build and run the MAUI project Thing.Designer.App.Mobile you will need the latest preview version of Visual Studio 2022, until MAUI is formally released.
    • Set Thing.Designer.App.Mobile as the startup project.
    • Under the debug button you can select the "Framework" and target either Windows or Android as the target executable.
    • iOS is untested, but can be enabled, see the comments in the csproj file.

Notes

  • The backend uses EFCore backed by SQLite, a database is automatically generated when launching the API project.
  • Once launched you will need to register an account and sign in to see the "Manage Designs" page.
  • GRPC from the MAUI App is not implemented, though I noticed a video from Carl Franklin might tackle this. https://www.youtube.com/watch?v=-JnvLP31Z64

About

Blazor Web Assembly/MAUI example app, using code first GRPC-Web for backend API calls and Identity Server authentication.

Topics

Resources

License

Stars

Watchers

Forks

Languages