我编写了一个使用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

文章提供了更多细节。这是一个很大的话题,我一直想写一篇博文,附上一些提示。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top