SharePoint API:2003与2007
-
10-07-2019 - |
题
我编写了一个使用2007 API来遍历SharePoint对象模型的解决方案。现在我也需要支持SP 2003。这样做的最佳方式是什么?
是否可以/建议使用2007 api来访问2003 SharePoint Farm?
如果我使用2007 api,是否必须使用不推荐使用的类(例如)引用配置数据库,还是使用2007类,例如SPFarm?
或者我使用2007 API for SP 2007和2003 API for SP 2003 ...?问题是两者都使用相同的命名空间和类名。所以它可能变得混乱。 (除非我使用别名来引用不同的名称空间?)
解决方案
据我所知,2007 API和2003 API不兼容。是的,是吗?你需要实现它们。
我可以建议使用接口ISharePointAPI和两个实现SharePoint2007API和SharePoint2003API。这个实现甚至可以打包到不同的程序集,所以你不会有参考地狱:)。这也将保护您免受2010 API更改的影响,因为您需要实现SharePoint2010API ...
其他提示
接口(主要)在命名空间/类/成员USAGE中兼容,但您必须使用正确版本的API来获得正确版本的SharePoint。您还必须考虑到WSS2 / SPS2003默认使用.NET1.1。
我的解决方案是使用 MSBEE 和一些MSBUILD忍者会从你的源代码中吐出两个版本。
第一个目标是.NET2并引用Microsoft.SharePoint.dll v12(WSS3 / MOSS2007),第二个目标是.NET1.1,并引用Microsft.Sharepoint.dll v11(WSS2 / SPS2003)。
它非常适合设置,但在此之后效果很好。如果您有代码差异,可以使用条件编译: -
#if FX1_1
// WSS2/SPS2003 specific code
#else
// WSS3/MOSS2007 specific code
#endif
此文章提供了更多细节。这是一个很大的话题,我一直想写一篇博文,附上一些提示。