Skip to content

Commit eaabb33

Browse files
committed
Scenario guidance updates
1 parent 5e98126 commit eaabb33

10 files changed

+96
-150
lines changed

docs/scenario-guidance/Line-of-Business-integration.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ In order to access and consume LOB data and systems from within SharePoint, you
1010
Here follow some high-level guidelines and general rules that you should consider whenever you need to integrate SharePoint with any LOB system:
1111

1212
* Try to consume REST-based APIs, rather than SOAP services or custom APIs, in order to being able to leverage modern development techniques and to use modern security protocols (OAuth 2.0, OpenID Connect, etc.).
13-
* Use a data cache intermediary, instead of directly consuming any external service, so that you can speed up the consumption process and avoid useless network roundtrips to retrieve data that you already requested from the LOB system.
13+
* Use a data cache intermediary, instead of directly consuming any external service, so that you can speed up the consumption process and avoid useless network round trips to retrieve data that you already requested from the LOB system.
1414
* Make your best to list data page by page, rather than listing all the data in "one huge shot", to avoid flooding the data cache and to overload the network bandwidth.
1515
* From an Authentication and Authorization perspective, tend to use services that leverage well-known protocols like OAuth 2.0, OpenID Connect, etc. and which are possibly registered in Azure Active Directory, in order to share a unique security infrastructure.
1616

@@ -22,6 +22,8 @@ Whenever you need to consume LOB systems from a client-side solution, like a cli
2222

2323
### Articles
2424
* [Connect to API secured with Azure Active Directory](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/guidance/connect-to-api-secured-with-aad)
25+
* [Connect to Azure AD-secured APIs in SharePoint Framework solutions](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient)
26+
* [Consume enterprise APIs secured with Azure AD in SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient-enterpriseapi)
2527

