我正在尝试使用blazor.Net,这是一个实验性框架。
我已经在此框架中开发了一个小项目,它很棒。
但是在11月14日Blazor语言服务的最新更新之后,我看到了模板选择中的两个选项
首先是Blazor(托管ASP.NET Core)
第二个是Blazor(ASP.NET Core中的服务器端)
没有关于它们之间差异的信息,
有人可以告诉我这两个模板有什么区别,什么时候应该选择哪个?
答案 0 :(得分:12)
我认为被接受的答案不能像评论之一中提到的Mike-EEE一样回答问题。
可以在此链接下找到必要的信息: https://www.telerik.com/blogs/a-breakdown-of-blazor-project-types
Blazor Full-Stack模板包含与客户端模板相同的项目结构,并增加了一些内容。就像客户端模板一样,服务器不会呈现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应用程序都没有区别。
答案 1 :(得分:10)
更新
从.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 Server应用
使用Blazor服务器托管模型,可以在ASP.NET Core应用程序中的服务器上执行该应用程序。 UI更新,事件处理和JavaScript调用通过SignalR连接进行处理。
注意:ASP.NET Core 3.0支持Blazor Server,并且Microsoft 2020年从.NET Core 3.1.4正式发布Blazor WebAssembly。
Blazor WebAssembly 3.2.0 now available
article在这里很容易解释:
客户端:(模板选择中的第一个Blazor模板):
在此托管模式下,应用程序在浏览器的客户端执行。 Blazor应用程序,其依存关系和.NET运行时已下载到浏览器。该应用程序直接在浏览器UI线程上执行。 UI更新和事件处理在同一过程中发生。 .Net Core的预览版提供了此执行模式。
托管了ASP.NET Core(模板选择中的第二个Blazor模板)
在此托管模式下,该应用程序在ASP.NET Core应用程序中的服务器上执行。 UI更新,事件处理和JavaScript调用通过SignalR连接进行处理。
服务器端(模板选择中的第三Blazor模板) 在这种托管模式下,整个应用程序将驻留在ASP.NET Core服务器中,并从浏览器到服务器进行各种操作的请求。由于此操作不会将任何形式的DLL发送到浏览器,因此IE11等旧版浏览器支持它。
答案 2 :(得分:7)
在服务器端托管模型中,Blazor在ASP.NET Core应用程序中的服务器上执行。 UI更新,事件处理和JavaScript调用通过SignalR连接进行处理。
在客户端模型中,Blazor应用程序,其依赖项和.NET运行时被下载到浏览器,并且该应用程序直接在浏览器UI线程上执行。所有UI更新和事件处理都在同一过程中进行。
优点和缺点-在此处了解更多信息:https://docs.microsoft.com/en-us/aspnet/core/razor-components/hosting-models?view=aspnetcore-3.0
服务器端模型发布的风险较小,因此我们将首先在asp.net 3.0中看到它。客户端会稍后再来。
警告:在获得受支持的版本之前,请勿在生产代码中使用
。