在Atlas服务器端实现中推荐使用Web Service而不是Page Method
2006-04-03 18:15
302 查看
English Version: http://dflying.dflying.net/1/archive/107_prefer_web_services_to_page_methods_in_atlas_server_side_implementation.html
我们可以用两种方式把一个服务器段方法暴露给客户端Atlas调用:Web Service和Page Method。我推荐使用Web Service的方法。
所有人都应该非常重视的一点是Web Service和Page Method的工作原理以及工作过程有很大的分别。对于Atlas调用Web Service来说,当请求被发送时候,仅仅简单传给服务器方法的参数数据。而对于Atlas调用Page Method来说,传输的数据将会很多,将把表单中所有的域,包括ViewState,一起传送到服务器。在服务器端,它的工作方式也和普通的PostBack很相似:在这个Page Method被调用前,所有的服务器控件将得到它自身的状态。这也正是为什么Page Method中可以访问页面中控件状态的原因。
因此我的建议是只要在确实需要使用Page Method的时候(比如说需要在Page Method中访问页面中的控件状态)才使用Page Method,否则尽可能多地使用Web Service,这样可以使程序在性能上有所提高。使用Web Service的另一个好处是让程序层次架构明晰。
您可以在http://www.fiddlertool.com/fiddler/下载Fiddler,一个很好的HTTP watcher和debugger,用来监视客户端与服务器的实际HTTP通信内容。
这里是一段Web Method,只是简单的返回服务器的当前时间。
[WebMethod]
public DateTime GetCurrentDateTime()
{
return DateTime.Now;
}
让我们分别以Web Service和Page Method运行这一段Web Method,并用Fiddler观察实际运行时的HTTP通信内容:
Web Service
![](http://images.cnblogs.com/cnblogs_com/dflying/fiddler1.JPG)
Page Method
![](http://images.cnblogs.com/cnblogs_com/dflying/fiddler2.JPG)
可以看到以Web Service方式运行时Post回服务器的Content-Length为0,而以Page Method运行时候为1718。
我们可以用两种方式把一个服务器段方法暴露给客户端Atlas调用:Web Service和Page Method。我推荐使用Web Service的方法。
所有人都应该非常重视的一点是Web Service和Page Method的工作原理以及工作过程有很大的分别。对于Atlas调用Web Service来说,当请求被发送时候,仅仅简单传给服务器方法的参数数据。而对于Atlas调用Page Method来说,传输的数据将会很多,将把表单中所有的域,包括ViewState,一起传送到服务器。在服务器端,它的工作方式也和普通的PostBack很相似:在这个Page Method被调用前,所有的服务器控件将得到它自身的状态。这也正是为什么Page Method中可以访问页面中控件状态的原因。
因此我的建议是只要在确实需要使用Page Method的时候(比如说需要在Page Method中访问页面中的控件状态)才使用Page Method,否则尽可能多地使用Web Service,这样可以使程序在性能上有所提高。使用Web Service的另一个好处是让程序层次架构明晰。
您可以在http://www.fiddlertool.com/fiddler/下载Fiddler,一个很好的HTTP watcher和debugger,用来监视客户端与服务器的实际HTTP通信内容。
这里是一段Web Method,只是简单的返回服务器的当前时间。
[WebMethod]
public DateTime GetCurrentDateTime()
{
return DateTime.Now;
}
让我们分别以Web Service和Page Method运行这一段Web Method,并用Fiddler观察实际运行时的HTTP通信内容:
Web Service
Page Method
可以看到以Web Service方式运行时Post回服务器的Content-Length为0,而以Page Method运行时候为1718。
相关文章推荐
- 在Atlas服务器端实现中推荐使用Web Service而不是Page Method
- 推荐9款使用CSS3实现的超酷动画效果
- Flex与.NET互操作(十五):使用FluorineFx中的字节数组(ByteArray)实现图片上传 推荐
- 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(六)
- 使用Nginx反向代理来实现简单的负载均衡 推荐
- 使用XML库的方式,实现RPC通信的方法(推荐)
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(9):服务器端和客户端数据类型的自动转换:DataTable和DataSet
- mysql读写分离(使用Atlas实现)
- 使用FluorineFx Silverlight库实现Silverlight远程过程调用(RPC) 推荐
- 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(二)
- Atlas学习手记(4):使用AutoComplete Extender实现自动完成功能
- Neo4j:使用Ruby实现社交网站好友推荐
- 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能
- 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能
- 使用WSE实现Web Service安全
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- 使用Web Service上(服务器端访问)
- 机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源
- 推送通知iOS客户端编写实现及推送服务器端编写 推荐