使用新的ServiceStack设计指南时,客户端预期的依赖关系是什么?

时间:2014-08-14 19:16:32

标签: servicestack

鉴于Visual Studio Extension for ServiceStack最精彩的发布,我想确保在使用ServiceStack创建服务后,当我创建一个客户端来使用我正在正确执行的服务时。我的意思是以松散耦合,高性能的方式。

假设我们检查了EmailContacts项目,所以我们都在同一页面上。电子邮件联系人项目引用了EmailContacts.ServiceInterface和EmailContacts.ServiceModel,这是可以理解的,因为这是服务。现在我想从另一个.NET项目中使用此服务,无论什么类型,控制台或Web都无关紧要。

所以我的问题是“在消费者应用程序中,我是否会添加对EmailContacts.ServiceInterface和EmailContacts.ServiceModel的引用并使用ServiceStack C#客户端库?”,我没有看到我在哪里也没有选择。

谢谢你, 斯蒂芬

1 个答案:

答案 0 :(得分:2)

将服务模型保存在自己的程序集中

having a well-defined Service Contract将您的DTO保存在他们自己独立的无冲突项目中的好处是,客户只需要参考您的服务DTO即可与ServiceStack&之一一起使用#39; s C#'s Generic Service Client可以拨打任何服务。

添加ServiceStack参考

如果客户端使用ServiceStack的Add ServiceStack Reference功能,客户端也可以避免引用任何服务器dll,这为客户端访问Web服务DTO提供了另一种方式。

客户不应该引用任何服务器实施项目

如果您发现客户需要除您的服务模型和ServiceStack的客户端库以外的任何参考,那么这就是代码味道,这表明您的服务模型不属于他们自己的依赖关系, impl-free .dll,它不应该依赖ServiceStack.Interfaces.dll以外的任何其他内容。