.NET Web服务开发方法

时间:2020-03-06 14:58:13  来源:igfitidea点击:

我打算为使用.Net和SQLServer开发的应用程序编写Web服务aka api。 .Net通过创建asmx文件提供了一种创建Web服务的简单方法。但是我需要知道它的最佳设计方式,或者在.net中创建Web服务的最佳实践是什么,或者是一些指向优秀文章的指针,因为这是我在Web服务编程中的第一次经验。尽管SF有很多关于API最佳实践的参考(非常好),但我没有找到太多有关.net Web服务的信息。

更新:在dariom的回复之后,我想提一下我正在.net 2.0中进行操作

解决方案

要记住所有的最佳实践并不容易,但这是我的建议:

  • 避免使用不容易序列化或者与WS标准不兼容的数据类型(因此,我们将无法使用其他语言使用服务)。最值得注意的是RecordSet和其他仅MS的引用类型。
  • 请注意,静态Web服务(具有[webmethod]的静态方法)与非静态(成员函数)之间存在差异。这可能会影响性能和资源使用。
  • 设计在Intranet内运行的.NET Web服务与为Internet设计的Web服务之间是有区别的。第二个应该更简单,因为在线上传递的XML数据应该小得多。
  • 我猜该Web服务将部署在IIS服务器上。请注意,在Intranet内部和Internet上运行时,身份验证存在差异。我们可能需要对服务使用模拟功能,才能执行特定任务。

我想还有很多,最好找一些讨论该问题的文档。

如果我们使用的是.NET 3.0或者更高版本,建议我们考虑使用WCF实施服务。

学习曲线更加陡峭,但是我们将从WCF提供的灵活性和功能中受益。使用WCF,我们可以使服务与ASMX服务(常规.NET Web服务)兼容,以便其他应用程序和其他语言可以像常规.NET Web服务一样使用该服务。

有很多资源可以入门。尝试使用MSDN,学习WCF和对WCF服务进行编程。

这里有一本有关.NET ASMX Web服务的设计模式的书:http://msdn.microsoft.com/zh-cn/library/ms978729.aspx

它描述了以下设计模式:

实体聚合
流程整合
门户整合
资料整合
功能整合
面向服务的集成
演示整合
消息代理
消息总线
发布/订阅
管道和过滤器
闸道

我们正在从XSD模式首先(合同第一)开始开发Web服务。
另外,我们正在使用Thinktectures WSCF Web服务合同优先工具来生成Web服务接口。在过去的两年中,它对我们的工作相当不错。

他们还很好地指导了如何使用该工具。
http://www.thinktecture.com/resourcearchive/tools-and-software/wscf/wscf-walkthrough