.Net托管客户端模型,是SharePoint2010推出的三种客户端模型“.NET托管”、“ECMAScript”、“Sliverlight”的一种,相比Script的客户端对象模型,VS里使用的.Net客户端对象模型感觉使用起来,方便了很多,至少编写的时候会有提示,编译的时候会有错误提示,然后,我们可以把相应的两个dll文件,和编写的程序放到一起,放在客户端执行,感觉还是有收获的。
下面介绍下.Net托管的使用,首先新建一个控制台程序,选择.Net3.5框架,然后在引用中添加我们需要的客户端引用,位于/ISAPI下的Microsoft.SharePoint.Client.dll和Microsoft.SharePoint.Client.Runtime.dll,最后,在头部using中引用我们需要的头文件,就可以编写我们的.Net托管客户端对象模型代码了。
谈谈自己对这个客户端对象模型的理解,感觉.Net的对象模型还是和SharePoint很贴近的,不仅仅是编写起来相对ECMAScript方便,而且掌握起来更加容易一点,尤其方便我们编写一些小工具,进行列表操作,不用非要在服务器端运行,还是有提高到。
我的例子依然是一个读取SharePoint2010列表数据的示例,有使用不当的地方,欢迎大家指正。
?? static void Main(string[] args)
????????? ?{
??????????? ClientContext context = new ClientContext("http://sharepoint2010:10086/");
??????????? Web web = context.Web;
??????????? List list = web.Lists.GetByTitle("MyFirstLists");
??????????? CamlQuery query = new CamlQuery();
??????????? query.ViewXml = @"
??????????? ListItemCollection listitem = list.GetItems(query);
??????????? context.Load(listitem);
??????????? context.Load(web);
??????????? context.Load(list);
??????????? context.ExecuteQuery();
??????????? String title = web.Title;
??????????? String listname = list.Title;
??????????? Console.WriteLine("网站名称:" + title);
??????????? Console.WriteLine("列表名称:"+listname);
??????????? Console.WriteLine("列表数据:");
??????????? foreach (ListItem list2 in listitem)
??????????? {
??????????????? Console.WriteLine(list2["Title"].ToString());
??????????? }
?????????? ?}
和ECMAScript客户端对象模型一样,程序在Load时,并没有请求数据,而是在ExecuteQuery的时候才真正的发起请求。
……