SharePoint2010支持Client端的对象模型中,提供的对象主要包含在Microsoft.SharePoint.Client.dll和Microsoft.SharePoint.Client.Runtime.dll中。
在SharePoint Client端对象模型中,主要是ClientContext对象,这个对象是访问Client Object 的入口,例如:使用Client端对象模型在服务器端创建一个列表代码如下:
需要引用下面的命名空间
Using ClientCOM = Microsoft.SharePoint.Client;
Using Microsoft.SharePoint.Client;
ClientContext clientContext = new ClientContext(siteUrl);
Web webSite = clientContext.Web;
ListCreationInformation listInfo = new ListCreationInformation();
listInfo.Title = “My Links”;
listInfo.TemplateType =(int)ListTemplateType.Links;
List newList = webSite.Lists.Add(listInfo);
clientContext.ExecuteQuery();
这里需要注意的是,提交任何操作需要调用clientContext.ExecuteQuery();
来完成,这里Client端对象模型,可以完成Server端对象模型的常用操作。
在SharePoint2010中,将Linq集成进去,并且支持的非常好,在SharePoint中称为 SPLINQ。同时相对于MOSS2007多提供一个SPRelatedField类,用来添加List之间的关联,也就是说SharePoint2010中允许设置参照完成性约束。
SharePoint2010中Content的继承层次关系如下图所示:
WebPart
- webpart page 是带有WebPart Zone 的ASP.NET页面,WebPart Zone相当于WebPart的占位符(PlaceHolder),添加WebPart的时候,可以选择将Webpart添加到哪个位置。
- 每个WebPart页面都会有一个WebPart Manager对象,这个对象是用来Track每个WebPart添加的区域,并且保存和取得每个Webpart自定义和个性的数据。
在SharePoint中不直接使用ASP.NET的WebPartManager和WebPartZone,而是使用他自己的SPWebPartManager和SPWebPartZone两个对象完成以上功能,这两个对象是继承了ASP.NET中的两个对象而生成的。
在SharePoint2010中支持两种类型的WebPart,一个是System.Web.UI.WebControls.WebParts,另一种是Microsoft.SharePoint.WebPartPages.WebParts。
- 创建WebPart有两种方式
(1) 可视化的Webpart编写方式
这种方式会创建一个UserControl,然后Load这个Control添加到WebPart的控件中,显示出来完成相应的功能。但是这种WebPart只能部署到Farm级别,因为生成的UserControl.ascx必须部署到SharePoint的虚拟目录”ControlTemplates”下,也就是说这个目录下的控件对当前Farm下的所有的SharePoint站点是可用的。如果需要灵活实现的话,可以将WebPart部署和UserControl分离开,可以创建站点级别的WebPart,但是在WebPart中引用“ControlTemplates”下的控件,这样就可以不受部署限制了。
(2) 纯代码WebPart
这种也是比较常用的一种方式,其实就是编写一个WebControl在Server端运行,这个控件中的显示,完成依靠后台的代码来实现输出和布局。