gpt4 book ai didi

c# - 使用库来实现服务是否违背 SOA 原则?

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:59 25 4
gpt4 key购买 nike

我们正在使用 WCF 在 C# 中开发多个 Web 服务,但我们是新手。

因此,对于我们所阅读和学到的内容,这是我们的方法:

  • 我们有一个名为 CommonLibrary 的类库,其中有一些类将用于我们所有的服务(语言内容、连接的用户类型和所有服务的公共(public)对象)是为了返回)。
  • 我们有另一个名为 SecurityLibrary 的类库,它验证正在使用该方法的用户。
  • 目前我们有 2 个服务几乎完成了 90%,它们都使用 CommonLibrarySecurityLibrary

现在问题:

  • 这是一个糟糕的方法吗?
  • 我们是否通过在我们的每项服务中使用公共(public)/共享库来违反封装和自治的 SOA 原则?
  • 第三个人告诉我们在我们的每项服务上复制这些库的所有代码,以便我们拥有 100% 的自主服务,这是正确的方法吗?我认为很难维护并且表现出很多口是心非。对一个服务所做的任何更新都必须在其他服务上复制或合并...

最佳答案

不,这不是一个坏方法吗?

如果在您的服务中使用库,您还应该远离 .NET 库。我想知道你为什么认为一个服务进程只允许存在一个程序集。

此外,复制粘贴代码是一种非常非常糟糕的习惯。它被称为反设计模式。我复制了维护以及其中的所有错误。

共享库不会降低您的服务的“自主性”。我认为如果它们共享类型,可以使它们更加兼容。

好的服务只是一个流程,存在一个或多个(共享)程序集,具有定义明确的服务契约。本服务契约(Contract)决不允许被破坏。

顺便说一句:在我的回答中,我没有包括在 GAC 中共享程序集的问题。这是所有进程共有的特性或问题,而不仅仅是服务。

关于c# - 使用库来实现服务是否违背 SOA 原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28119387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com