David Pallmann近期发布了关于WCF使用技巧的系列文章。这些技巧是按照设计模式来进行组织的,而这些设计模式则是根据开发WCF Provider和Consumer的方面来分组。
系列文章讨论了以下方面:
| 以下是引用片段: 服务接口设计 服务类设计 服务托管(Hosting) 配置 基础架构 检测功能(Instrumentation) 客户端 |
让服务接口和服务实现彼此分开,明确你的实现选择,尤其是实例化的模式。避免有状态的服务,要写线程安全的代码。
根据需要选择你的服务宿主(Host),而不是根据自己的喜好或者自己熟悉的模型。在任何情况下都不要依赖默认设置,通常情况下它们不适合实际的场景:
| 以下是引用片段: 学习适合的知识以使WCF为你所用。不要假设默认的就是最好的,在很多情况下并非如此。[……]WCF中有些默认的设置非常棒,但有些不是。它们中有一些虽然说是具有开箱即用的安全性能,但却不能让你做出有用的工作。 |
| 以下是引用片段: 服务目录 消息路由 消息转换 规则服务 工作量宿主 整合适配器 活动监视器 |
最后David指出你不应该依赖业已创建好的代理客户端。默认生成的没有实现错误处理,而这对健壮的客户端代码来说是必须的。
这些技巧显然不是全部,但无疑提出了很多有价值的参考,起到抛砖引玉的作用,也提供了一个WCF服务开发的最小清单。看上去最重要的地方是服务配置和服务探索结果。默认情况下,没有探索结果服务,而且元数据发布也是不起作用的。默认的配置对实际环境是不合适的,选用它们的原因不过是“以‘默认安全的方式’提供的名义”。