December 11th, 2015

New SharePoint CSOM version released for SharePoint Online

Vesa Juvonen
Principal Program Manager

We are happy to announce availability of new SharePoint CSOM version targeted for the Office 365 or more specifically for SharePoint Online. This updated CSOM release contains numerous highly requested new capabilities which will enable new business scenarios and capabilities when you are developing solutions for SharePoint Online. You can find the latest CSOM package for SharePoint online from the NuGet gallery with an id of ‘Microsoft.SharePointOnline.CSOM’. We will also update the redistributable package in upcoming weeks, but you can already right now start using some of these new capabilities in your solutions.

Version of the released CSOM package is 16.1.4727.1200. Old version of the NuGet has also not been removed, so that your existing solutions will continue working without issues and you can decide when the new version is taken into use. We will continue updating the CSOM NuGet package much more frequently in the future to ensure that you get latest capabilities available faster for your custom solutions.

Updated on 18th of Dec 2015 – Notice that even though the Nuget version is increased to 16.1.4727.1200, actual assembly version of the released assemblies is 16.1.0.0. Correct version can be confirmed from the file version attribute fo the assemblies, which is 16.1.4727.1200. Sorry for the confusion this might cause.

Nuget Package Manager: CSOMUpdate

We are also working on getting Office 365 Development Patterns and Practices (PnP) samples and NuGet packges updated with this latest NuGet version. You will see updates on the PnP repositories and in the PnP Core component during upcoming days.

Notice. If you like to operate with SharePoint Online rather using PowerShell, also the SharePoint Online Management Shell has been updated at Microsoft download site to match the 16.0.4727.1200 version.

Key updates with this release

Here’s selected list of key updates in this release. Many of these have been requested for a quite a while, so it’s great to have the update finally out with some of the most requested capabilities at the SP Dev User Voice. We’ll obviously also update the user voice entries accordingly with the latest release.  It’s great to

  • User profile bulk update API – for faster updates and synchronization of attributes with SharePoint online and any other system
  • Declare items as records – Exposes in the in-place records management capability for remote usage
  • Configure information rights management settings of the sites and files
  • Read content of the older versions of documents
  • Change tracking APIs exposed from item, folder, site and site collection level
  • Access items in the recycle bin
  • Update request access email for the site related on the access request capability
  • WebPart ZoneId property
  • Document set export and import capability
  • Additional tenant level settings exposed

New properties and methods cross assemblies

Here’s a raw list of all the new properties and methods in the assemblies. Notice that some of these properties and methods are meant to be used only internally, even though they are exposed in the CSOM API. This means that their usage models might not be completely straight forward and results could be unexpected. Below list contains main changes in the particular assemblies. We have filtered out those elements which are not relevant or change is minimal. MSDN library for the CSOM assemblies will be updated to match the latest version at some point. We’ve included some level of description for some of the mentioned properties where needed.

Notice. some of the capabilities which are already exposed in this CSOM release are not yet available on the server side in your SharePoint Online tenant. This is due the release model used at the SharePoint online. All new capabilities are gradually deployed cross the world in stages. Even if you are using the first release option in your tenant, some of the these capabilities are not yet available, but will be gradually released and distributed cross the world.

Microsoft.SharePoint.Client