2628
### Samples
2729
* [Call custom Web API secured with AAD from SharePoint Framework client-side web part](https://github.com/SharePoint/sp-dev-fx-webparts/tree/master/samples/react-aad-webapi)
@@ -56,6 +58,9 @@ _**Applies to:** Office 365 | SharePoint Online_
5658

5759
While consuming LOB systems, another option that you have is to create SharePoint Online solutions that leverage on-premises data through an hybrid topology. For example, you can create an Azure App Service that connects to an on-premises infrastructure and consumes a SQL Server database, or any other on-premises data repository, through an Hybrid Connection.
5860

61+
> [!NOTE]
62+
> This kind of solution architecture can have challenges with network latency. Due the direct hybrid connectivity, services in SharePoint Online would have a dependency on the on-premises services which is not optimal. It's recommended to have data cache intermediary in Azure side rather than connecting directly to the on-premises, even though technically this can be implemented relatively easily.
63+
5964
### Articles
6065
* [Create hybrid connectivity apps for SharePoint](https://docs.microsoft.com/en-us/sharepoint/dev/general-development/create-hybrid-connectivity-apps-for-sharepoint)
6166
* [Azure Relay Hybrid Connections protocol](https://docs.microsoft.com/en-us/azure/service-bus-relay/relay-hybrid-connections-protocol)

docs/scenario-guidance/Long-running-scheduled-operations.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ In this pattern, the long-running or scheduled operation is implemented in an Az
2424

2525
- Does not require additional hardware to run the Azure Function (scheduling and implementation code).
2626
- Advantageous because it uses the Azure Function for scheduling as well as the implementation code, which makes it easy to manage in one ___location.
27+
- Maximum timeout for execution is 10 minutes (default 5 minutes), which means that if your process takes longer thant that, alternative options should be considered.
2728

2829
#### Related resources
2930

docs/scenario-guidance/Multi-geo-capabilities.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1+
---
2+
title: Multi-Geo Capabilities
3+
ms.date: 03/21/2018
4+
---
5+
16
# Multi-Geo Capabilities
27

38
## Summary
49
Multinational companies that have offices around the world often have needs to store their employee data at-rest in specific regions to meet their data residency requirements. The Multi-Geo Capabilities in Office 365, are a feature introduced in late 2017 that helps multinational customers address their regional, industry specific or organizational data residency requirements in Office 365.
10+
511
Multi-Geo enables a single Office 365 tenant to span across multiple Office 365 datacenter geographies (geos), and gives customers the ability to store their Exchange, SharePoint, and OneDrive data, at-rest, on a per-user basis, in their chosen geos.
12+
613
In this article you can find further details about the Multi-Geo Capabilities, as well as code samples, and videos.
714

815
### Articles

docs/scenario-guidance/Performance.md

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,26 @@ Implementing customizations in SharePoint places an even greater emphasis on eff
1515
- When referencing scripts and other assets, allow users to cache them for as long as possible to minimize the number of requests to the server and the amount of data to load.
1616
- Avoid excessive DOM manipulation that would trigger re-rendering of the page and delay its loading.
1717

18-
## Available options
19-
20-
### General recommendations
21-
22-
### Handling SharePoint Online throttling
18+
## Handling SharePoint Online throttling
2319

2420
_**Applies to:** Office 365_
2521

2622
SharePoint Online uses throttling to prevent users from over-consuming resources. When a user runs CSOM or REST code that exceeds usage limits, SharePoint Online throttles any further request from the user for a period of time.
2723

28-
#### Related resources
29-
30-
##### Articles
24+
### Articles
3125

3226
- [Handle SharePoint Online throttling by using exponential back off](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/handle-sharepoint-online-throttling-by-using-exponential-back-off)
3327
- [Avoid getting throttled or blocked in SharePoint Online](https://docs.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online)
3428

35-
##### Samples
29+
### Samples
3630

3731
- [SharePoint Online Throttling](https://github.com/SharePoint/PnP/tree/master/Samples/Core.Throttling)
3832

39-
### SharePoint Framework
33+
## SharePoint Framework
4034

4135
_**Applies to:** Office 365 | SharePoint Server_
4236

43-
#### Related resources
44-
45-
##### Articles
37+
### Articles
4638

4739
- [Optimize builds for production](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/toolchain/optimize-builds-for-production)
4840
- [JavaScript Patterns and Performance](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/javascript-patterns-and-performance)
@@ -51,42 +43,38 @@ _**Applies to:** Office 365 | SharePoint Server_
5143
- [Use existing JavaScript libraries in SharePoint Framework client-side web parts](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/guidance/use-existing-javascript-libraries)
5244
- [Use the Office 365 content delivery network (CDN)](https://docs.microsoft.com/en-us/sharepoint/dev/general-development/office-365-cdn)
5345

54-
### SharePoint Add-ins
46+
## SharePoint Add-ins
5547

5648
_**Applies to:** Office 365 | SharePoint Server_
5749

5850
The approaches you take to ensure optimal performance with SharePoint is different in the new SharePoint Add-in model than it was with Full Trust Code. In a typical Full Trust Code (FTC) / Farm Solution scenario most code operations took place in the SharePoint Server-side Object Model code.
5951

60-
#### Related resources
61-
62-
##### Articles
52+
### Articles
6353

6454
- [JavaScript Patterns and Performance](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/javascript-patterns-and-performance)
6555
- [Performance considerations in the SharePoint add-in model](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/performance-considerations-sharepoint-add-in)
6656
- [Improve performance in SharePoint provider-hosted add-ins](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/improve-performance-in-sharepoint-provider-hosted-add-ins)
6757
- [Make batch requests with the REST APIs](https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/make-batch-requests-with-the-rest-apis)
6858

69-
##### Videos
59+
### Videos
7060

7161
- [Office Dev PnP Web Cast – JavaScript performance considerations with SharePoint](https://dev.office.com/blogs/javascript-performance-considerations-with-sharepoint)
7262

73-
##### Samples
63+
### Samples
7464

7565
- [Caching examples](https://github.com/SharePoint/PnP/tree/master/Samples/Performance.Caching)
7666

77-
### Portals
67+
## Portals
7868

7969
_**Applies to:** Office 365 | SharePoint Server_
8070

81-
#### Related resources
82-
83-
##### Articles
71+
### Articles
8472

8573
- [Proven Practices for SharePoint Online Portals - Performance](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/portal-performance)
8674
- [Proven Practices for SharePoint Online Portals - Navigation Solutions](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/portal-navigation)
8775
- [JavaScript Patterns and Performance](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/javascript-patterns-and-performance)
8876
- [Optimize page performance in SharePoint](https://docs.microsoft.com/en-us/sharepoint/dev/general-development/optimize-page-performance-in-sharepoint)
8977

90-
##### Videos
78+
### Videos
9179

9280
- [Learn how to build a fast, responsive SharePoint portal in SharePoint Online](https://www.youtube.com/watch?v=tD3mkbfhIbM)

docs/scenario-guidance/Responding-to-changes.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ Before digging into the details of the various options that you have to handle c
99
* If you are processing a synchronous event, try to avoid as much as you can blocking SharePoint. Rather refer to the asynchronous pattern described in the previous bullet.
1010
* Consider using an App-Only security model, whenever you need to do background processing of an event, so that you will not need to make the users' credentials flow into your event handling service/solution. Nevertheless, there are some activities which simply cannot be executed within an App-Only context. If that is the case, try to pass in a secure way an OAuth Access Token to the background job, rather than a set of user's credentials. The fact that an Access Token expires, and has a limited and pre-defined set of permission scopes associated, will keep the overall solution more secure.
1111

12-
## Available options
13-
14-
### Webhooks
12+
## Webhooks
1513

1614
_**Applies to:** Office 365 | SharePoint Online_
1715

@@ -36,7 +34,7 @@ For further details about Webhooks you can read the following articles, inspect
3634
* [Introduction to SharePoint webhooks](https://www.youtube.com/watch?v=P4a1_EWokwM)
3735
* [Getting started with SharePoint Webhooks](https://www.youtube.com/watch?v=IbVlDkmsh8w)
3836

39-
### Remote Event Receivers
37+
## Remote Event Receivers
4038

4139
_**Applies to:** SharePoint 2013 | SharePoint 2016 | SharePoint Online_
4240

@@ -62,7 +60,7 @@ The Remote Event Receivers are a capability introduced with the SharePoint Add-I
6260
* [Introducing remote event receivers in SharePoint 2013](https://www.youtube.com/watch?v=jHoBgkUlK2M)
6361
* [Using appinstalled events to attach remote event receivers to SharePoint Host Webs](https://channel9.msdn.com/Blogs/Office-365-Dev/Using-appinstalled-events-to-attach-remote-event-receivers-to-SharePoint-Host-Webs-Office-365-Develo)
6462

65-
### Event Receivers
63+
## Event Receivers
6664

6765
_**Applies to:** SharePoint 2013 | SharePoint 2016_
6866

@@ -73,7 +71,7 @@ The Event Receivers are a server-side event handling model, available in SharePo
7371
* [How to: Create an Event Receiver for a Specific List Instance](https://msdn.microsoft.com/en-us/library/ff398052.aspx)
7472
* [Table of SharePoint Events, Event Receivers, and Event Hosts](https://msdn.microsoft.com/en-us/library/office/ff408183(v=office.14).aspx)
7573

76-
### Workflows
74+
## Workflows
7775

7876
_**Applies to:** SharePoint 2013 | SharePoint 2016 | SharePoint Online_
7977

docs/scenario-guidance/Security.md

Lines changed: 15 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,13 @@ SharePoint supports security for user access at the website, list, list or libra
1010

1111
Authorization refers to the process by which SharePoint provides security for websites, lists, folders, or items by determining which users can perform specific actions on a given object. The authorization process assumes that the user has already been authenticated, which refers to the process by which SharePoint identifies the current user. SharePoint does not implement its own system for authentication or identity management, but instead relies on external systems, whether Windows authentication or non-Windows authentication.
1212

13-
## Available options
14-
15-
### General recommendations
16-
17-
### General information
13+
## General information
1814

1915
_**Applies to:** Office 365 | SharePoint Server_
2016

21-
#### Related resources
17+
### Related resources
2218

23-
##### Articles
19+
### Articles
2420

2521
- [Authentication, authorization, and security in SharePoint](https://docs.microsoft.com/en-us/sharepoint/dev/general-development/authentication-authorization-and-security-in-sharepoint)
2622
- [Authorization and authentication of SharePoint Add-ins](https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/authorization-and-authentication-of-sharepoint-add-ins)
@@ -38,13 +34,13 @@ _**Applies to:** Office 365 | SharePoint Server_
3834
- [Moving Full Trust Code to the Cloud](https://github.com/OfficeDev/TrainingContent/blob/master/O3651/O3651-4%20Moving%20Full%20Trust%20Code%20to%20the%20cloud%20using%20repeatable%20patterns%20and%20best%20practices/Lab.md)
3935
- [A Series of Visual Studio Solutions to Accompany the MSDN Tutorial Series about Provider-hosted Add-ins](https://github.com/OfficeDev/SharePoint_Provider-hosted_Add-ins_Tutorials)
4036

41-
##### Videos
37+
### Videos
4238

4339
- [PnP Shorts - Implementing Web Application Policy alternatives in SharePoint Online](https://www.youtube.com/watch?v=zcmngkgQdTU&feature=youtu.be)
4440
- [PnP Webcast - Calling external APIs securely from SharePoint Framework](https://www.youtube.com/watch?v=SDjKRfHA1nw)
4541
- [PnP Webcast - Azure AD implicit flow with SPFx client-side web part with developer preview](https://www.youtube.com/watch?v=KRgHjF84xZc)
4642

47-
##### Samples
43+
### Samples
4844

4945
- [Dynamically request permissions for an add-in](https://github.com/SharePoint/PnP/tree/dev/Samples/Core.DynamicPermissions)
5046
- [PnP-IdentityModel](https://github.com/SharePoint/PnP-IdentityModel)
@@ -55,13 +51,11 @@ _**Applies to:** Office 365 | SharePoint Server_
5551
- [Access SharePoint data with the Cross Domain JavaScript Library](https://dev.office.com/code-samples-detail/5814)
5652
- [Access SharePoint data with the Cross Domain JavaScript Library and the REST\OData endpoints](https://dev.office.com/code-samples-detail/5815)
5753

58-
### App-only access to SharePoint
54+
## App-only access to SharePoint
5955

6056
_**Applies to:** Office 365 | SharePoint Server_
6157

62-
#### Related resources
63-
64-
##### Articles
58+
### Articles
6559

6660
- [Add-in authorization policy types in SharePoint](https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/add-in-authorization-policy-types-in-sharepoint)
6761
- [Accessing SharePoint using an application context, also known as app-only](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly)
@@ -70,70 +64,48 @@ _**Applies to:** Office 365 | SharePoint Server_
7064
- [Developing using Tenant permissions with App-Only in SharePoint Online](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/development-experience-tenant-apponly-permissions-in-sharepoint-online)
7165
- [Getting Started with azure WebJobs ("timer jobs") for your Office 365 Sites](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/getting-started-with-building-azure-webjobs-for-your-office365-sites)
7266

73-
##### Samples
67+
### Samples
7468

7569
- [External Sharing APIs for SharePoint and OneDrive for Business (Core.ExternalSharing)](https://github.com/SharePoint/PnP/tree/master/Samples/Core.ExternalSharing)
7670

77-
### Elevating privileges
71+
## Elevating privileges
7872

7973
_**Applies to:** Office 365 | SharePoint Server_
8074

8175
If your solution allows users to perform actions for which they don't have adequate individual permissions, it needs to elevate user's privileges to complete that operation. Different methods are used to elevate privileges in SharePoint Add-ins and farm solutions. Farm solutions elevate privileges by using `RunWithElevatedPrivileges(SPSecurity.CodeToRunElevated)`, which belongs to the SharePoint server-side object model. SharePoint Add-ins use either the app-only policy or service accounts.
8276

83-
#### Related resources
84-
85-
##### Articles
77+
### Articles
8678

8779
- [Elevated privileges in SharePoint Add-ins](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/elevated-privileges-in-sharepoint-add-ins)
8880
- [Add-in authorization policy types in SharePoint](https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/add-in-authorization-policy-types-in-sharepoint#Scenario)
8981
- [App-only and elevated privileges in the SharePoint add-in model](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/app-only-elevated-privileges-sharepoint-add-in)
9082

91-
### Azure AD Authentication/Authorization
83+
## Azure AD Authentication/Authorization
9284

9385
_**Applies to:** Office 365_
9486

9587
When using SharePoint Online you can define applications in Azure AD and these applications can be granted permissions to SharePoint, but also to all the other services in Office 365. This model is the preferred model in case you’re using SharePoint Online, if you’re using SharePoint on-premises you have to use the SharePoint Only model via based Azure ACS.
9688

97-
> [!IMPORTANT]
98-
> Azure Access Control (ACS), a service of Azure Active Directory (Azure AD), will be retired on November 7, 2018. This retirement does not impact SharePoint add-in model which is using `https://accounts.accesscontrol.windows.net` hostname, which is not impacted by this retirement. See more details on this from [Impact of Azure Access Control retirement for SharePoint add-ins](https://dev.office.com/blogs/impact-of-azure-access-control-deprecation-for-sharepoint-add-ins).
99-
100-
#### Related resources
101-
102-
##### Articles
89+
### Articles
10390

10491
- [Accessing SharePoint using an application context, also known as app-only](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly)
10592

106-
##### Videos
93+
### Videos
10794

10895
- [Access Microsoft SharePoint with the Microsoft Graph](https://www.youtube.com/watch?v=bBILnF5Tf_k)
10996

110-
##### Samples
97+
### Samples
11198

11299
- [PowerShell to enable low trust authentication model at on-premises](https://github.com/SharePoint/PnP-Tools/tree/master/Scripts/SharePoint.LowTrustACS.Configuration)
113100
- [SharePoint Web Hooks Azure AD reference implementation](https://github.com/SharePoint/sp-dev-samples/tree/master/Samples/WebHooks.List.AzureAD)
114101

115-
### Government environments
116-
117-
_**Applies to:** Office 365_
118-
119-
When your Office 365 tenant is hosted in an specific environment like the Germany, China or US Government environments there are some additional considerations that you have to take into account.
120-
121-
#### Related resources
122-
123-
##### Articles
124-
125-
- [Authorization considerations for tenants hosted in the Germany, China or US Government environments](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/extending-sharepoint-online-for-germany-china-usgovernment-environments)
126-
- [Office 365 US Government](https://technet.microsoft.com/library/mt774581.aspx)
127-
128102
### Authorization considerations for tenants hosted in Germany, China or US
129103

130104
_**Applies to:** Office 365_
131105

132106
When your Office 365 tenant is hosted in an specific environment like the Germany, China or US Government environments there are some additional considerations that you have to take into account.
133107

134-
#### Related resources
135-
136-
##### Articles
108+
### Articles
137109

138110
- [Authorization considerations for tenants hosted in the Germany, China or US Government environments](https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/extending-sharepoint-online-for-germany-china-usgovernment-environments)
139111
- [Learn about Office 365 Germany](https://support.office.com/en-US/article/Learn-about-Office-365-Germany-8a5a4bbc-667a-4cac-8769-d8ac9015db4c)

0 commit comments

Comments
 (0)