Blazor Server 关于编码的最佳实践

问题描述 投票:0回答:2

我正在使用 Blazor Server 构建监控仪表板应用程序。

它包含 5 个页面,每个页面有 5 到 10 个组件要显示。

我希望用户像桌面应用程序一样在页面之间快速切换。

我想在刚开始的时候把每件事都做好。

我目前正在做的是;

  1. 我在每个页面的同一个 razor.cs 文件中编写所有内容。
  • 问:每一页差不多有1000行代码。我应该把它分开吗?如果是的话,怎么会这样?
  1. 通过在后台加载和更新所有 5 个页面,我希望用户像桌面应用程序一样在页面之间快速切换。
  • 问:我觉得这不是最好的方法,有吗?

asp.net-mvc web-applications blazor blazor-server-side
2个回答
0
投票

这只能是一个非常通用的答案,因为没有代码可以使用。

每页几乎包含 1000 行代码。我应该分开吗?

是的:疯狂的尺寸。了解单一职责原则。查看干净设计以获取有关如何隔离代码的指南。屏幕的每一位可能都应该是一个封装其自身逻辑的组件。

通过在后台加载和更新所有 5 个页面,我希望用户像桌面应用程序一样在页面之间快速切换。

如何?您无法“在后台”构建组件,然后按照您的意愿使用它们。

您需要从 UI [第一条评论] 中分离出数据。数据属于范围服务,可以在后台加载。只要手头有数据,UI 就会快速渲染。

如果您所做的只是查看数据,请使用记录而不是类来表示您的数据,并在使用 DbContext 时关闭对它们的跟踪。


0
投票

问:每一页差不多有1000行代码。我应该把它分开吗?如果是的话,怎么会这样?

不要处理 .razor 组件中的所有内容,而是创建一个服务类(查看依赖注入)并创建接受必要输入然后输出结果的方法。 Blazor 非常注重服务。查看清洁架构和我的推荐; DDD(领域驱动设计)。

通过在后台加载和更新所有 5 个页面,我希望用户像桌面应用程序一样在页面之间快速切换。

问:我觉得这不是最好的方法,有吗?

我不明白你所说的“在后台加载和更新所有5个页面”是什么意思。我只能猜测您希望在 5 个页面之间导航时快速加载页面?如果是这样,Blazor Server 的加载速度已经非常快了,因为它是通过 SignalR 连接完成的。

确保阅读 Blazor 生命周期,并将逻辑/服务调用放在正确的位置,以防止页面加载缓慢。

PS。在 .NET 8 中,我们将在一个项目中拥有带有 SSR、交互式服务器和交互式 WASM 的 Fullstack Blazor。这允许您通过交互式服务器机制立即显示网站,并在后台下载 WASM (WebAssembly),因此下次加载页面时,它会感觉像一个桌面应用程序。

如果您知道自己在做什么,这将为您提供更多机会并增强您的申请。现在就开始是个好主意。您现在就可以下载 .NET 8 RC2,.NET 8 的正式版本将于 11 月中旬发布。

© www.soinside.com 2019 - 2024. All rights reserved.