什么是Blazor
Blazor 是一个实验性的. NET web 框架, 使用 C# 和 HTML 在任何浏览器中不须要插件便可运行 WebAssembly 程序集。javascript
什么是WebAssembly
WebAssembly是一种新的适合于编译到Web的,可移植的,大小和加载时间高效的格式,是一种新的字节码格式。它的缩写是”.wasm”,.wasm 为文件名后缀,是一种新的底层安全的“二进制”语法。它被定义为“精简、加载时间短的格式和执行模型”,而且被设计为Web 多编程语言目标文件格式。 这意味着浏览器端的性能会获得极大提高,它也使得咱们可以实现一个底层构建模块的集合. 介绍1 介绍2html
为何要用.NET开发Web项目
- 稳定,成熟,高效 : .net standard, msbuild
- 快速,可扩展性,可靠 : .net core用于后端服务
- 现代语言 : C#
- 一流的开发工具: Visual studio
客户端web开发一直是JavaScript的惟一领域。WebAssembly准备经过向语言、框架和工具的完整生态系统开放web来改变这一点。Blazor是一个经过WebAssembly网络平台将.net引入网络的实验性项目。使用.net进行全栈Web开发,而且不须要插件或代码转换,可适用于全部现代浏览器,包括移动浏览器。能够理解为,这是一个C#语言的Vue, Angular, React。前端
Browser + Razor = Blazorjava
Blazor有哪些功能
- 组件化开发
- 支持路由
- 布局
- 依赖注入
- javascript互操做
- 自动构建
- 调试
- 发布
- 应用程序大小优化
- 在不支持WebAssembly的浏览器中回溯到asm.js
- 丰富的智能感知和工具
Blazor的两种工做方式 了解服务器端Blazor框架
1 客户端模式 将cs和cshtml编译打包成静态文件,可直接部署到web服务器,发布文件以下: git
2 服务端工做模式 服务端工做模式是要依赖dotnet,dotnet做为后端服务,经过SignalR与浏览器通信 github
Blazor将要实现的功能
- 优化运行时性能
- AOT编译到WebAssembly
- 优化下载大小
- 改进对.net standard的支持
- 实时重装(SignalR断开后须要刷新页面)
- 延迟加载应用程序区域
- 服务端渲染
- 安全
- 表单和验证
- 测试框架
- 跨平台工具(Blazor+Electron)
- 服务器端状态和链接管理
Blazor干货
Blazor 目前版本是0.6,目前更新比较频繁,可是已经能够用来开发后端应用了。这里有一套Blazor框架,能够实现Blazor服务端工做方式和客户端工做方式的切换,不须要修改任何代码, 前端用Razor实现SEO,后端用Blazor,当Blazor是以Server-Side工做时,直接后端依赖注入,当Blazor以Client-Side工做时,Host将Service 转换成 Controller 提供API, 前端经过HttpClient调用(防止业务dll泄漏,这个也是Blazor将要解决的安全问题) Blazor1 Blazor2web