这是最近刚刚重构完成的项目,有点迫不及待的分享给大家,为了跟上技术升级把原来基于MVC Razor Page开源项目 RazorPageCleanArchitecture 进行重构, 前端用Blazor-Server mode代替,后端架构和功能保持一致。具体内容可以访问GitHub了解.
Source Code Repo
Blazor Dashboard Application: https://github.com/neozhu/CleanArchitectureWithBlazorServer
Razor Page Application:https://github.com/neozhu/RazorPageCleanArchitecture
Code Generator Tools:https://github.com/neozhu/CleanArchitectureCodeGenerator
Live Demo
Live Demo: https://mudblazor-s.dotnet6.cn/
Video: https://www.youtube.com/watch?v=GyZJl_dG-Pg
Screenshots
为什么采用Blazor Server mode而不是用前后端分离的Webassembly mode开发
因为简单,采用前后端分离的架构,需要在Server端加WebApiController,Webassembly还需要生成Http Client,这里我觉得存在非常多的重复工作,而对于普通的小型项目我认为没有必要把时间花在这里,前后端分离反而会让架构和代码变得更加复杂。当然Blazor Server mode还有很多优势比如性能加载速度明显要比Webassembly要快,具体的对比可以从网上查到。
开发环境
- DotNet 6
- Microsoft Visual Studio 2022 (64-bit)
- Support Docker
依赖第三方库(重点)
- Entity Framework Core 6
- FluentValidation(https://github.com/FluentValidation/FluentValidation)
- MediatR(https://github.com/jbogard/MediatR)
- MudBlazor(https://mudblazor.com/)
技术
- Blazor Server
- MudBlazor UI Component
- MediatR
- Fluent Validation
主要功能
- 代码生成工具: https://github.com/neozhu/CleanArchitectureCodeGenerator
- Theme管理: 颜色主题的配置
- 多语言: 支持多语言切换
- 用户管理:注册,角色授权
- 角色管理:角色授权管理
- 菜单导航管理: comming soon
- 服务监控:comming soon
- 定时任务:comming soon
- 字典管理:comming soon
- 通知管理:comming soon
- 操作日志:comming soon
- 系统日志:comming soon
以上还有很多功能没有迁移过来,后面会慢慢更新。
How to
参考 application/features/Products 增删改查的代码,还包含导入导出功能和图片上传功能
开发体验
一句话用了Blazor开发Web应用程序再也不想回到用Jquery, DOM对象的操作了, 只用c#就能开发出与VUE或是Angular,React一样的SPA应用, 这真的是一种非常酷的体验。
最后
如果你对这个项目感兴趣,可以给星吗。