SharePoint API 适用于 2016 内部部署和在线

SharePoint API for both 2016 On-Premise and Online

各位同事大家好,

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

我发现每个受支持的版本有两个不同的 API:

根据资料(https://dev.office.com/blogs/using-correct-csom-version-for-sharepoint-customizations) 如果您可以保证您的代码不会触及本地版本中未启用的属性,则理论上您也可以在本地使用 SharePoint Online CSOM。 我的用户故事似乎非常简单:文件和文件夹的 CRUD 操作,checkout/overrive/download/checkout。

我的问题:我能否使用 Microsoft.SharePointOnline.CSOM 在 OnPremise 和在线服务器上满足我的简单用户故事?我找不到任何信息或内部部署和在线之间的一些比较映射 table。

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

此致, SVG

根据以上评论,根据您的要求,您将能够对 OnPrem 和在线 CSOM 代码使用 Microsoft.SharePointOnline.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,您将需要另一种方法来检测是在线还是 OnPrem。

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