Sharepoint2010数据访问的方式
Sharepoint2010提供了多种数据访问及自定义开发的方式,这些方式包括:
1. 服务器端对象模型
2. LINQ to SharePoint
3. Web Service
4. 客户端对象模型
5. ADO.NET Data Service (REST协议)
6. ADO.NET Data Service (强类型)
关于这些方式的详细介绍可以参考
《SharePoint 2010中几种数据访问方式的原理和优劣》
http://www.cnblogs.com/erucy/archive/2012/04/27/2472889.html
在开发之前需要根据具体的需求和环境,选择合适的开发方式,这一点至关重要,上面的文章已经比较详细,这里仅指出比较重要的几点:
首先需要搞清楚,开发的代码需要运行在Sharepoint Server进程内还是进程外,由于服务器端对象模型和托管客户端对象模型很相似,有时候会忽略了二者的本质区别。
客户端对象模型包括托管客户端对象模型、Silverlight客户端模型和jscript对象模型,它们是在不同环境下的相互独立的三套对象模型,但在服务器端使用的都是Client.svc服务。由于客户端模型是基于WCF的,理论上讲,完全可以开发出更多的客户端对象模型,只不过比较复杂而已。
关于Silverlight客户端模型和jscript对象模型,有一点比较重要的就是:这两套对象模型虽然都是运行在客户端的浏览器里,但是仅能用于Sharepoint网站,普通的非Sharepoint网站是不能使用的,这里面涉及到客户端与服务器端路径运算和通信的问题,暂时没有发现变通的方法。
另外一点就是客户端对象模型是Sharepoint2010版本的新特性,针对MOSS2007,客户端开发则很不一样,没有Silverlight客户端模型和jscript对象模型。
对于非.NET环境或非Sharepoint网站,如果需要访问Sharepoint数据,大多会选择Web Service方式,因其语言无关性,大部分环境都可使用。现在的很多SOAP方案都包含WSDL2Code的生成工具,比较方便。不过,如果希望在普通的网站里面通过javascript访问Sharepoint数据就比较麻烦,这里推荐一个开源项目jquery.SPServices,这是一个完全基于Sharepoint的WebService的客户端脚本库,项目在http://spservices.codeplex.com/下载。
Sharepoint的Web Service文件位于C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI 目录,关于Web Service的说明可参考以下MSDN:
http://msdn.microsoft.com/en-us/library/dd878586(v=office.14).aspx