Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pnp/pnpcore
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
https://github.com/pnp/pnpcore
dotnet dotnet-standard dotnet6 dotnet7 dotnet8 hacktoberfest microsoftgraph pnp sharepoint
Last synced: about 9 hours ago
JSON representation
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
- Host: GitHub
- URL: https://github.com/pnp/pnpcore
- Owner: pnp
- License: mit
- Created: 2020-04-24T10:25:21.000Z (over 4 years ago)
- Default Branch: dev
- Last Pushed: 2024-10-30T01:33:17.000Z (16 days ago)
- Last Synced: 2024-10-30T03:58:11.156Z (16 days ago)
- Topics: dotnet, dotnet-standard, dotnet6, dotnet7, dotnet8, hacktoberfest, microsoftgraph, pnp, sharepoint
- Language: C#
- Homepage: https://aka.ms/pnp/coresdk/docs
- Size: 167 MB
- Stars: 301
- Watchers: 23
- Forks: 194
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
The PnP Core SDK is an 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 APIs being called. The initial goal for this library will be to cover the needs of developers working with either SharePoint Online or Teams, but we're also open to extend this library further towards other Microsoft 365 workloads if there's community demand for doing so.
## Packages and status 🏭
![Build and Test](https://github.com/pnp/pnpcore/workflows/Build%20and%20Test%20%F0%9F%9A%80%E2%9C%85/badge.svg?branch=dev) [![codecov](https://codecov.io/gh/jansenbe/pnpcore/branch/dev/graph/badge.svg?token=FL0EY8DRPQ)](https://codecov.io/gh/jansenbe/pnpcore) ![Refresh documentation](https://github.com/pnp/pnpcore/workflows/Refresh%20documentation/badge.svg?branch=dev) ![Nightly nuget release](https://github.com/pnp/pnpcore/workflows/Nightly%20nuget%20release/badge.svg?branch=dev)
Nuget package | Downloads | Stable | Preview
--------------|------------|--------|--------
[PnP.Core](https://pnp.github.io/pnpcore/using-the-sdk/readme.html) | [![Downloads](https://img.shields.io/nuget/dt/pnp.core.svg)](https://www.nuget.org/packages/PnP.Core/) | [![PnP.Core Nuget package](https://img.shields.io/nuget/v/PnP.Core.svg)](https://www.nuget.org/packages/PnP.Core/) | [![PnP.Core Nuget package](https://img.shields.io/nuget/vpre/PnP.Core.svg)](https://www.nuget.org/packages/PnP.Core/)
[PnP.Core.Auth](https://pnp.github.io/pnpcore/using-the-sdk/configuring%20authentication.html) | [![Downloads](https://img.shields.io/nuget/dt/pnp.core.auth.svg)](https://www.nuget.org/packages/PnP.Core.Auth/) |[![PnP.Core.Auth Nuget package](https://img.shields.io/nuget/v/PnP.Core.Auth.svg)](https://www.nuget.org/packages/PnP.Core.Auth/) | [![PnP.Core.Auth Nuget package](https://img.shields.io/nuget/vpre/PnP.Core.Auth.svg)](https://www.nuget.org/packages/PnP.Core.Auth/)
[PnP.Core.Admin](https://pnp.github.io/pnpcore/using-the-sdk/admin-sharepoint-tenant.html) | [![Downloads](https://img.shields.io/nuget/dt/pnp.core.admin.svg)](https://www.nuget.org/packages/PnP.Core.Admin/) | [![PnP.Core.Admin Nuget package](https://img.shields.io/nuget/v/PnP.Core.Admin.svg)](https://www.nuget.org/packages/PnP.Core.Admin/) | [![PnP.Core.Admin Nuget package](https://img.shields.io/nuget/vpre/PnP.Core.Admin.svg)](https://www.nuget.org/packages/PnP.Core.Admin/)
[PnP.Core.Transformation](https://pnp.github.io/pnpcore/using-the-sdk/transformation-getting-started.html) | [![Downloads](https://img.shields.io/nuget/dt/pnp.core.transformation.svg)](https://www.nuget.org/packages/PnP.Core.Transformation/) | soon | [![PnP.Core.Transformation Nuget package](https://img.shields.io/nuget/vpre/PnP.Core.Transformation.svg)](https://www.nuget.org/packages/PnP.Core.Transformation/)
[PnP.Core.Transformation.SharePoint](https://pnp.github.io/pnpcore/using-the-sdk/transformation-getting-started.html) | [![Downloads](https://img.shields.io/nuget/dt/pnp.core.transformation.sharepoint.svg)](https://www.nuget.org/packages/PnP.Core.Transformation.sharepoint) | soon | [![PnP.Core.Transformation Nuget package](https://img.shields.io/nuget/vpre/PnP.Core.Transformation.sharepoint.svg)](https://www.nuget.org/packages/PnP.Core.Transformation.sharepoint/)
## Getting started 🚀For more details on how to get started with the PnP.Core SDK checkout our [documentation](https://pnp.github.io/pnpcore/using-the-sdk/readme.html).
## I want to help 🙋♂️
If you want to join our team and help, then checkout the [How can I help](https://pnp.github.io/pnpcore/#how-can-you-help) section in our docs.
## Supportability and SLA 💁🏾♀️
This library is an open-source and community provided library backed by an active community supporting it. This is not a Microsoft provided library, so there's no SLA or direct support for this open-source component from Microsoft. Please report any issues using the [issues list](https://github.com/pnp/pnpcore/issues).
## Frequently Asked Questions ❓
### Will this work in modern .NET
Absolutely! One of the key reasons for building PnP Core SDK is to nicely fit into modern .NET development:
- We currently target .NET Standard 2.0, [.NET 6.0](https://devblogs.microsoft.com/dotnet/announcing-net-6/), [.NET 7.0](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/) and [.NET 8.0](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/). Use the .NET 6.0 (LTS), .NET 7.0 or .NET 8.0 (LTS) builds if you're using a modern .NET version, use .NET Standard 2.0 for backwards compatibility with .NET Framework 4.6.1+.
- This library will work cross platform (Windows, Linux, MacOS)
- This library will work in all places where .NET will work (see [our samples](https://pnp.github.io/pnpcore/demos/README.html) to learn more):
- Backend: e.g. [Azure functions v3/v4](https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library)
- Web: e.g. [ASP.NET core](https://dotnet.microsoft.com/en-us/apps/aspnet), [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor)
- Browser (WebAssembly (WASM)): [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor). We only support [Blazor](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor) with our .NET 6.0 and later versions
- .NET MAUI: [Windows, iOS, macOS, Android](https://learn.microsoft.com/en-us/dotnet/maui/what-is-maui?view=net-maui-7.0)
- Windows Client: [Windows Forms, WPF](https://learn.microsoft.com/en-us/dotnet/desktop/winforms/?view=netdesktop-7.0&preserve-view=true)
- Mobile: [Xamarin](https://dotnet.microsoft.com/apps/xamarin)
- The library internally uses [dependency injection](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-6.0) and you can consume it via dependency injection in your applications### What underlying APIs are used
The SDK provides an object model that's API agnostic, when you as a developer for example load a model (List, Team, Web,...) the SDK will use the best possible API for loading that model being for the most part Microsoft Graph v1.0 and SharePoint REST. Depending on the needs the SDK will use Microsoft Graph Beta calls and in some cases the CSOM endpoint (client.svc) is called. But the good thing is that all of this is transparent for you as developer! You'll have a consistent development experience regardless of the underlying APIs being called.
As [Microsoft Graph](https://docs.microsoft.com/en-us/graph/) is our recommended API to work with Microsoft 365, the SDK will favor Microsoft Graph whenever it makes sense, the "fall back" to SharePoint REST only happens when Microsoft Graph can't provide the needed data or consistency.
### What's the relationship with the existing PnP Framework library
The [PnP Framework](https://github.com/pnp/pnpframework) library is very popular library that extends SharePoint using mainly CSOM. This library contains the PnP Provisioning engine, tons of extension methods, etc...but this library has also organically grown into a complex and hard to maintain code base. One of the reasons why the PnP Core SDK development started is to provide a new clean replacement for PnP Framework with a strong focus on quality (test coverage above 80%, automation). As this transition will take quite some time and effort, we plan to gradually move things over from PnP Framework to the PnP Core SDK. Going forward [PnP Framework](https://github.com/pnp/pnpframework) features will move to the PnP Core SDK in a phased approach.
**Community rocks, sharing is caring!**
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [[email protected]](mailto:[email protected]) with any additional questions or comments.