设为首页 收藏本站
查看: 617|回复: 0

[经验分享] [SharePoint 2010 的那些事儿-客户端对象模型]初识SharePoint客户端对象模型

[复制链接]

尚未签到

发表于 2015-9-24 13:04:29 | 显示全部楼层 |阅读模式
  一直以来SharePoint都为我们提供了丰富的服务器端对象模型,利用这些服务器端对象模型Developer们可以对MOSS做出各种扩展,并以此来实现最终用户的各种要求。但在今天各种RIA技术大行其道的时代,传统的Web应用程序有时已经不能很好的满足用户的需求了。在MOSS 2007时,要想开发一个可以连接到SharePoint的客户端应用程序我们只能选择利用SharePoint Web Service或是自己开发的Web Service来完成,个人感觉这种方法真的是很不方便。不过现在好了,利用SharePoint 2010 新加入的客户端对象模型可以使我们更简单的完成这一工作。简而言之,客户端对象模型拥有服务器端对象模型的大部分功能(注意,不是全部功能),不论是在传统的基于.Net Framework的客户端应用程序中,还是在WPF或Silverlight应用程序中,又或者是在JavaScript中,都可以通过客户端对象模型与SharePoint 2010进行交互。
  SharePoint 2010中的客户端对象模型可以分为两类:一类为托管客户端对象模型,主要被用于WinForm、WPF、Silverlight等技术开发的客户端应用程序中;另一类为ECMAScript对象模型,这一类则主要是在JavaScript等脚本语言中被使用。
  下表列出了服务器端、托管客户端、ECMAScript中的几个主要对象模型。其实不难看出不管是托管客户端对象模型还是ECMAScript对象模型,它们都与服务器端的对象模型具有极大的相似度,对于拥有SharePoint开发经验的Developer们来说,可以非常快速的掌握SharePoint客户端对象模型的使用。不过有相似就有不同,事物永远是两面的,客户端对象模型毕竟不是服务器端对象模型,它能实现的功能也仅仅是服务器端对象模型所能实现的功能的一个子集。例如,客户端对象模型就没有提供任何高于网站集范围的对象,与管理相关的对象模型也不会出现在客户端对象模型中。



  服务器端对象模型

  托管客户端对象模型

  ECMAScript对象模型

  Microsoft.SharePoint.SPContext

  Microsoft.SharePoint.Client.ClientContext

  SP.ClientContext

  Microsoft.SharePoint.SPSite

  Microsoft.SharePoint.Client.Site

  SP.Site

  Microsoft.SharePoint.SPWeb

  Microsoft.SharePoint.Client.Web

  SP.Web

  Microsoft.SharePoint.SPList

  Microsoft.SharePoint.Client.List

  SP.List

  Microsoft.SharePoint.SPListItem

  Microsoft.SharePoint.Client.ListItem

  SP.ListItem

  
  在使用客户端对象模型时一般分为四个主要步骤:




  • 使用ClientContext对象获得某个SharePoint站点的引用。ClientContext是客户端对象模型中的核心对象,在与某个SharePoint网站进行交互或是查询某个列表中的数据是,首先要做的就是实例化一个特定网站集的上下文对象。


    ClientContext clientContext = new ClientContext("http://win-hc230s1mtnr/sites/personal/sharepoint");

      或  

      需要注意的是在使用托管客户端对象模型的ClientContext构造函数时其参数必须为某个特定网站的绝对URL,而在使用ECMAScript对象模型时ClinetContext构造函数可以使用某个网站的相对地址或者不使用参数。
      



    var clientContext = new SP.ClientContext(' /sites/personal/sharepoint ');


  • 第二步就是指定我们要具体查询或操作的对象了。


    Web oWebsite = clientContext.Web;

      或



    this.oWebsite = clientContext.get_web();


  • 使用Load()方法或是LoadQuery()方法来定义一个查询以执行特定操作并返回特定对象或属性。


    clientContext.Load(oWebsite);

      或



    clientContext.load(oWebsite);


  • 在加载过查询后,对于托管客户端对象模型可以调用ExecuteQuery()或ExcuteQueryAsync()方法来执行查询,对于ECMAScript对象模型则只支持executeQueryAsync()异步查询的方法。需要注意的是只有在执行了查询操作之后,在第二步中所定义的那些对象才能使用,否则它们只能返回null。


    clientContext.ExecuteQuery();

      或



    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
  以上这四步就是使用客户端对象模型的基本步骤,在下一篇文章中将对如何使用客户端对象模型查询SharePoint数据进行更详尽的说明,希望各位看官可以继续关注小弟的博客,多谢~~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118250-1-1.html 上篇帖子: 使用SharePoint Designer定制开发专家库系统实例! 下篇帖子: 使用SharePoint 2007 Web Service上传文件到文档库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表