neozhu / CleanArchitectureWithBlazorServer

This is a repository for creating a Blazor Server dashboard application following the principles of Clean Architecture
https://architecture.blazorserver.com/
MIT License
835 stars 223 forks source link

Making it 1)AutoRender Mode with webassembly,2)each-tenant specific role maintenance for better performance #671

Closed nammadhu closed 6 months ago

nammadhu commented 6 months ago

Hi @neozhu , I think if you added 2 features, 1> auto rendermode (.net 8 most promising feature) to this 2> multi-tenant , each tenant specific role maintenance then it makes a really a great repo. Mostly you added all of the necessary features for a starter. I too added in my branch nammadhu/mainWasm but its making some render issue , hope you can try something quick & better than mine.

Being selfish, am also eagerly expecting that from here ;) -Madhu

neozhu commented 6 months ago

Hi @nammadhu Thanks for your suggestions! Regarding the auto render mode, it would require a significant refactor. Specifically, we need to switch all Pages/Components from SDK: Microsoft.NET.Sdk.Web to SDK: Microsoft.NET.Sdk.BlazorWebAssembly, which involves separating a lot of code.

As for the multi-tenant feature with role maintenance for each tenant, I agree that it's a straightforward addition and I'll be incorporating it.

Cheers, hualin

nammadhu commented 6 months ago

@neozhu , That sounds promising... I have little more suggestion, please validate yourself, 1> Instead of modifying existing complete code to be shifted, just lets add other projects of RazorClassLibary & letting users use the wasm on browser without calling server for each request(like counter example) 2> in next step it can be moving all(except authentication), to a commonRazor class library & using that wherever required for webassembly or webapp or even MAUI, so it makes an open path for all type of users to expand ... similar structure has been done in one of my neighbour project, so i felt this repo should have the same. As per my knowledge only this(your) repo is the only globally best blazor related app with regular update, in my team I only suggested many guys to refer your repo for many sense. But most of them/leads counter point is these features (wasm & role maintenance)

3>Regarding role -tenant management, thats great... please incorporate asap

You are doing really nice open source contribution, really i appreciate... keep doing great works.. Even am also spreading little bit of blazor over youtube channel https://www.youtube.com/@nammadhu

nammadhu commented 6 months ago

@neozhu I think this will come under future scope So to avoid confusion ,I feel its better to close this or what should be the best case for tracking

nammadhu commented 6 months ago

@neozhu Awesome man... I really appreciate a lot... I will test & let you know if anything more...

1 more common & most expected is moving razor components to RazorcommonLibrary & invoking in anywhere like Server or WebAssembly or any other mixed mode like Auto... so users will get n number of their dependent ... Excluding few server features like Authentication/login

Actually am trying to compare & fetch all good feature like one of my neigbhour Mukesh he created separate webassembly, webserver/API all but not maintaining & so not latest https://github.com/fullstackhero/blazor-starter-kit

SO I thought this repo can help a lot of guys especially on blazor....

Kudos to you...

nammadhu commented 6 months ago

Awesome .... It looks no issue with code flow of Role-Tenant mapping. only ssed data looks small missing.

image

By default roles not appearing, but its not a bug. Instead seed data is not loaded.

image

Here you can notice tenant name missing,so...if you correct that then it will be fine as below

image
nammadhu commented 6 months ago

with all this am closing this bug one main feature implemented. For webasssembly opening other bug to keep separated...

[https://github.com/neozhu/CleanArchitectureWithBlazorServer/issues/673](WebAssembly & Auto Render mode)

Nice job @neozhu