The PnP Core SDK is a modern .NET SDK designed to work for Microsoft 365. It provides a unified object model for working with SharePoint Online and Teams which is agnostic to the underlying API's being called
Groups
property to ISharePointUser
#1363 [jansenbe - Bert Jansen]DeleteAll
, DeleteByID
, DeleteByLabel
, RecycleByID
, RecycleByLabel
and RestoreByLabel
methods for IFileVersionCollection
#1375 [jansenbe - Bert Jansen]debug
instead of information
#1328 [jansenbe - Bert Jansen]pages
libaries breaking the page library detection logic #1343 [jansenbe - Bert Jansen]BatchRequest.Id
property and include it in the corresponding BatchResponse
to enable more advanced batch handling scenarios #1374 [jansenbe - Bert Jansen]QueryableExtensions.AsRequested
#1376 [jansenbe - Bert Jansen]IListItem
like (ILikedByInformation
) was not always loaded #1395 [jansenbe - Bert Jansen]PnPContext
initialization can be done with a single roundtrip to SharePoint if the valid site casing is used in combination with PnPContextOptions.SiteUriCasingIsCorrect
#1383 [jansenbe - Bert Jansen]ITeamChannelTab.Id
now is of type string
instead of Guid
#1407 [jansenbe - Bert Jansen]ILongRunningOperation
interface to track the progress of long running operations #1245 [JakeStanger - Jake Stanger]ExternalAuthenticationProvider
authentication provider #1269 [quails4Eva - David Petchey]GeoLocation
enum #1232 [jansenbe - Bert Jansen]ExcludedBlockDownloadGroupIds
properties from ISiteCollectionProperties
as that prevented unlocking a site collection via the LockState
property #1251 [jansenbe - Bert Jansen]addusingpath
method, just like the regular upload #1256 [jansenbe - Bert Jansen]IList.DefaultItemOpenInBrowser
property #1248 [jansenbe - Bert Jansen]LoadAsync
or EnsurePropertiesAsync
on IFolder
was broken #1236 [jansenbe - Bert Jansen]IPropertyValues
(property bag) values when any of these chars was used in the property name: -./:<>|[] #1263 [jansenbe - Bert Jansen]SensitivityLabelId
on ISite
[jansenbe - Bert Jansen]IList.DraftVersionVisibility
to use enum DraftVisibilityType
instead of an int
#1286 [jansenbe - Bert Jansen]LoadListDataAsStream
paging issue when item count was a multiple of the page size #1296 [jansenbe - Bert Jansen]IField
internal name [jansenbe - Bert Jansen]IListItemVersion
) [jansenbe - Bert Jansen]GetSharePointAdmin().ConnectToHubSiteAsync
#1193 [jansenbe - Bert Jansen]IPage.EditorType
[jansenbe - Bert Jansen]isSpellCheckEnabled
, globalRichTextStylingVersion
, isEmailReady
, rtePageSettings
and htmlAttributes
) [jansenbe - Bert Jansen]CreatedDateTime
property to ITeamChannel
[jansenbe - Bert Jansen]DateTime
and DateTimeOffset
types in OData filters #1173 [jansenbe - Bert Jansen]ContentTypeHub
when the original context was created for the root site collection [jansenbe - Bert Jansen]FieldLink
handling when ContentTypeHub
was used [jansenbe - Bert Jansen]AddTaxonomy
field methods when ContentTypeHub
was used [jansenbe - Bert Jansen]RestrictedAccessControlGroups
property on ISiteCollectionProperties.Update
[jansenbe - Bert Jansen]GetTermById
on ITermStore
now loads the additional ITerm
properties needed to enable operations on the loaded term #1189 [jansenbe - Bert Jansen]CultureInfo.InvariantCulture
is used when translating dates to string #1201 [jansenbe - Bert Jansen]TermStore.DefaultLanguage
is loaded before using it [jansenbe - Bert Jansen]IRoleAssignment
by principal id #1207 [JakeStanger - Jake Stanger]UpdateOverwriteVersion
or SystemUpdate
methods on ListItemAllFields
when that was loaded from a IFolder
resulted in error: "Guid should contain 32 digits with 4 dashes" #1213 [jansenbe - Bert Jansen]Custom
followed by specifying the needed Graph and Azure AD endpoints #1014 [jansenbe - Bert Jansen]X509Certificate2
when using the OnBehalfOfAuthenticationProvider
, similar to the support there is for this in the X509CertificateAuthenticationProvider
#1047 [mloitzl - Martin Loitzl]GetFileById
methods on IWeb
[jansenbe - Bert Jansen]GetFileByLink
methods on IWeb
#1054 [jansenbe - Bert Jansen]WebTemplatesGalleryFirstRunEnabled
property on IWeb
#1057 [jansenbe - Bert Jansen]EnableAudienceTargeting
methods on IList
[jansenbe - Bert Jansen]ITenantProperties
[jansenbe - Bert Jansen]ISiteCollectionProperties
[jansenbe - Bert Jansen]ValidateUsersAsync
and ValidateAndEnsureUsersAsync
on IWeb
[jansenbe - Bert Jansen]GetSiteCollectionsWithDetailsAsync
method you now can choose to also return the site collections linked to private and shared Teams channels #1076 [jansenbe - Bert Jansen]getFolderByServerRelativePath
) #1077 [jansenbe - Bert Jansen]Rename
methods on IFolder
to make it easier to rename a folder #1080 [jansenbe - Bert Jansen]Rename
methods on IFile
to make it easier to rename a file #1109 [jansenbe - Bert Jansen]DefaultViewUrl
property for IList
[jansenbe - Bert Jansen]ListTemplateType
[jansenbe - Bert Jansen]UserCustomActions
to IList
[jansenbe - Bert Jansen]ListExperience
[jansenbe - Bert Jansen]IPnPContext
interface to contain all the public method and properties to better support mocking in unit tests #1083 [jansenbe - Bert Jansen]BlockDownloadFileTypeIds
and ExcludedBlockDownloadGroupIds
properties from Tenant properties as they could not be saved preventing other property updates #1087 [jansenbe - Bert Jansen]RetainEditorAndModifiedOnMove
property to the MoveCopyOptions
and optimized file copy/move operations to use the cross site API as much as possible #989 #1091 [jansenbe - Bert Jansen]PnPContext
extensions allowing them to be used by mocking frameworks in unit tests #1083 [plamber - Patrick Lamber]IServicePrincipal
via IAppManager
#1116 [mloitzl - Martin Loitzl]BaseAddress
of MicrosoftGraphClient
when there's no change #1114 [jansenbe - Bert Jansen]IWeb.Search
methods #924 [lroos - Llewellyn Roos]Author
property for IWeb
#947 [jansenbe - Bert Jansen]IPnPContext
interface on PnPContext
to support mocking for use in testing #948 [jansenbe - Bert Jansen]DeleteRecycledSiteCollection
methods to delete site collections from the recycle bin [jansenbe - Bert Jansen]BaseQueryableDataModelCollection
method GetAsyncEnumerator
#911 [jansenbe - Bert Jansen]QueryProperties
as dirty #961 [jansenbe - Bert Jansen]Caption
, AltText
and Link
properties to prevent malformed JSON #995 [jansenbe - Bert Jansen]LoadListDataAsStreamAsync
[jansenbe - Bert Jansen]TimeZoneInfo
instances and provided a new public GetTimeZoneInfo
method on ITimeZone
[jansenbe - Bert Jansen]IFile
[jansenbe - Bert Jansen]ISite
#871 [MathijsVerbeeck - Mathijs Verbeeck]ISite
) and file (IFile
) analytics [jansenbe - Bert Jansen]IFile
into another format (PDF, JPG, Html or GLB) and process the returned stream (e.g. download/upload as file) #849 [MathijsVerbeeck - Mathijs Verbeeck]IFile
for embedding #885 [MathijsVerbeeck - Mathijs Verbeeck]IWeb
recycle bin #894 [jansenbe - Bert Jansen]ITermStore
to enable loading a termset or term without knowing the termset group #892 [jansenbe - Bert Jansen]IWeb
#892 [jansenbe - Bert Jansen]FilesFolderWebUrl
graph beta property for ITeamChannel
#902 [jansenbe - Bert Jansen]SendMail
methods for IGraphUser
and IMe
#905 [MathijsVerbeeck - Mathijs Verbeeck]SetUserAsOwner
to ISharePointGroup
#907 [MathijsVerbeeck - Mathijs Verbeeck]GetFilesFolder
methods on ITeamChannel
to provide an easy access point to the SharePoint File capabilities starting from a Team channel #843 [jansenbe - Bert Jansen]IView
properties settable #874 [jansenbe - Bert Jansen]SocketException
occurs due to an unknown host [jansenbe - Bert Jansen]ITeamChannel
property IsFavoriteByDefault
and updated beta test to use the FilesFolderWebUrl
property [jansenbe - Bert Jansen]CreateDriveRecipient
on sharing options classes to allow the creation of an IDriveRecipient
#909 [jansenbe - Bert Jansen]HasCommunicationSiteFeatures
methods on IWeb
[jansenbe - Bert Jansen]IBrandingManager
with support for getting and setting themes and site chrome (header/footer/navigation) [jansenbe - Bert Jansen]PnPContext
to enable adding context. These properties are passed along in case of an EventHub notification [jansenbe - Bert Jansen]Created
, LastItemDeletedDate
, LastItemModifiedDate
and LastItemUserModifiedDate
properties on IList
[jansenbe - Bert Jansen]GetFlowInstances
methods on IList
to enumerate the Power Automate Flows connected to the list [jansenbe - Bert Jansen]Search
methods on IWeb
offering a search experience #210 [jansenbe - Bert Jansen]Date(2022,0,3,13,32,4,77)
). Added temporary fix for #703 [jansenbe - Bert Jansen]ISiteCollectionManager.GetSiteCollections
methods now allow to filter OneDrive for Business site collections [jansenbe - Bert Jansen]PnPContext
via the IPnPContextFactory
you can now specify a CancellationToken
. Using this token pending request can be cancelled (e.g. breaking out of a throttling retry loop) [jansenbe - Bert Jansen]FieldLink.DisplayName
value when it is specified #792 [jansenbe - Bert Jansen]IFolder.EnsureFolderAsync
implementation that works without the need to load all folders on a level, this way the method works on libraries with a large amount of folders #793 [Ironbell]WithHeaders()
option [jansenbe - Bert Jansen]new Guid()
in PnP Core SDK LINQ queries #633 [s-KaiNet - Sergei Sergeev]EnsureSiteAssetsLibrary
method on IList
[jansenbe - Bert Jansen]IQueryable
and when to use .AsRequested()
#660 [s-KaiNet - Sergei Sergeev]HasUniqueRoleAssignments
property on IWeb
and IListItem
#575 [jansenbe - Bert Jansen]ItemCount
property on IList
[jansenbe - Bert Jansen]IFileVersion.Size
to be a long and map to "Length" SharePoint property instead of the "Size" property, needed for large file versions #581 [jansenbe - Bert Jansen]IFile
linked to an IListItem
when getting list items via LoadListDataAsStream [jansenbe - Bert Jansen]IsCatalog
, IsDefaultDocumentLibrary
, IsPrivate
, IsSiteAssetsLibrary
, IsSystemList
properties on IList
[jansenbe - Bert Jansen]IsSyntexEnabled
methods on IWeb
[jansenbe - Bert Jansen]ISite
[jansenbe - Bert Jansen]PnPContext
is created using the IPnPContextFactory
while authentication is not properly configured #623 [jansenbe - Bert Jansen]QueryProperties
statements when one of them has child QueryProperties
generated a wrong query #625 [jansenbe - Bert Jansen]IQueryable
where it still was missing + throw exception when not LINQ query is not possible #627 [jansenbe - Bert Jansen]IsSyntexEnabledForCurrentUser
methods on IWeb
[jansenbe - Bert Jansen]LoadListDataAsStream
batch methods [jansenbe - Bert Jansen]All
property that gets translated to a * in the $select when PnP Framework resorts to using a SharePoint REST query [jansenbe - Bert Jansen]