-
P13_Blazor项目模板讲解ThreeBlazor2020_1_11.rar下载
资源介绍
P13_Blazor项目模板讲解ThreeBlazor2020_1_11.rar
Blazor与Flex和silverlight有点像,Flex和silverlight有一些大厂反对,不支持flex和silverlight
Blazor使用Web Assembly标准,Web Assembly是一种业界标准,所有浏览器都支持它,类似于Java字节码,各种语言都可以编译过去
WebAssembly和Blazor:解决了一个存在十年的老问题
WebAssembly 是一种新的客户端技术,可以在所有现代浏览器(包括移动浏览器)中实现近乎原生的性能,而且不需要插件。
许多语言,包括 C、C#、Go 和 Rust,都可以编译成面向基于栈的 WebAssembly 虚拟机的代码。
.NET 代码可以在任何地方运行,包括浏览器内部。
Blazor 是一个客户端库,它在 WebAssembly 上使用.NET 来支持借助 Razor 模板使用 C# 编写的单页应用程序。
Blazor 支持代码重用和将遗留代码移植到现代 Web 应用程序的能力。
在 2019 年 4 月中旬,微软悄悄地推出了一个年轻的框架,从“一切皆有可能”的实验阶段过渡到“我们致力于实现这一目标”的预览版。这个框架名为Blazor,因为它在浏览器中运行,并利用了一个名为 Razor 的模板系统或“视图引擎”,促成了这个.NET 开发人员几乎放弃了的场景。它不仅允许开发人员使用 C# 构建客户端代码(不需要 JavaScript),还允许开发人员在没有插件的情况下在浏览器中运行现有的.NET 标准 DLL。
https://blog.****.net/sD7O95O/article/details/91667930
通过Blazor使用C#开发SPA单页面应用程序(1) - 简介及特点
https://www.cnblogs.com/liuxtj/archive/2019/08/13/11344539.html
Blazor是一个新的Web UI框架,使用C#,Razor和HTML以及WebAssembly (W3C标准)。它允许您使用C#而不是JavaScript构建交互式Web UI。Blazor应用程序由使用C#,HTML和CSS实现的可重用Web UI组件组成。客户端和服务器代码都是用C#编写的,允许您共享代码和库。
在WebAssembly或服务器上运行
Blazor可以使用WebAssembly直接在浏览器中运行客户端C#代码。因为它是在WebAssembly上运行的真实.NET,所以您可以从应用程序的服务器端部分重用代码和库(客户端渲染)。
或者,Blazor可以在服务器上运行您的客户端逻辑。客户端UI事件使用SignalR(实时消息传递框架)发送回服务器。执行完成后,所需的UI更改将发送到客户端并合并到DOM中(服务器端渲染)。
Web Assembly (Wasm)
基于W3C开放标准,用于在浏览器中运行低级字节代码。使用此标准,我们可以直接在浏览器中运行服务器端语言(Rust,C ++,C#...)而不是Javascript。
还记得Java applet和Microsoft Silverlight吗,我们必须在浏览器中安装插件来运行Java和C#代码,但是WebAssembly提供了基本标准,现在我们不需要任何插件,他的二进制格式以.wasm文件表示,能够提供接近本机的性能。
Blazor
● 基于Component的编程模型,Blazor是用来写组件的
Blazor宿主模型 host model
● 客户端 Client Side
● 服务器端 Server Side
客户端宿主模型
Server Browser
Components -----+mono ------> Components
c# Assemblies/DLLs Javascript
将dll从服务器端传送到客户端的同时,客户端浏览器不懂这些c#写的dll,
因此还会传送一个特制版本的mono
Mono
● 也是一个开源的.NET Framework
● 它可以解释IL,中间语言
● 代码的IL是包含在.NET的Assembly里面
● 浏览器之所以可以执行mono,是因为它接收到的mono版本是使用
一种类似汇编(Assembly)的低级语言编写的。而浏览器可以理解
这种语言,它就是WebAssembly.
● 然后,Mono就会把你的Assembly里面的代码(包含着Components)
解析成为WebAssembly。这样就可以在浏览器里面运行了。
客户端托管模型具有以下几个优点
● 没有.NET服务器端依赖项。应用在下载到客户端之后完全正常运行。
● 完全利用客户端资源和功能。
● 工作从服务器卸载到客户端。
● 不需要ASP.NET Core Web服务器来托管应用程序。无服务器部署方案
可能(例如,通过CDN提供应用)
客户端托管的缺点
● 应用程序限制为浏览器的功能。
● 需要支持的客户端硬件和软件(例如:WebAssembly支持)
● 下载文件大小较大(包括mono,dll等),应用需要较长时间才能加载。
● .NET运行时和工具支持不太成熟。例如,.NET Standard支持和调试中
存在限制。
服务器端宿主模型
Server Browser
Components <---- SignalR ----> 渲染好的Components
DOM处理 Javascript互操作
SignalR是一个双工连接,实际上是有先后顺序的
服务器端托管模型具有以下几个优点
● 下载大小明显小于客户端应用,且应用加载速度更快。
● 应用充分利用服务器功能,包括使用任何与.NET Core兼容的Api。
● 服务器上的.NET Core用于运行应用程序,因此现有的.NET工具(如调试)
可按预期方式工作。
● 支持瘦客户端。例如,服务器端应用程序适用于不支持
WebAssembly的浏览器和资源限制的设备。
● 应用程序的.NET/C# 代码库(包括应用程序的组件代码)不会
提供给客户端。
服务器端托管的缺点
● 通常存在较高的延迟。每个用户交互都涉及网络跃点。
● 无脱机支持,如果客户端连接失败,应用将停止工作。
● 对于包含多个用户的应用而言,可伸缩性非常困难。服务器必须管理
多个客户端连接并处理客户端状态。
● 为应用提供服务需要ASP.NET Core服务器。不可能的无服务器部署
方案(例如,通过CDN为应用提供服务)。