代码之家  ›  专栏  ›  技术社区  ›  Adrian

设计决策-WCF服务或共享类库(DLL)[已关闭]

  •  1
  • Adrian  · 技术社区  · 16 年前

    有关其他信息:

    我们预计将有大约3-7个不同的应用程序/客户端使用此消息队列系统。

    如果此服务不可用,则一些任务关键型的客户端/应用程序无法完成其工作。

    我对每个决定的利弊作了一些思考:

    WCF服务

    可以更新队列系统中的逻辑,而无需更新客户端

    欺骗:

    更难诊断/调试

    共享类库(DLL)

    赞成的意见:

    易于调试

    欺骗:

    如果有人能为解决方案提供更多的论据,那将是有帮助的!如果你认为什么是最好的方向,请告诉我!我非常感谢任何有助于我做出决定的意见。

    谢谢你抽出时间,

    阿德里安

    1 回复  |  直到 16 年前
        1
  •  3
  •   Mark Seemann    16 年前

    • 实现一个类库,它封装了您希望公开的所有功能。希望达到该控制级别的用户可以直接引用库。
    • 开发一个WCF服务,它只充当类库的远程门面。它将只公开类库并将其转换为DTO/消息,本身不包含任何逻辑。

    换句话说,类库是您的域模型,而服务只是该模型前面的一个薄门面。这是任何WCF服务在任何情况下都应该开发的方式。


    必须 选择一个或另一个,我会尝试将我自己的想法加入到你的想法中(我觉得这是最合理的)。

    即便如此,选择最佳模型不仅仅是计算每个赞成/反对部分中的子弹数量,因为每个子弹都有不同的重量。

    在不知道您的确切情况和要求的情况下,我仍然会考虑部署/版本化问题,它涉及直接使用类库来反对该策略。

    只要合同保持稳定,web服务接口将允许您独立地改变服务和每个客户机。这也可以通过类库实现,但更困难。

    可互操作的web服务界面还使您能够更好地增长和响应新的业务机会,因为客户端不受.NET应用程序的限制。您现在可能只有.NET应用程序,但您确定它将永远保持这种状态吗?

    另一方面,如果您决定使用类库,请确保每个客户机都使用抽象基类,因为这将为您提供在不破坏现有客户机的情况下更改实现的最灵活选项。

    根据你提供的信息,我认为这里没有明确的赢家。尽管增加了复杂性,我还是略微倾向于WCF,因为我认为它提供的灵活性为您更好地响应未知的变化提供了选择。

    推荐文章