我目前正在开展的项目是广泛使用网络服务,并在.net 3.5中制作.现在我们要执行第二阶段,如果我们应该像以前那样使用WCF或Web服务,我们会感到困惑?还有什么新的可以是有用的,并提出.net 4.0关于Web服务或WCF.
解决方法
我们刚刚使用WCF而不是ASMX Web Services首次完成了一个全新的项目.我们对结果非常满意,但是要知道有一个陡峭的学习曲线.即使如此,我们对整体结果感到非常满意,并且知道这是微软正在向前迈进的一切基础,而且它完全值得痛苦的疣和所有.
我们从ASMX获得的快速收益:
1)对于内部(防火墙后)服务到服务调用,我们使用net:tcp binding,这比SOAP快得多
2)我们在同一个服务上启用了一个net:tcp端点和“web”端点,只有配置文件更新(没有更改代码)
3)我们可以创建支持RESTful Web服务的AJAX,只进行配置更改,并使用已经内置的DataContractJsonSerializer.否则,我们不得不编写一个HTTP Handler(ashx)并处理大部分的Json序列化并手动解析.
4)随着我们的网站需要扩展性能优化和稳定性,我们正在考虑转换为使用基于MSMQ的消息传递结构,它是异步和保证的,并且参与事务; WCF提供了一个MSMQ绑定,在我们的服务中需要很少的代码更改 – 只需参考更新并使用现有服务正确设置MSMQ(并为事务边界添加属性).
但要警告:真正投资于学习(购买蓝色O-Reily书,并通过它).在开发过程中有一些参数名称更改实际上不会中断服务引用,但会导致传入的空参数(内置版本偏移处理),要考虑的托管模型(Windows服务与IIS)以及实例化模型和FaultExceptions对所有人都很了解.我们没有进去,我们有一些痛苦.但是,我们向前迈进,对我们的学习和灵活性以及增长机会非常满意,我们还没有将其与ASMX结合在一起!