经过Blazor使用C#开发SPA单页面应用程序(1) - 简介及特色html
经过Blazor使用C#开发SPA单页面应用程序(2) - 开发环境前端
经过Blazor使用C#开发SPA单页面应用程序(3) - 基础知识程序员
经过Blazor使用C#开发SPA单页面应用程序(4) - Ant Design Button浏览器
2019年9月23——25日 .NET Core 3.0即将在.NET Conf上发布! .NET Core的发布及成熟重燃了.net程序员的热情和但愿,一些.net大咖也在积极的为推进.NET Core而不懈的努力。在此次.NET Core 3.0中一项新的技术也首次出如今人们的视野,这就是Blazor。提及Blazor也许许多人并不知晓,但这几年一片热火朝天的Angular,React,Vue等前端技术估计无人不知无人不晓。对Blazor就是Microsoft提供的使用C#构建SPA的技术,虽然他姗姗来迟,但带给了你们一个与Angular,React,Vue等框架彻底不同的体验、彻底不同的架构。安全
因为这是一个全新的技术,目前学习资料很是有限,我将本身学习到的内容记录汇总在这里以便查阅,也给感兴趣的童鞋提供参考。服务器
1. 简介架构
Blazor是一个新的Web UI框架,使用C#,Razor和HTML以及WebAssembly (W3C标准)。它容许您使用C#而不是JavaScript构建交互式Web UI。Blazor应用程序由使用C#,HTML和CSS实现的可重用Web UI组件组成。客户端和服务器代码都是用C#编写的,容许您共享代码和库。app
2. 在WebAssembly或服务器上运行框架
Blazor可使用WebAssembly直接在浏览器中运行客户端C#代码。由于它是在WebAssembly上运行的真实.NET,因此您能够从应用程序的服务器端部分重用代码和库(客户端渲染)。工具
或者,Blazor能够在服务器上运行您的客户端逻辑。客户端UI事件使用SignalR(实时消息传递框架)发送回服务器。执行完成后,所需的UI更改将发送到客户端并合并到DOM中(服务器端渲染)。
3. Web Assembly (Wasm)
基于W3C开放标准,用于在浏览器中运行低级字节代码。使用此标准,咱们能够直接在浏览器中运行服务器端语言(Rust,C ++,C#...)而不是Javascript。
还记得Java applet和Microsoft Silverlight吗,咱们必须在浏览器中安装插件来运行Java和C#代码,可是WebAssembly提供了基本标准,如今咱们不须要任何插件,他的二进制格式以.wasm文件表示,可以提供接近本机的性能。
4. 创建在开放的Web标准之上
Blazor使用开放的Web标准,没有插件或代码转换。Blazor适用于全部现代Web浏览器,包括移动浏览器。
在浏览器中运行的代码在与JavaScript框架相同的安全沙箱中执行。
浏览者 |
版本 |
Microsoft Edge |
当前 |
Mozilla Firefox |
当前 |
Google Chrome, 包括 Android |
当前 |
Safari, 包括 iOS |
当前 |
Microsoft Internet Explorer |
不支持 * |
* Microsoft Internet Explorer 不支持WebAssembly。
浏览者 |
版本 |
Microsoft Edge |
当前 |
Mozilla Firefox |
当前 |
Google Chrome, 包括 Android |
当前 |
Safari, 包括 iOS |
当前 |
Microsoft Internet Explorer |
11x17 * |
*须要额外的填充代码 (例如, 可经过Polyfill.io捆绑添加承诺)。
5. 单页面应用程序(SPA)
单页面应用程序(SPA)是一种构建在浏览器中单个页面上的Web应用程序,页面块能够动态呈现而无需呈现完整的页面。
Angular,React,Vue和许多其余语言为构建SPA提供了支持,但全部这些语言都构建在相同的Javascript语言之上。如今,Microsoft提供了使用C#和Razor页面构建SPA的基础,相似ASP.Net Core中的语法,因此它被称为Blazor。
Blazor是ASP.Net Core提供的新的Web框架,用于在浏览器中使用C#和WebAssembly标准构建SPA。
ASP.Net Core是一个在Linux,Mac或Windows操做系统上运行的开源Web框架。
6. JavaScript互操做
C#代码能够轻松调用JavaScript API和库。在C#中编写逻辑时,您能够继续使用存在于客户端UI中的大型JavaScript库生态系统。固然若是愿意您还能够从 JavaScript 调用 .NET 实例方法和静态方法。
7. 优势
8. 缺点