【问题标题】:Number of Operation Contract in WCFWCF 中的操作合同数
【发布时间】:2012-06-20 12:19:28
【问题描述】:

这可能是一个愚蠢的问题,但我想知道其他专业人士如何处理运营合同的清单数量。我正在开发 WCF Web 服务,所以我只有四个公开的操作合同。假设我在 IWcfService 中有 500 个操作合同。我应该只在下面的列表中列出所有 500 份合同,还是我可以对其进行分类以使事情更容易维护?

[ServiceContract]
public interface IWcfService
{
    [OperationContract]
    String CheckService();

    [OperationContract]
    String GetMessage();

    [OperationContract]
    svcEmployeeDetail GetEmployeeDetail(string userID, string userPW,string employeeID);

    [OperationContract]
    List<svcEmployeeWorkHistory> GetEmployeeWorkHistory(string userID, string userPW, string employeeID);
   }

【问题讨论】:

  • 一个设计良好的服务应该有 7 到 9 次服务调用——绝对不会比这个多得多。 500 种服务方法超越了善恶——这是我不想在未来维护甚至调用的服务!
  • @marc_s。这很好,但我仍然想知道大型应用程序如何可能只有 7 到 9 次服务调用?例如,假设我正在开发 HR 系统。我只会列出我需要的东西。我需要提供几个下拉列表作为搜索条件,例如“公司”、“部门”、“部门”和“支付类型”等等。我想我至少需要 150 个操作对比。我应该将它们分开为多个服务吗? 像下拉列表、选择、更新、插入和删除服务。让我知道最好的解决方案是什么。
  • 您应该按主题对服务进行分组 - 例如为Customer 提供一项服务——你会得到GetCustomer,也许是NewCustomer 等等——但通常不会超过少数服务方法。也许您可以将针对这些下拉列表的多个服务调用组合成一个调用 GetSearchCriteria 或类似的调用 - 一个会返回一组值的调用。更小、更专注的服务也更容易维护和更新!
  • @marc_s。我明白你的意思了。我只需要传递一个像“Company”或“Section”这样的值作为参数。然后我可以对所有下拉列表查询使用一个服务调用,因为它们都以相同的方式返回 ValueField 和 TextField。
  • 有类似的问题。这似乎是一个巨大的主题。 stackoverflow.com/questions/233571/…

标签: wcf visual-studio-2010


【解决方案1】:

如果您的服务有 500 种方法,我建议您需要基于对类似事物进行操作的方法创建一些新服务。

一项服务上的 500 种方法会让消费者感到困惑,并且会带来很大的维护问题,更不用说违反 Single Responsibility Principle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 2023-04-03
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多