在 C# Blazor Web Assembly(ASP.NET Core 托管)应用程序中放置 Services 文件夹的最佳实践?

Ew0*_*ior 3 asp.net-core blazor-webassembly

在 C# Blazor Web Assembly(ASP.NET Core 托管)应用程序中创建 Services 文件夹的最佳位置在哪里?Web Assembly(ASP.NET Core 托管)应用程序有 3 个项目:1. 客户端、2. 服务器和 3. 共享。

我最初的想法是将 Services 文件夹放在共享项目的根目录中。对于此类应用程序,是否存在应将“服务”文件夹放置在何处的最佳实践,例如可能在服务器项目中?

我创建了一个服务来读取 CSV 文件,该文件已在依赖注入服务中注册,以便更轻松地在整个项目中进行访问以及测试。我还将添加其他服务,因此很高兴知道其他人是否有通常添加这些服务的首选位置?

谢谢你的时间。

Fat*_*eni 5

了解发送到浏览器的内容以及服务器端保留的内容非常重要。Client 项目引用 Shared 项目(默认情况下),因此编译后,Client 项目和 Shared 项目都将发送到浏览器(作为 .dll)。Shared 项目也被 Server 项目引用,它就像一座“桥梁”,拥有一些常见的构造。话虽如此,我建议您执行以下操作:

  • 客户端项目 - 您放置所有客户端逻辑、剃刀组件、视图以及调用各种 API 端点(或者可能是 gRPC 调用)的代码。
  • 服务器项目 - 在这里您保存所有 API 端点和后端服务。
  • 共享项目 - 由于两者都会引用此项目,因此会将一份副本发送到浏览器,并将另一份保留为服务器应用程序的一部分。这是放置所有 Dto 模型的好地方。避免放置任何服务或任何与逻辑相关的构造。客户端和服务器之间的共同构造只是模型。拥有共享项目只是一种方便,您当然可以完全选择退出,并在两个地方复制您的模型。