首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Blazor,ASP.NET核心托管与ASP.NET核心中的服务器端

Blazor,ASP.NET核心托管与ASP.NET核心中的服务器端
EN

Stack Overflow用户
提问于 2018-11-16 13:44:45
回答 3查看 22.8K关注 0票数 29

我正在尝试blazor.Net,这是一个实验性的框架。

我已经在这个框架中开发了一个小项目,它很棒。

但是在11月14日Blazor语言服务的最近更新之后,我在模板选择上看到了两个选择。

首先是Blazor (ASP.NET核心托管)

第二个是Blazor ( ASP.NET核心中的服务器端)

没有关于它们之间区别的信息,

谁能告诉我这两个模板之间有什么区别,什么时候应该选择哪一个?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-16 13:50:25

在服务器端托管模型中,Blazor在服务器上从ASP.NET核心应用程序中执行。通过SignalR连接处理UI更新、事件处理和JavaScript调用。

在客户端模型中,Blazor应用程序、它的依赖项和.NET运行时被下载到浏览器,并且应用程序直接在浏览器UI线程上执行。所有UI更新和事件处理都发生在同一进程中。

利弊- read more here

服务器端模型被认为首先发布风险较小,所以我们将首先在asp.net 3.0中看到它。客户端稍后会出现。

警告:在我们得到支持的版本之前,不要在生产代码中使用。

票数 21
EN

Stack Overflow用户

发布于 2019-08-11 01:34:46

我认为被接受的答案没有回答像Mike-EEE在其中一条评论中提到的问题。

必要的信息可在以下链接中找到:https://www.telerik.com/blogs/a-breakdown-of-blazor-project-types

Blazor Full-Stack模板包含与客户端模板相同的项目结构,但增加了一些内容。就像客户端模板一样,服务器不会呈现超文本标记语言,所有文件都作为静态文件传递给客户端,包括.NET二进制文件。然而,不同之处在于增加了ASP.NET核心托管和Web,以及用于通用应用程序逻辑的共享项目。

该模板包括三个项目:客户端Blazor应用程序Blazor.Client、ASP.NET核心服务器应用程序Blazor.Server和通用应用程序逻辑.NET的shared Blazor.Shared标准项目。

的Blazor服务器端项目模板采用了一种显着不同的方法来交付Blazor应用程序并与浏览器进行交互。在使用服务器端配置时,Blazor通过将SignalR JavaScript应用程序部署到客户端,将浏览器用作“瘦客户端”。在服务器上,Blazor实现了一个通过web套接字与客户端进行通信的SignalR集线器。在服务器端托管模型中,Blazor在服务器上从ASP.NET核心应用程序中执行。通过SignalR连接处理UI更新、事件处理和JavaScript调用。在此配置中,不需要WebAssembly,Blazor在服务器的ASP.NET核心运行时上执行。所有UI更新都以diffs的形式发送,通过web套接字以二进制数据包的形式双向发送。对于用户来说,该应用程序无法与任何其他web应用程序区分开来。

票数 30
EN

Stack Overflow用户

发布于 2020-03-05 03:19:27

更新

从.Net core 3.0开始,Blazor提供了2种托管模式

  • Blazor WebAssembly应用程序
  • Blazor服务器应用程序

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核心应用程序中在服务器上执行。通过SignalR连接处理UI更新、事件处理和JavaScript调用。

注意: ASP.NET核心3.0支持Blazor服务器,并且Blazor WebAssembly是在微软构建2020期间从.NET核心3.1.4正式发布的

Blazor WebAssembly 3.2.0 now available

下面的article很容易解释这一点:

Blazor客户端:(模板选择中的第一个模板):

在这种托管模式中,应用程序是在浏览器中的客户端执行的。Blazor应用程序、它的依赖项和.NET运行时被下载到浏览器。应用程序直接在浏览器UI线程上执行。UI更新和事件处理发生在同一进程中。此执行模式在.Net核心的预览版中可用。

由于整个应用程序驻留在浏览器中,因此DOM更新将在浏览器itself.

  • Works中以脱机模式处理,因为没有适合于数据库连接的服务器交互involved.

  • Not,因为它需要将连接字符串发送到客户端,这可能存在潜在的安全风险。
  • 调试很困难,因为浏览器DevTools处于使用web程序集的初始阶段。
  • 初始页面负载可能很高,因为所有需要的DLL/程序集都将在浏览器中下载。不支持
  • IE11。

ASP.NET核心托管(模板选择中的第二个Blazor模板)

在此托管模式中,应用程序从ASP.NET核心应用程序中在服务器上执行。通过SignalR连接处理UI更新、事件处理和JavaScript调用。

  • DOM更新将在ASP.NET核心服务器中托管的服务器部分处理。
  • 不能在脱机模式下工作,因为各种操作(事件调度、DOM更新和数据库连接和操作)都需要信号连接。您可以使用Web来使用和执行数据库operations.
  • Debugging对于客户端来说是不可能的,因为浏览器assemblies.
  • Initial处于使用web API的初始阶段,基于应用程序端,页面负载可能很高,因为将在browser.
  • IE11下载所有所需的DevTools /程序集。不支持

服务器端(模板选择中的第三个Blazor模板)在此托管模式中,整个应用程序将驻留在ASP.NET核心服务器中,并且将从浏览器向服务器发出各种操作的请求。由于这不会向浏览器发送任何形式的动态链接库,因此它受到IE11等传统浏览器的支持。

  • DOM更新将在ASP.NET核心服务器中托管的服务器部分进行处理。由于各种操作(事件调度、DOM更新用于数据库连接和操作的connection.
  • Do )需要信号连接,因此SignalR用于不能在脱机模式下工作的etc).
  • Suitable。你可以使用Web来消费和做数据库operations.
  • Debugging是很好的。您可以使用默认的visual studio调试过程来调试您的application.
  • The。初始页面加载会很好。支持
  • IE11,因为它不会将WebAssembly发送到浏览器。
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53332097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档