There is a one breaking change on this assembly, which can cause some headache for your public method Microsoft.SharePoint.Client.RegionalSettings.GetGlobalTimeZones() is no longer available through CSOM. If you are using this method in your code, you should use the older version of the CSOM and change your code before moving to this newer version.

  • public property Microsoft.SharePoint.Client.ChangeItem.Editor
  • public property Microsoft.SharePoint.Client.ChangeItem.EditorEmailHint
  • public property Microsoft.SharePoint.Client.ChangeItem.ServerRelativeUrl
  • public property Microsoft.SharePoint.Client.ChangeItem.SharedByUser
  • public property Microsoft.SharePoint.Client.ChangeItem.SharedWithUsers
  • public property Microsoft.SharePoint.Client.ChangeQuery.FetchLimit
  • public property Microsoft.SharePoint.Client.ChangeQuery.LatestFirst
  • public property Microsoft.SharePoint.Client.ChangeQuery.RecursiveAll

 

  • public class Microsoft.SharePoint.Client.EffectiveInformationRightsManagementSettings

 

  • public class Microsoft.SharePoint.Client.EncryptionOption

 

  • public method Microsoft.SharePoint.Client.File.GetWOPIFrameUrl
  • public method Microsoft.SharePoint.Client.File.Update
  • public property Microsoft.SharePoint.Client.File.EffectiveInformationRightsManagementSettings
  • public property Microsoft.SharePoint.Client.File.InformationRightsManagementSettings
  • public property Microsoft.SharePoint.Client.File.IrmEnabled
  • public property Microsoft.SharePoint.Client.File.ListId
  • public property Microsoft.SharePoint.Client.File.Properties
  • public property Microsoft.SharePoint.Client.File.SiteId
  • public property Microsoft.SharePoint.Client.File.WebId
  • public property Microsoft.SharePoint.Client.File.VersionEvents

 

  • public method Microsoft.SharePoint.Client.FileVersion.OpenBinaryStream
  • public class Microsoft.SharePoint.Client.FileVersionEvent
  • public class Microsoft.SharePoint.Client.FileVersionEventCollection
  • public enum Microsoft.SharePoint.Client.FileVersionEventType

 

  • public method Microsoft.SharePoint.Client.Folder.GetListItemChanges
  • public property Microsoft.SharePoint.Client.Folder.StorageMetrics

 

  • public class Microsoft.SharePoint.Client.InformationRightsManagementFileSettings
  • public property Microsoft.SharePoint.Client.InformationRightsManagementSettings.TemplateId

 

  • public method Microsoft.SharePoint.Client.List.CreateDocumentWithDefaultName
  • public method Microsoft.SharePoint.Client.List.RenderExtendedListFormData
  • public property Microsoft.SharePoint.Client.List.CurrentChangeToken

 

  • public method Microsoft.SharePoint.Client.ListItem.GetChanges

 

  • public property Microsoft.SharePoint.Client.ObjectSharingInformation.SharingLinks
  • public property Microsoft.SharePoint.Client.ObjectSharingInformationUser.IsMemberOfGroup
  • public property Microsoft.SharePoint.Client.ObjectSharingSettings.CanCurrentUserManageOrganizationReadonlyLink
  • public property Microsoft.SharePoint.Client.ObjectSharingSettings.CanCurrentUserManageOrganizationReadWriteLink
  • public property Microsoft.SharePoint.Client.ObjectSharingSettings.CanCurrentUserRetrieveOrganizationReadonlyLink
  • public property Microsoft.SharePoint.Client.ObjectSharingSettings.CanCurrentUserRetrieveOrganizationReadWriteLink
  • public property Microsoft.SharePoint.Client.ObjectSharingSettings.RequiredAnonymousLinkExpirationInDays
  • public property Microsoft.SharePoint.Client.ObjectSharingSettings.SharingPermissions

 

  • public property Microsoft.SharePoint.Client.RecycleBinItem.AuthorEmail
  • public property Microsoft.SharePoint.Client.RecycleBinItem.AuthorName
  • public property Microsoft.SharePoint.Client.RecycleBinItem.DeletedByEmail
  • public property Microsoft.SharePoint.Client.RecycleBinItem.DeletedByName
  • public property Microsoft.SharePoint.Client.RecycleBinItem.DeletedDateLocalFormatted

 

  • public method Microsoft.SharePoint.Client.RegionalSettings.GetGlobalTimeZones – REMOVED

 

  • public method Microsoft.SharePoint.Client.RoleDefinitionCollection.RecreateMissingDefaultRoleDefinitions
    • Recreates missing default role definitions. Requires that the SPWeb has unique role definitions.
  • public method Microsoft.SharePoint.Client.ServerSettings.IsSharePointOnline

 

  • public class Microsoft.SharePoint.Client.SharedWithUser
  • public class Microsoft.SharePoint.Client.SharedWithUserCollection
  • public class Microsoft.SharePoint.Client.SharingLinkInfo
  • public class Microsoft.SharePoint.Client.SharingPermissionInformation
  • public class Microsoft.SharePoint.Client.SharingPermissionInformationCollection
  • public enum Microsoft.SharePoint.Client.SharingLinkKind
  • public enum Microsoft.SharePoint.Client.SharingPermissionKind

 

  • public method Microsoft.SharePoint.Client.Site.CreateMigrationJobEncrypted
  • public method Microsoft.SharePoint.Client.Site.GetMigrationStatus
  • public method Microsoft.SharePoint.Client.Site.GetRecycleBinItems
  • public property Microsoft.SharePoint.Client.Site.CurrentChangeToken
  • public property Microsoft.SharePoint.Client.Site.DisableCompanyWideSharingLinks

 

  • public enum Microsoft.SharePoint.Client.SpecialFolderType
  • public enum Microsoft.SharePoint.Client.SPEffectiveInformationRightsManagementSettingsSource

 

  • public class Microsoft.SharePoint.Client.SPMigrationJobStatus
  • public class Microsoft.SharePoint.Client.SPMigrationJobStatusCollection

 

  • public class Microsoft.SharePoint.Client.StorageMetrics

 

  • public method Microsoft.SharePoint.Client.Web.CreateOrganizationSharingLink
  • public method Microsoft.SharePoint.Client.Web.DefaultDocumentLibrary
  • public method Microsoft.SharePoint.Client.Web.DestroyOrganizationSharingLink
  • public method Microsoft.SharePoint.Client.Web.GetFileByGuestUrl
  • public method Microsoft.SharePoint.Client.Web.GetFileByUrl
  • public method Microsoft.SharePoint.Client.Web.GetFileByWOPIFrameUrl
  • public method Microsoft.SharePoint.Client.Web.GetRecycleBinItems
  • public property Microsoft.SharePoint.Client.Web.CurrentChangeToken
    • Gets the current change token that is implemented in a query against the change log through the GetChanges method.
  • public property Microsoft.SharePoint.Client.Web.NoCrawl
    • Gets or sets a Boolean value that specifies whether searching is enabled for the site
  • public property Microsoft.SharePoint.Client.Web.RequestAccessEmail
    •  Gets or sets the e-mail address to which requests for access are sent. A string that contains the e-mail address to which requests for access are sent.

 

  • public property Microsoft.SharePoint.Client.WebParts.WebPartDefinition.ZoneId

