分享刚出炉的基于Blazor技术的Web应用开发框架
这是最近刚刚重构完成的项目,有点迫不及待的分享给大家,为了跟上技术升级把原来基于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应用, 这真的是一种非常酷的体验。
最后
如果你对这个项目感兴趣,可以给星吗。
分享刚出炉的基于Blazor技术的Web应用开发框架的更多相关文章
- 论一种基于JS技术的WEB前端动态生成框图的方法
前言 HTML是一种标记语言,由HTML的标签元素和文本编写的文档可被浏览器描述为一幅网页.通常情况下网页的实现是由HTML.CSS和Javascript三者结合完成的,HTML负责网页的结构,CSS ...
- 分享一个自己写的基于JQuery的一个Web背景切换的Demo
这个效果主要有两个特点: 1. 背景切换的渐变 2. 背景大小自适应 3. 背景自适应保持比例同时, 相对居中 js源码: (function ($) { $.fn.bgChange = functi ...
- 构建一个基于 Spring 的 RESTful Web Service
本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...
- 基于Html5的移动端APP开发框架
快速增长的APP应用软件市场,以及智能手机的普及,手机应用:Native(原生)APP快速占领了APP市场,成为了APP开发的主流,但其平台的不通用性,开发成本高,多版本开发等问题,一直困扰着专业AP ...
- 分享25个新鲜出炉的 Photoshop 高级教程
网络上众多优秀的 Photoshop 实例教程是提高 Photoshop 技能的最佳学习途径.今天,我向大家分享25个新鲜出炉的 Photoshop 高级教程,提高你的设计技巧,制作时尚的图片效果.这 ...
- 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.
刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.
- Onsen UI – 新鲜出炉的 PhoneGap 界面框架
Onsen UI 是一个基于元素自定义的 HTML5 UI 框架,用于构建你的移动前端.这个一个基于 Web 组件的概念的框架,让构建应用程序变得更加轻松.Onsen UI 专门针对 PhoneGap ...
- 腾讯技术分享:微信小程序音视频技术背后的故事
1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...
- 【旧文章搬运】PE感染逆向之修复(Serverx.exe专杀工具出炉手记)
原文发表于百度空间,2008-10-4看雪论坛发表地址:https://bbs.pediy.com/thread-73948.htm================================== ...
随机推荐
- Unity——火烧+水波纹效果(噪音图)
使用噪声图实现火烧和水波纹效果: 1.溶解 关闭裁剪,根据noise纹理取样,r通道和_BurnAmount比较,裁剪掉小于_BurnAmount的片元: 通过菲尼尔得到裁剪边缘,添加火焰燃烧的颜色进 ...
- Python中单下划线与双下划线用法总结
看mentor的脚本时,遇到self._item.callspec.getparam('')语句,理解起来比较困难,找到一篇文章,记录的比较详细,特别记录一下,以备复习. 附链接地址:http://w ...
- CentOS 7 连接不到网络解决方法(设置静态ip)
使用VM12创建虚拟机并安装CentOS 7,但是安装完成后发现连接不到网络. ping jd.com发现不通 因为在创建虚拟机的时候 我们选择的是NAT模式 这里给出NAT模式下对应的的解决方法: ...
- Vue - 问题集、知识点
通信:父组件 -> 子组件 父组件 <!--这里需要用v-bind来绑定data中的fontsize,否则传过去的只是一个字符串"fontsize"--> < ...
- 实验 1 :Mininet 源码安装和可视化拓扑
实验 1 : Mininet 源码安装和可视化拓扑工具 一 .实验目的 掌握 Mininet 的源码安装方法和 miniedit 可视化拓扑生成工具. 二 .实验任务 使用源码安装 Mininet 的 ...
- BootStrap 是什么东西?
Bootstrap Bootstrap 能很快速搭建一整套页面.是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目.所有设备都可以适配.所有项目都适用.1 ...
- Linux环境下的Docker的安装和部署、学习二
DockerFile体系结构(保留字指令) FROM:基础镜像,当前新镜像是基于哪个镜像的 MAINTAINER:镜像维护者的姓名和邮箱地址 RUN:容器构建时需要运行的命令 EXPOSE:当前容器对 ...
- 理解Cookie和Session机制,及其安全问题
大家常说"Cookie保存在客户端而Session保存在服务端",很多人看了有疑惑,明明Session就在Cookie中啊,为什么这么说?二者到底有啥区别? 一.Cookie 首先 ...
- dubbo接口方法重载且入参未显式指定序列化id导致ClassCastException分析
问题描述&模拟 线上登录接口,通过监控查看,有类型转换异常,具体报错如下图 此报错信息是dubbo consumer端显示,且登录大部分是正常,有少量部分会报类型转换异常,同事通过更换方法名+ ...
- Android 12(S) 图形显示系统 - 示例应用(二)
1 前言 为了更深刻的理解Android图形系统抽象的概念和BufferQueue的工作机制,这篇文章我们将从Native Level入手,基于Android图形系统API写作一个简单的图形处理小程序 ...