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

Best practice for where to place Services folder in C# Blazor Web Assembly (ASP.NET Core hosted) application?

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

我最初的想法是将Services 文件夹放在Shared 项目的根目录下。对于此类应用程序,Services 文件夹的放置位置是否有最佳实践,例如在服务器项目中?

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

感谢您的宝贵时间。

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

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