【发布时间】: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/…