gpt4 book ai didi

asp.net-core - 如果我想要一个单独的 Web api,但仍然在服务器端运行,然后在客户端运行,应该选择哪个项目模板?

转载 作者:行者123 更新时间:2023-12-03 23:14:06 25 4
gpt4 key购买 nike

当使用 Blazor 创建 ASP.NET Core 项目时,这会提供一些有趣的架构决策。有 3 个不同的项目模板。
- 西装外套
- Blazor(ASP.NET Core 托管)
- Blazor(ASP.NET Core 中的服务器端)

问题 1
我试图了解“Blazor(ASP.NET Core 中的服务器端)”模板或构建项目的方法的目的或好处。为什么要让 .NET 核心应用程序提供另一个 .NET 核心应用程序?或者我错过了什么?
鉴于此处解释了不同的托管模型。
https://blazor.net/docs/host-and-deploy/hosting-models.html
这难道不能只是一个使用服务器端 Blazor 而不是 2 的项目吗?

问题 2
如果我正在查看如下图所示的体系结构,是否应该从“ASP.NET Core Hosted”模板开始,然后更改 .Client 项目以使用“服务器端”框架?这样,我仍然有一个可调用的 api,如果需要,可以从另一个应用程序访问它?或者我想我仍然可以使用“服务器端”模板,它会预先设置所有启动管道以使用服务器端托管模型启动客户端,并将其与将我自己的 API Controller 添加到 .Server 结合起来项目,将根据图表通过业务规则库调用。

问题 3
在某些时候,当工具/调试支持变得更好时,我可能希望将 .Client 应用程序切换为使用 webassembly。我不认为我建议的架构禁止这样做?我只想更改 .Server 应用程序中的启动代码,用 blazor.webassembly.js 和其他一些东西替换对 blazor.server.js 的引用,我应该很高兴。我不在基地吗?

架构注意事项:
- 客户端应用程序需要通过某些 CRUD 操作访问资源,因此它调用业务规则类库中的方法
- 业务规则库引用一个类库,其中包含代表各种域模型的“哑”POCO 类。调用 api
- API Controller /操作然后调用管理 Entity Framework DbContext 的数据库或存储库以获取/更新 Db 中的数据
- 业务规则库、数据库和 API 都引用了“模型”库。

enter image description here

最佳答案

问题一:服务器端渲染有许多好处,包括:

  • 由于 UI 更新是通过 SignalR 连接处理的,我们可以
    避免不必要的页面刷新。
  • 应用下载大小更小,初始应用加载速度更快。
    Blazor 组件可以充分利用服务器功能
    例如使用 .NET Core 兼容的 API。
  • 它还将支持现有的 .NET 工具,例如调试
    应用程序和 JIT 编译。
  • 由于服务器端 Blazor 在 native .NET Core 进程下运行,并且
    不在 Mono WebAssembly 下,它也受浏览器支持
    没有 WebAssembly 支持。

  • 是的,您可以拥有一个无需 api 即可访问数据库的服务器端应用程序。除非您重构,否则这反过来会将您的应用程序限制为服务器端渲染。

    问题2:是的,我相信只要您编写代码来支持客户端功能就应该没问题。例如从应用程序到 api 的 Http 请求。

    问题三:是的,您在代码中进行一些小的更改是正确的,您将能够同时支持服务器端和客户端。我要查询的一件事是您如何在客户端上编写代码,即如果您要使用标准 .net 库,则客户端可能不完全支持它们。此外,如果您首先制作了一个服务器端应用程序并制作了服务来调用以获取数据,例如访问数据库上下文,当切换到 Web 客户端配置时,您很可能需要发出 http Web 请求。

    可以在此处找到有关体验切换的其他信息: Link

    关于asp.net-core - 如果我想要一个单独的 Web api,但仍然在服务器端运行,然后在客户端运行,应该选择哪个项目模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044715/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com