您的位置:首页 > 移动开发 > Objective-C

SharePoint 2010 Client Object Model-Client API

2013-08-22 18:25 621 查看
相信大家都知道SharePoint Server Object Model(SPFarm, SPSite等等),使用Server Object Model操作SharePoint数据,很方便, 但是有一个致命缺点-本地必须装SharePoint, 而 Client API没有这个限制(本地有没有都可以),下面给大家先讲一下Client API的原理,再说一下它的使用.

这里先说明一下:我们一般说的Client Object Model有三种实现方式: .net code(client api), JS(ECMAScript), Silverlight,今天我先给大家介绍一下 Client API

先看下面这个原理图:

1.


通过这个图,我们可以了解到,原来client api是通过调用部署在SharePoint Server上的Client.svc(SP安装目录C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\),这是个WCF
Service, 这个WCF service里面的实现代码是用Server api实现的, 明白这个流程了吧

下面介绍一下如果才能从无到有的使用client API,很简单,你只需要两个DLL(Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll 我会以附件的形式上传上去,大家都可以下载下来试试.)

有了这两个DLL后, 在VS里新建一个Console application, 引用这两个dll, 把下面的Code 粘过去就可以跑了

             string siteUrl = "yoururl";

            using (ClientContext cc = new ClientContext(siteUrl))

            {

                cc.Credentials = new NetworkCredential("username", "password", "domain");

                Web w = cc.Web;

                cc.Load(w, w=>w.Id, w=> w.title);

                cc.ExecuteQuery();

            }

有几点需要说明一下:

1.client API里面的类名和server api一一对应,Web->SPWeb, Site->SPSite.

2.Credentials, 你需要提供你登录这个SP站点的凭证

3.cc.Load(), 你可以选择只Load一个复杂对象的部分属性,这样可以提高client api的执行效率,但是需要注意,没有Load的属性不能察看

4.Load完需要加载的属性后,需要ExecuteQuery,才会真正把Request发送出去并返回结果(可以通过Fiddler察看Request,Reponse详细信息)

Have a try, 有问题请联系我
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SharePoint API