我是ASP.NET MVC的新手,我试图为使用Web服务作为其数据源的中小型应用程序实现最佳实践。该Web服务公开下面的方法来支持应用程序:MVC存储库模式/ Web服务SoC问题
- AuthenticateCustomer - 如果有效的电子邮件/密码
- GETCUSTOMER返回客户ID - 返回一个包含客户信息
- 等序列化对象
我的问题是,所有这些服务返回成功(布尔)和消息(字符串)值取决于操作的结果。如果发生错误,该消息包含描述性信息。我不确定Web服务的调用是否属于Repository层,但我认为能够通过Repository - > Service - > Controller层传递Success和Message值是非常重要的。我能想到这样做的唯一方法是要么弃置垃圾的输出变量的存储库的方法:
public int AuthenticateCustomer(string Email, string Password, out bool Success, out bool Message);
或建立某种形式的包装,它包含了预期的返回值(整数),并且成功和消息值。但是,每个Web服务方法都会返回不同的值,因此一个通用包装器将无法工作。另外,这些值需要通过服务层传递,并且似乎在存储库级别正在进行某种类型的验证。
就如何完成任何想法: 1.分离的关注(验证,通过Web服务的数据访问),而... (二)具有保持从Web服务收到的反馈意见,并通过它通过所有的能力视图的方式?
P.S. - 对于简洁的问题抱歉。用任何简短的方式解释都有点困难。
Martin, 您的回答是有道理的。正如我想到的那样,我的应用程序没有“拥有”数据,也没有责任将数据维护到持久性存储(Web服务处理该数据),因此不需要显式存储库。 感谢您的输入。 – Ariel 2010-08-29 18:29:35