![](/img/trans.png)
[英]Is Blazor WASM Asp.net core Hosted = Blazor server side?
[英]Blazor, ASP.NET Core Hosted vs Server Side in ASP.NET Core
我认为接受的答案并没有回答像其中一条评论中提到的 Mike-EEE 那样提出的问题。
可以在此链接下找到必要的信息: https : //www.telerik.com/blogs/a-breakdown-of-blazor-project-types
Blazor 全栈模板包含与客户端模板相同的项目结构,但添加了一些内容。 就像客户端模板一样,服务器不呈现 HTML,所有文件都作为静态文件(包括 .NET 二进制文件)传递给客户端。 然而,不同之处在于添加了 ASP.NET Core 托管和 Web API 以及用于常见应用程序逻辑的共享项目。
该模板包括三个项目:一个客户端 Blazor 应用程序 Blazor.Client、一个 ASP.NET Core 服务器应用程序 Blazor.Server 和一个用于常见应用程序逻辑 Blazor.Shared 的共享 .NET Standard 项目。
Blazor 服务器端项目模板对 Blazor 应用程序的交付方式和与浏览器的交互方式采用了截然不同的方法。 使用服务器端配置时,Blazor 通过将 SignalR JavaScript 应用程序部署到客户端,将浏览器用作“瘦客户端”。 在服务器上,Blazor 实现了一个 SignalR 集线器,通过 Web 套接字与客户端进行通信。 在服务器端托管模型中,Blazor 在服务器上从 ASP.NET Core 应用程序中执行。 UI 更新、事件处理和 JavaScript 调用通过 SignalR 连接进行处理。 在此配置中,不需要 WebAssembly 并且 Blazor 在服务器的 ASP.NET Core 运行时上执行。 所有 UI 更新都作为差异发送,双向作为二进制数据包通过 Web 套接字发送。 对于用户来说,该应用程序与任何其他 Web 应用程序没有区别。
在服务器端托管模型中,Blazor 在服务器上从 ASP.NET Core 应用程序中执行。 UI 更新、事件处理和 JavaScript 调用通过 SignalR 连接进行处理。
在客户端模型中,Blazor 应用程序、其依赖项和 .NET 运行时被下载到浏览器,应用程序直接在浏览器 UI 线程上执行。 所有 UI 更新和事件处理都发生在同一进程中。
利弊 - 在这里阅读更多。
服务器端模型被认为首先发布的风险较小,因此我们将首先使用 asp.net 3.0 看到它。 客户端稍后会来。
警告:在我们获得受支持的版本之前,请勿在生产代码中使用。
更新
从 .Net core 3.0 开始,Blazor 提供了 2 个托管模型
https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.1
Blazor WebAssembly 应用程序
Blazor 的主要托管模型在 WebAssembly 上的浏览器中运行客户端。 Blazor 应用程序、其依赖项和 .NET 运行时将下载到浏览器。 该应用程序直接在浏览器 UI 线程上执行。 UI 更新和事件处理发生在同一进程中。 应用程序的资产作为静态文件部署到能够向客户端提供静态内容的 Web 服务器或服务。
Blazor 服务器应用程序
使用 Blazor 服务器托管模型,应用在服务器上从 ASP.NET Core 应用内执行。 UI 更新、事件处理和 JavaScript 调用通过 SignalR 连接进行处理。
注意:ASP.NET Core 3.0 支持 Blazor Server,Blazor WebAssembly 在 Microsoft build 2020 期间从 .NET Core 3.1.4 正式发布
客户端:(模板选择中的第一个 Blazor 模板):
在此托管模式中,应用程序在浏览器中的客户端执行。 Blazor 应用程序、其依赖项和 .NET 运行时下载到浏览器。 该应用程序直接在浏览器 UI 线程上执行。 UI 更新和事件处理发生在同一进程中。 此执行模式可用于 .Net Core 的预览版。
ASP.NET Core 托管(模板选择中的第二个 Blazor 模板)
在此托管模式中,应用程序在服务器上从 ASP.NET Core 应用程序中执行。 UI 更新、事件处理和 JavaScript 调用通过 SignalR 连接进行处理。
服务器端(模板选择中的第三个 Blazor 模板)在此托管模式中,整个应用程序将驻留在 ASP.NET Core 服务器中,并且将从浏览器向服务器发出各种操作的请求。 由于这不会向浏览器发送任何形式的 DLL,因此 IE11 等传统浏览器都支持它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.