任何人都可以指出我使用MVC RESTful API层在Silverlight中进行服务器端分页的最有效方法,或者在这一点上吗?
我有一个非常大的开销调用,可以假设返回成千上万的复杂对象,而这些对象本身又可以包含许多复杂的对象。 我希望使用分页将此限制为每次调用10次。
我正在查看Silverlight DataPager,虽然您可以使用RIA服务进行服务器端分页,但我不确定如何使用REST API调用。
我的目的是简单地修改我的API调用以接受要返回的记录的起始点和计数,但是虽然这适用于API /服务器端,但Silverlight的DataPager“PageCount”和其他项目都被读取 - 我只能手动设置那些了解我的数据集计数的人。
唯一的补救措施是继续我的方式但是创建我自己的UserControl并以某种方式覆盖该只读功能吗?
答案 0 :(得分:0)
Silverlight HTTP堆栈不适合REST。基于浏览器的请求的默认模式将请求转换为200或404.这意味着您必须使用客户端模式,以便您可以使用here等技术。您可以使用Client Stack - 但这也是有限的。
REST中的分页通常像链接列表一样实现。您的回复包含指向下一组对象的链接。
WCF RIA是一种生成客户端和服务器端代码的技术。我不明白它与REST的关系。使用REST或WCF RIA。
答案 1 :(得分:0)
我认为获取Silverlight数据的最佳方式是WCF Ria Services。它是基于WCF构建的一堆代码,但它允许您使用动态linq 过滤/排序/分页和分组客户端来查询数据源。看看http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx
至于可维护性/性能,我已经构建并共同开发了一个内部网站,该技术可以为大约300个类的数据模型为500多个当代用户提供服务,我认为通过普通WCF提供相同的功能花了更多的开发人员时间。但请注意,WCF RIA有点自以为是,你可能需要欺骗一些东西,但是,WCF RIA是高度可定制的,尤其是服务器端。
答案 2 :(得分:-1)
我只是让我们的UX设计人员创建了一个新的分页UI控件,我手动管理自己并使用自己的分页REST API。