【问题标题】:Would you create a WCF service for...?您会为...创建 WCF 服务吗?
【发布时间】:2023-04-10 03:30:01
【问题描述】:

这是一个设计问题。

如果您必须创建一个解决方案,其中前 5 个客户端仅在本地网络中查看 SQL Server(客户端可以读取具有相同架构的不同数据库),您是否会为数据库工作 (CRUD) 创建 WCF 服务或只是将数据访问层直接留在客户端?这使得客户端独立!

【问题讨论】:

    标签: wcf c#-3.0


    【解决方案1】:

    如果这是在 LAN 中并且永远不会在其他任何地方 - 不要在顶部添加不必要的 WCF 层。

    如果您预计有一天外部来源可能想要访问该数据 - 那么使用 WCF DataService 或类似的东西来公开数据可能是有意义的。

    WCF 和 Dataservices 总是添加一些额外的层、一些额外的处理,因此会降低一些性能。如果您只有 5 个本地用户(在您的公司 LAN 中) - 我认为确实没有令人信服的理由为此使用 WCF 服务。只需使用良好的数据访问技术(Linq-to-SQL、Entity Framework、NHibernate)并直接访问该数据库。

    在这种情况下,额外的 WCF 服务层不会给您带来任何好处 - 所以不要让事情变得不必要地复杂。

    【讨论】:

    • +1 好答案。详细说明:是否使用 WCF 的决定取决于所需的访问类型,而不是用户数量。
    • 我将使用 Linq-to-SQL 并且不会包含 WCF,甚至稍后还会更改场景,也许我会添加一个模式来选择您想与客户端一起使用的层。 ...感谢您的意见。
    【解决方案2】:

    我建议您将 WCF 服务契约接口和实现编写到单独的程序集中并由客户端直接使用。如果在稍后阶段您决定需要互操作性,您可以始终将程序集公开为 WCF 服务,对客户端产生轻微影响。

    【讨论】:

    • 好吧,如果这种情况很可能发生——如果不是,我会不遗余力(YAGNI 原则——你不需要它——所以现在不要这样做)。如果你真的需要,那就去做吧。
    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多