Microsoft.Online.SharePoint.Client.Tenant

  • public property Microsoft.Online.SharePoint.TenantAdministration.SiteProperties.DisableCompanyWideSharingLinks
  • public property Microsoft.Online.SharePoint.TenantAdministration.SiteProperties.StorageQuotaType

 

  • public enum Microsoft.Online.SharePoint.TenantAdministration.CompanyWideSharingLinksPolicy
  • public property Microsoft.Online.SharePoint.TenantAdministration.SiteProperties.DisableCompanyWideSharingLinks

 

  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.BccExternalSharingInvitations
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.BccExternalSharingInvitationsList
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.BlockMacSync
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.ExcludedFileExtensionsForSyncClient
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.LegacyAuthProtocolsEnabled
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.OfficeClientADALDisabled
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.OneDriveForGuestsEnabled
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.OneDriveStorageQuota
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.ProvisionSharedWithEveryoneFolder
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.RequireAcceptingAccountMatchInvitedAccount
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.RequireAnonymousLinksExpireInDays
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.SearchResolveExactEmailOrUPN
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.SharingAllowedDomainList
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.SharingBlockedDomainList
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.SharingDomainRestrictionMode
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.ShowEveryoneExceptExternalUsersClaim
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.SignInAccelerationDomain
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.UsePersistentCookiesForExplorerView
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.UserVoiceForFeedbackEnabled

 

  • public enum Microsoft.Online.SharePoint.TenantManagement.ImportProfilePropertiesJobError
  • public class Microsoft.Online.SharePoint.TenantManagement.ImportProfilePropertiesJobInfo
  • public class Microsoft.Online.SharePoint.TenantManagement.ImportProfilePropertiesJobInfoPropertyNames
  • public enum Microsoft.Online.SharePoint.TenantManagement.ImportProfilePropertiesJobState
  • public class Microsoft.Online.SharePoint.TenantManagement.ImportProfilePropertiesJobStatusCollection
  • public enum Microsoft.Online.SharePoint.TenantManagement.ImportProfilePropertiesUserIdType

 

  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.DeleteImportProfilePropertiesJob
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.DisableSharingForNonOwnersOfSite
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.GetImportProfilePropertyJob
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.GetImportProfilePropertyJobs
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.IsSharingDisabledForNonOwnersOfSite
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.QueueImportProfileProperties

 

  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.BccExternalSharingInvitations
    • Gets a value which specifies if BCC functionality is enabled for external invitations.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.BccExternalSharingInvitationsList
    • Gets a list of recipients to be BCC’ed on all external sharing invitations.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.BlockMacSync
    • Get/Set whether Mac clients should be blocked from sync
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.ExcludedFileExtensionsForSyncClient
    • Get/Set sync client excluded file extensions
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.LegacyAuthProtocolsEnabled
    • Gets or sets a Boolean value that specifies whether legacy auth protocols are enabled. These include MsoFba and IDCRL.
    • True indicates that legacy auth protocols are enabled.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.OfficeClientADALDisabled
    • Gets or sets a Boolean value that specifies whether ADAL is disabled or not
    • True indicates that ADAL is disabled in the tenant.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.OneDriveForGuestsEnabled
    • Gets whether Onedrive creation for guest users is enabled in the tenancy.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.ProvisionSharedWithEveryoneFolder
    • Gets or Sets whether ODB sites should have the Shared with Everyone folder automatically provisioned or not
    • True means the SharedWithEveryone folder will be provisioned, false means it will not
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.RequireAcceptingAccountMatchInvitedAccount
    • Gets or sets a value to specify if user accepting invitation must use the same email address invitation was sent to.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.RequireAnonymousLinksExpireInDays
    • Gets or sets a value to specify the number of days that anonymous links expire.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SearchResolveExactEmailOrUPN
    • Gets or sets a Boolean value that specifies whether Search and Resolve Operations in people picker dialogs do an exact match against UPN/Email. Default behavior is doing starts with match against common properties.
    • True indicates that Search and Resolve will force exact match and only search against Email/UPN properties and no other
      properties. False indicates default behavior and will do starts with search against common properties
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SharingAllowedDomainList
    • Gets or sets a value to specify a space separated list of allowed domain names
  •  public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SharingBlockedDomainList
    • Gets or sets a value to specify a space separated list of blocked domain names
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SharingDomainRestrictionMode
    • Gets or sets a value to specify the restriction mode. None, AllowList, BlockedList.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.ShowEveryoneExceptExternalUsersClaim
    • Gets or sets a Boolean value that specifies whether EveryoneExceptExternalUsers is visible in people picker dialogs
    • True indicates that EveryoneExceptExternalUsers claim is visible. False indicates that EveryoneExceptExternalUsers claim should be hidden.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SignInAccelerationDomain
    • Gets or sets the domain to which to accelerate the sign-in experience to. i.e. by skipping the OrgID/EvoSTS sign-in page for end-user. Domain to accelerate to. Empty string means default behavior. i.e. the OrgID/EvoSTS signin page is shown.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.UsePersistentCookiesForExplorerView
    • Gets or sets a Boolean value that specifies whether ExplorerView feature uses persistent cookies.
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.UserVoiceForFeedbackEnabled
    • Gets or sets a value to specify if User Voice for customer feedback is enabled.

  • public enum value Microsoft.Online.SharePoint.TenantManagement.SharingCapabilities.ExistingExternalUserSharingOnly

 

  • public enum Microsoft.Online.SharePoint.TenantManagement.SharingDomainRestrictionModes
  • public class Microsoft.Online.SharePoint.TenantManagement.SPOUserSessionRevocationResult
  • public enum Microsoft.Online.SharePoint.TenantManagement.SPOUserSessionRevocationState

Microsoft.SharePoint.Client.Policy

  • public class Microsoft.SharePoint.Client.RecordsRepository.Records
    • public method DeclareItemAsRecord(ClientRunTimeContext context, ListItem itemToDeclare)
    • public method IsRecord(ClientRuntimeContext context, ListItem item)
    • public method UndeclareItemAsRecord(ClientRuntimeContext context, ListItem item)

Microsoft.SharePoint.Client.DocumentManagement

  • public method Microsoft.SharePoint.Client.DocumentSet.DocumentSet.ExportDocumentSet
  • public method Microsoft.SharePoint.Client.DocumentSet.DocumentSet.GetDocumentSet
  • public method Microsoft.SharePoint.Client.DocumentSet.DocumentSet.ImportDocumentSet

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, Office 365, Microsoft

Author

Vesa Juvonen
Principal Program Manager

Vesa Juvonen works as a Principal Product Manager focusing on the community and ecosystem across Microsoft 365. He leads the Microsoft 365 Patterns and Practices initiative which is providing tooling, guidance and assistance on adopting recommended patterns for using Microsoft 365. He has worked in different roles at Microsoft engineering helping on building capabilities in Microsoft 365 and to help customers and partners to use the different capabilities across the platform. Prior moving to ...

More about author