1

各位同事您好,

我开始编写一个 SharePoint 适配器,它应该适用于:支持 SharePoint 2016 On-Premise/ Online 和 365。到目前为止,我已经了解 Office365 使用 Online,因此它将支持的版本缩小到:SharePoint 2016 On-Premise 和 SharePoint在线的。

我为每个支持的版本找到了两个不同的 API:

根据信息(https://dev.office.com/blogs/using-correct-csom-version-for-sharepoint-customizations)如果您可以保证您的代码不会触及尚未启用的属性-本地版本,理论上您也可以将 SharePoint Online CSOM 与本地一起使用。我的用户故事似乎很简单:文件和文件夹的 CRUD 操作、结帐/覆盖/下载/结帐。

我的问题:我能否使用 Microsoft.SharePointOnline.CSOM 在 OnPremise 和在线服务器上满足我简单的用户故事?我无法在 On-Premise 和 Online 之间找到任何信息或一些比较映射表。

如果需要任何其他信息,请告诉我。

最好的问候, SVG

4

1 回答 1

2

根据上述评论,根据您的要求,您将能够同时使用Microsoft.SharePointOnline.CSOMOnPrem 和 Online CSOM 代码。因为它们都使用相同的Microsoft.SharePoint.Client命名空间。

一个关键区别是您如何填充ClientContext对象的凭据属性。下面的简单示例:

ClientContext cc = new ClientContext(siteUrl);

if (siteUrl.Contains("sharepoint.com"))
{
    // spo email e.g. alex@groveale.onmicrosoft.com
    cc.Credentials = new SharePointOnlineCredentials(username, password);
}
else
{
    // domain login e.g. "groveale/alex"
    cc.Credentials = new NetworkCredential(username, password);
}

如果您的 OnPrem URL 包含sharepoint.com您将需要另一种方法来检测是 Online 还是 OnPrem。

注意- 您需要确保客户端组件 SDK 在您的场中是最新的。否则,您可能会发现某些端点不可用。

于 2017-11-23T10:12:17.447 回答