使用ASP.net核心托管模型了解Blazor程序集 [英] Understanding Blazor Assembly with ASP.net Core Hosted Model

查看:23
本文介绍了使用ASP.net核心托管模型了解Blazor程序集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经阅读了相当多关于Blazor和不同主机模型的文章(实际上有3篇)。最容易理解的是纯客户端模型,它是在WebAssembly上运行的独立应用程序。没问题。但是我仍然很难理解服务器模型和具有ASP.NET核心托管(复选框)模型的WebAssembly模型之间的区别。

请帮我澄清几件事。

1)对于服务器型号,浏览器使用SignalR连接到服务器应用程序。它是Visual Studio中的一个单一应用程序。ASP.NET核心托管模型将单个应用程序拆分成两个独立的应用程序(客户端和服务器),这是正确的理解吗?客户端是WebAssembly应用程序,它仍然使用SignalR与服务器应用程序通信以获取事件和获取数据?

2)在客户端和服务器应用程序之间,除了服务器应用程序引用客户端应用程序之外,我看不到它们有任何关系或类引用。我可以删除客户端应用程序引用,但它仍然可以编译。然而,该网站是空的。那么,服务器应用程序如何知道从客户端应用程序加载内容的位置呢?只是因为客户端应用程序被引用了吗?"勾搭"在哪里?我问这个问题的另一个原因是我已经开始开发一个使用服务器模型的网站,但是现在如果我想使用ASP.NET Core Host更改为客户端模型,我该怎么做呢?

3)在服务器应用程序中,有_Layout.cshtml文件。在客户端应用程序中,wwwroot下有index.html。呈现的是index.html。那么_Layout.cshtml有什么用呢?

4)我从示例VS模板中看到,Server应用程序用作API服务(天气预报)。在我的环境中,我已经有了可以使用的专用API服务。那么,我使用服务器应用程序做什么呢?它只是一个空的.NET核心应用程序来托管客户端应用程序吗?如何在API调用之外使用服务器应用?

推荐答案

这是不是正确的理解[.]。客户端是WebAssembly应用程序,它仍然使用SignalR与服务器应用程序通信以获取事件和获取数据?

没有。

Blazor服务器:您的代码在服务器上运行,并使用SignalR推送更改。
Blazor Web程序集:在浏览器中独立运行。
Blazor WebAssembly托管:在一个解决方案中包含3个项目。这只是一个方便的模板。ASP.NET服务器部件(不是Blazor应用程序)提供客户端,并且是承载API的位置。

Blazor Wasm可以使用SignalR作为额外功能,但它不需要SignalR即可运行。

在客户端和服务器应用程序之间,除了服务器应用程序引用客户端应用程序之外,我看不到它们有任何关系或类引用。

正确。服务器只需要该引用即可找到Wasm应用程序的(输出)文件。您可以删除引用并使用路径字符串配置某些内容。这两个项目之间没有"技术"联系。它们运行在不同的平台上。

在服务器应用程序中,有_Layout.cshtml文件。..。那么_Layout.cshtml有什么用呢?

将授权添加到项目时使用。事实上,当您不使用授权时,它就在那里,这可能是一个疏忽。若要查看实际操作,请创建启用了单个帐户的服务器或托管项目。登录ETC页面使用_Layout.cshtml

我已经有了可以使用的专用API服务。那么我使用服务器应用程序做什么呢?

那么您就不需要它了,您应该只使用简单的WebAssembly模板。您可以查看示例如何使用共享程序集(DTO)并为客户端提供服务。您可以在您的服务中使用其中的一部分,也可以不使用。

这篇关于使用ASP.net核心托管模型了解Blazor程序集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