【问题标题】:Servicestack backend for diferent clients适用于不同客户端的 Servicestack 后端
【发布时间】:2019-09-30 22:40:17
【问题描述】:

我正在开发一个应用程序作为不同客户的后端。一些客户端是 Web 应用程序 (Vue),一些是移动客户端,一些是 Winforms 应用程序。为了保持干燥和整洁,我想使用 Servicestack .Net 核心为所有人提供服务。我对此应用的架构有一些问题:

一个是在文档中说建议使用 POCO 作为 DTO,但为了在所有应用程序中重用这些 POCO,它们应该位于单独的 dll 中,这将与所有 DTO 的要求相冲突应该与服务在同一个命名空间中。

组织这样一个项目的最佳方式是什么?

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    如果您有不同的应用程序托管相同的 ServiceStack 服务,那么它们都可以共享相同的ServiceModel.dll

    您可以在 Hello Mobile Project 中找到一个示例,其中包含多个不同的 ServiceStack 主机共享相同公共库的示例,包括在 .NET Core and .NET Framework Apps via multi-targeting 之间。

    【讨论】:

    • 我想我的问题不是很清楚。我的应用程序将主要是一个 Winforms(或 WPF)应用程序,它将使用 OrmLite 将其 POCO 持久化到数据库中。其中一些 POCO 必须通过服务暴露给其他应用程序(移动)。我不能将这些 POCO 用作 DTO,因为它们必须在 ServiceModel.dll 中,所以我需要为此创建其他 DTO 并对其进行转换?
    • @HMihail 我还是不明白为什么不能在 ServiceModel.dll 中重用 DTO? ServiceModel.dll 应该是无 dep/impl 的,因此您应该能够在任何项目中引用它,否则如果您有理由将其分开,您可以使用该类的本地副本,built-in Auto Mapping 可以帮助复制属性。
    • 这是我的困惑,我想我现在已经清除了。感谢您的帮助!
    • 如何注释 POCO(如 Autoincrement 等)以保持 Servicemodel dep/impl 免费?
    • @HMihail 所有声明性属性都在 dep/impl-free ServiceStack.Interfaces.dll 合约程序集中定义,这是 ServiceModel projects 应该引用的唯一依赖项。
    猜你喜欢
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2019-08-21
    相关资源
    最近更新 更多