我正在寻找一种非常有效的方法来仅使用客户端对象模型在SharePoint网站上监听List
更改。我理解这个想法是多么倒退,但我试图避免在安装时将任何库推送到SharePoint服务器。一切都应该是掉落的,然后去当地的机器上。
我已经考虑过一个只循环定时器的类,并且从成功查询的最后一个日期开始查询ClientContext
,但这看起来非常低效。
我知道这是一个 客户端 对象模型,但有没有办法从服务器获取有关客户端更改的通知?
答案 0 :(得分:1)
我担心使用客户端对象模型是不可能的。如果您需要过于频繁地轮询用户体验过于缓慢的性能,则需要捕获服务器端的列表更改。使用向您的列表注册SPItemEventReceiver的功能部署解决方案。
我理解您不愿将服务器端代码推送到SP服务器场;没有它,您可以将讨论和解释保存到客户的管理员。但是,只有在服务器上运行时,某些任务才更有效,甚至可行。您可以考虑Sandbox Solutions来获得此类功能。它们通过友好的Web UI部署到SP ,而不是由服务器场管理员部署到,由网站集管理员部署到网站集。这需要更少的特权,更宽松的公司政策,以及更好地为您的客户所接受。您可以仅在网站集中开发,测试甚至使用您的解决方案,而不会影响整个服务器场。 Microsoft建议甚至可以在沙盒解决方案中使用尽可能多的功能来设计整个场范围的解决方案,只为场解决方案提供必要的最低限度。
如果无法将整个应用程序部署为沙盒解决方案,您可以将收集更改的沙盒解决方案与请求从网站集收集的数据的外部网站结合使用,或者在您使用仅客户端应用程序的情况下将你说的是。 (沙盒解决方案有一个很大的限制:您无法在网站外部中创建Web请求;您只能从外部访问网站集 。)
---费达