-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
What type of issue is this?
other
What SharePoint development model, framework, SDK or API is this about?
other (enter in the "Additional environment details" area below)
Target SharePoint environment
other (enter in the "Additional environment details" area below)
What browser(s) / client(s) have you tested
- 💥 Internet Explorer
- 💥 Microsoft Edge
- 💥 Google Chrome
- 💥 FireFox
- 💥 Safari
- mobile (iOS/iPadOS)
- mobile (Android)
- not applicable
- other (enter in the "Additional environment details" area below)
Additional environment details
- SharePoint Online
- SharePoint Server 2016
- SharePoint Server 2019
- SharePoint Server Subscription Edition
- All APIs and customization
Issue description
As a SharePoint consultant, I often must choose the best technology for customization and automation.
Unfortunately, over time, many technologies have emerged and gone again. Also, many new technologies are SharePoint Online exclusive or have limited OnPremise capabilities and documentation of supported platforms is sometimes outdated and / or only targeting SharePoint Online. Please note, there are still many customers that are using SharePoint Server for example because of data privacy or legal reasons.
Therefore, an overview of all currently supported and deprecated extension points and APIs as orientation is needed.
As far as I know, this is the status quo:
| Type | Name | Status | Technology | SharePoint Online compatible | SharePoint Server 2016 / 2019 compatible | SharePoint Server Subscription Edition compatible | Notes |
|---|---|---|---|---|---|---|---|
| API | Graph | Maintained (Preferred) | REST, SDKs for: .NET, Go, Java, JavaScript, PHP, PowerShell, Python (preview) | Yes | No | No | |
| API | (2013) REST / Odata | Maintained | REST | Yes | Yes | Yes | |
| API | (2010) REST | Maintained | REST | Yes | Yes | Yes | |
| API | Collaborative Application Markup Language (CAML) | Maintained | REST | Yes | Yes | Yes | |
| API | PnPjs 3+ | Maintained | JavaScript | Yes | No | No | |
| API | PnPjs 2 | Not Maintained anymore | JavaScript | Yes | Yes | Yes | |
| API | JavaScript Object Model (JSOM) | Deprecated | JavaScript, REST | Yes | Yes | Yes | |
| API | PnP PowerShell 2 | Maintained | PowerShell 7, .NET 6 | Yes | No | No | |
| API | PnP PowerShell | Not maintained anymore | PowerShell 5, .NET Framework 4.6 | Yes | Yes | Yes | |
| API | SharePoint Server Cmdlets | Maintained | PowerShell 5, .NET Framework 4 | No | Yes | Yes | |
| API | Client Side Object Model (CSOM) .NET Framework version | Maintained | .NET Framework 4 | Yes | Yes | ? | Missing nuget package for Subscription Edition |
| API | Client Side Object Model (CSOM) .NET Standard version | Maintained | .NET | Yes | No | No | |
| API | Windows Phone assemblies | Not maintained anymore | .NET Framework, C# | ? | ? | ? | |
| API / Customization | Silverlight redistributable assemblies | Not maintained anymore | C# | No | No | No | |
| Automation | Power Automate | Maintained (Preferred) | - | Yes | Yes | Yes | Mailing requires Exchange Online. Premium required for server access. |
| Automation | Azure Logic Apps | Maintained | - | Yes | Yes | Yes | |
| Automation | Webhooks | Maintained | - | Yes | No | No | |
| Automation | SharePoint 2010 workflow | Deprecated | - | No | Yes | Yes | Supported until 2026 |
| Automation | SharePoint 2013 workflow | Deprecated | - | No | Yes | Yes | Supported until 2026 |
| Customization | SharePoint Framework (SPFx) | Maintained (Preferred) | JavaScript/ TypeScript | Yes | Yes | Yes | OnPremise versions are very old and support only a few extension points. For example: Full page is not supported. |
| Customization | Power Apps | Maintained (Preferred) | - | Yes | No | No | |
| Customization | SharePoint Add-ins | Maintained | JavaScript/ TypeScript | Yes | Yes | Yes | No App-Parts in OnPremise modern experience sites, App Web not supported for example by migration tools |
| Customization | Farm Solutions | Maintained | C# | No | Yes | Yes | Should be used for customizations of SharePoint administrative functions and not for primary use by end users |
| Customization | No code Sandbox Solutions | Maintained | JavaScript | No | Yes | Yes | Should be migrated to Add-Ins |
| Customization | Code-Based Sandbox Solutions | Removed | C# | No | No | No | Should be migrated to Add-Ins |
| Customization | SharePoint Designer 2013 | Deprecated | - | Yes | Yes | Yes | Supported until 2026 |
| Customization | InfoPath Forms Services | Deprecated | - | No | Yes | Yes | Supported until 2026, should be migrated to Power Apps |
Now to my questions:
- Can this table be validated, added to the official documentation, and maintained by Microsoft?
- For SharePoint Online, it is noticeably clear what should be used, but what are the recommended future proof APIs and customization for SharePoint OnPremise development? Unfortunately, the SPFx version is so old, no modern JavaScript / React library can be used, and many features are missing. For offline automation I think the 2013 REST API should be used. Because CSOM / .NET Framework 4.x is old, many new language and .NET features like dependency injection cannot be used.