Fra*_*nky 5 blazor blazor-client-side blazor-webassembly
我已经阅读了很多关于 Blazor 和不同托管模型的文章(实际上是 3 篇)。最容易理解的是纯客户端模型,它是一个在 webassembly 上运行的独立应用程序。没有问题。但是我仍然很难理解服务器模型和带有 ASP.NET Core Hosted(复选框)模型的 WebAssembly 模型之间的区别。
请帮我澄清一些事情。
1)对于服务器模型,浏览器使用signalR连接到服务器应用程序。它是 Visual Studio 中的一个应用程序。ASP.NET Core Hosted 模型将单个应用程序拆分为两个独立的应用程序(客户端和服务器)是否正确理解。客户端是一个 WebAssembly 应用程序,它仍然使用 SignalR 与服务器应用程序通信以获取事件和获取数据?
2)在客户端和服务器应用程序之间,除了服务器应用程序引用客户端应用程序之外,我没有看到它们有任何关系或类引用。我可以删除客户端应用程序引用,它仍然可以编译。但是,该站点是空的。那么 Server 应用程序如何知道从 Client 应用程序加载内容的位置呢?仅仅是因为引用了客户端应用程序吗?“勾搭”在哪里?我问这个的另一个原因是我已经开始开发一个使用服务器模型的网站,但是现在如果我想更改为使用 ASP.NET Core Host 的客户端模型,我该怎么做?
3) 在 Server 应用程序中,有 _Layout.cshtml 文件。在客户端应用程序中,wwwroot 下有 index.html。呈现的是 index.html。那么 _Layout.cshtml 是干什么用的呢?
4)我从示例VS模板中看到,Server应用程序用作API服务(天气预报)。在我的环境中,我已经有一个可以使用的专用 API 服务。那么我使用服务器应用程序做什么?托管客户端应用程序只是一个空的 .NET 核心应用程序吗?除了 API 调用之外,您如何使用服务器应用程序?
这是一个正确的理解[...]。客户端是一个 WebAssembly 应用程序,它仍然使用 SignalR 与服务器应用程序通信以获取事件和获取数据?
不。
Blazor 服务器:您的代码在服务器上运行,并使用 SignalR 推送更改。
Blazor Webassembly:在浏览器中独立运行。
Blazor Webassembly Hosted:在一个解决方案中包含 3 个项目。这只是一个方便的模板。Asp.NET Server 部分(不是 Blazor 应用)为客户端提供服务,并且是托管 API 的地方。
Blazor Wasm 可以使用 SignalR 作为额外功能,但不需要它运行。
在客户端和服务器应用程序之间,除了服务器应用程序引用客户端应用程序之外,我没有看到它们有任何关系或类引用。
正确的。服务器只需要该引用来查找 Wasm 应用程序的(输出)文件。您可以删除引用并使用路径字符串配置某些内容。这两个项目之间没有“技术”联系。它们运行在不同的平台上。
在服务器应用程序中,有 _Layout.cshtml 文件。... 那么 _Layout.cshtml 有什么用?
当您向项目添加授权时使用它。当您不使用授权时它就在那里的事实可能是一个疏忽。要查看它的实际效果,请创建一个启用了个人帐户的服务器或托管项目。登录等页面使用 _Layout.cshtml
我已经有一个可以使用的专用 API 服务。那么我使用服务器应用程序做什么?
那么你就不需要它了,你应该只使用简单的 WebAssembly 模板。您可以查看示例如何使用共享程序集 (DTO) 并为客户端提供服务。您可以在您的服务中使用其中的一部分,也可以不使用。
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |