diff --git a/docs/general-development/get-started-developing-with-social-features-in-sharepoint.md b/docs/general-development/get-started-developing-with-social-features-in-sharepoint.md index 9431f614a..d067cde52 100644 --- a/docs/general-development/get-started-developing-with-social-features-in-sharepoint.md +++ b/docs/general-development/get-started-developing-with-social-features-in-sharepoint.md @@ -11,104 +11,104 @@ ms.localizationpriority: medium # Get started developing with social features in SharePoint Get started programming with SharePoint social feeds and microblog posts, following people and content (documents, sites, and tags), and working with user profiles. - + [How can I use social features in apps and solutions?](get-started-developing-with-social-features-in-sharepoint.md#bk_HowToUseSocialFeatures) - - - + + + [Setting up the development environment](get-started-developing-with-social-features-in-sharepoint.md#DevEnvironment) - - - + + + [Development scenarios for social features](get-started-developing-with-social-features-in-sharepoint.md#DevScenarios) - - - + + + [How-tos for programming with social features](get-started-developing-with-social-features-in-sharepoint.md#bk_GetStarted) - - - + + + [APIs for programming with social features](get-started-developing-with-social-features-in-sharepoint.md#SocialApis) - - - + + + [App permission requests for accessing social features](get-started-developing-with-social-features-in-sharepoint.md#bkmk_AppPerms) - - - + + + [Additional resources](get-started-developing-with-social-features-in-sharepoint.md#bk_AddResources) - - - + + + ## How can I use social features in SharePoint apps and solutions? Social features in SharePoint apps and solutions can help people to connect, communicate, and collaborate with each other and find, track, and share important content and information. You can add new social features or extend the features that are already available in SharePoint. For example, you can create an app that lets you find and follow people who have a common interest, create a custom visualization of feed data, or publish custom activities to the feed. - - - -The features described in this article align to the people, feeds, and following functionality that you find on personal sites and team sites. The forum experience and reputation model on Community Sites don't expose a specific API, so you use SharePoint site and list APIs directly to extend that functionality. For more information, see [New Community Site feature](what-s-new-for-developers-in-social-and-collaboration-features-in-sharepoint-201.md#bkmk_Collab). - - - + + + +The features described in this article align to the people, feeds, and following functionality that you find on personal sites and team sites. The forum experience and reputation model on Community Sites don't expose a specific API, so you use SharePoint site and list APIs directly to extend that functionality. For more information, see [New Community Site feature in SharePoint](what-s-new-for-developers-in-social-and-collaboration-features-in-sharepoint-201.md#new-community-site-feature-in-sharepoint) + + + Before you start developing, you should know where your code will run, what SharePoint environment it will run on, and what functionality it will provide. These factors help you choose the kind of app to create and which API or APIs to use. See [Choose the right API set in SharePoint](choose-the-right-api-set-in-sharepoint.md) and [SharePoint Add-ins compared with SharePoint solutions](sharepoint-add-ins-compared-with-sharepoint-solutions.md) for information that can help you decide. - - - + + + ### Setting up your development environment To get started developing with social features, you'll need: - - - + + + - SharePoint or SharePoint Online - + - Visual Studio 2012 or Visual Studio 2013, with Office Developer Tools for Visual Studio 2013 - or newer - - + + For more guidance, see [Set up a general development environment for SharePoint](set-up-a-general-development-environment-for-sharepoint.md) and [Configure social computing features in SharePoint](https://technet.microsoft.com/library/fp161267%28v=office.15%29.aspx). - - - + + + ### Development scenarios for social features in SharePoint High-level development scenarios for social features include working with social feeds, following people and content (documents, sites, and tags), and working with user properties. Table 1 contains links to articles that describe the primary APIs that you use to access functionality for each scenario and common programming tasks. - - - + + + The following articles describe the primary APIs and programming tasks for the particular development scenario: - - - + + + - [Work with social feeds in SharePoint](work-with-social-feeds-in-sharepoint.md) - - + + - [Follow people in SharePoint](follow-people-in-sharepoint.md) - - + + - [Follow content in SharePoint](follow-content-in-sharepoint.md) - - + + - [Work with user profiles in SharePoint](work-with-user-profiles-in-sharepoint.md) - - + + ### How-tos for programming with social features in SharePoint After you set up your development environment and choose your scenario, you can get started programming with social features. Table 1 contains links to articles that show how to do basic programming tasks with social features. - - - + + + **Table 1. How-to articles for developing with social features** @@ -128,15 +128,15 @@ After you set up your development environment and choose your scenario, you can | [How to: Retrieve user profile properties by using the .NET client object model in SharePoint](how-to-retrieve-user-profile-properties-by-using-the-net-client-object-model-in.md)|Learn how to retrieve user profile properties by using the .NET client object model.| | [How to: Retrieve user profile properties by using the JavaScript object model in SharePoint](how-to-retrieve-user-profile-properties-by-using-the-javascript-object-model-in.md)|Learn how to retrieve user profile properties by using the JavaScript object model.| | [How to: Work with user profiles and organization profiles by using the server object model in SharePoint](how-to-work-with-user-profiles-and-organization-profiles-by-using-the-server-obj.md)|Learn how to create, retrieve, and manage user profiles and properties by using the server object model.| - + ### APIs for programming with SharePoint social features Although apps and solutions access SharePoint differently, after you do access SharePoint you use the social APIs in basically the same way. Table 2 shows the APIs for programming with feed, following, and user profiles features in SharePoint and the paths to the source files on the server. - - - + + + **Table 2. APIs for programming with social features** @@ -149,25 +149,25 @@ Although apps and solutions access SharePoint differently, after you do access S | [JavaScript object model](https://msdn.microsoft.com/library/95cb5427-8514-4e9a-8eee-7ed4b82ec01b%28Office.15%29.aspx)|SP.UserProfiles.js
in %ProgramFiles%\\Common Files\\Microsoft Shared\\web server extensions\\15\\TEMPLATE\\LAYOUTS| |Representational State Transfer (REST) service| [`http:///_api/social.feed`](social-feed-rest-api-reference-for-sharepoint.md)
[`http:///_api/social.following`](following-people-and-content-rest-api-reference-for-sharepoint.md)
[`http:///_api/SP.UserProfiles.PeopleManager`](https://msdn.microsoft.com/library/10757ed1-6e86-474f-89e0-6dec6aa66a2b%28Office.15%29.aspx.md#bk_PeopleManager)| | [Server object model](https://msdn.microsoft.com/library/87c5118c-ac0e-4bd9-a75f-7452a9eb0e41%28Office.15%29.aspx)|Microsoft.Office.Server.UserProfiles.dll
in %ProgramFiles%\\Common Files\\Microsoft Shared\\web server extensions\\15\\ISAPI| - + > [!NOTE] > Not all server-side functionality in the Microsoft.Office.Server.UserProfiles assembly is available from client APIs. To see which APIs are available, see the [Microsoft.SharePoint.Client.Social](https://msdn.microsoft.com/library/Microsoft.SharePoint.Client.Social.aspx) namespace and the [Microsoft.SharePoint.Client.UserProfiles](https://msdn.microsoft.com/library/Microsoft.SharePoint.Client.UserProfiles.aspx) namespace. - - - + + + ## App permission requests for accessing social features in SharePoint Add-ins An SharePoint Add-in must request the permissions that it needs to access SharePoint resources from the user who installs it. For example, an app that posts to the feed should request **Write** permission (at minimum) to the feed. You specify the permissions that your app need in the AppManifest.xml file in Visual Studio. - - - + + + App permission requests are scoped to the SharePoint deployment landscape. Table 3 shows the scope names (with corresponding scope URIs) and the available rights for accessing social features. For more information, see [Add-in permissions in SharePoint](https://msdn.microsoft.com/library/5f7a8440-3c09-4cf8-83ec-c236bfa2d6c4%28Office.15%29.aspx), [Add-in authorization policy types in SharePoint](https://msdn.microsoft.com/library/124879c7-a746-4c10-96a7-da76ad5327f0%28Office.15%29.aspx), and [Plan app permissions management in SharePoint](https://technet.microsoft.com/library/jj219576%28office.15%29.aspx). - - - + + + **Table 3. App permission scopes and available rights for social features in SharePoint** @@ -178,80 +178,78 @@ App permission requests are scoped to the SharePoint deployment landscape. Table |Core
`http://sharepoint/social/core`|The permission request scope used to access the user's followed content and shared metadata that is used by microblogging features. This scope applies only to personal sites that support following content. If the app installs on any other type of site, use the Tenant scope.|Read, Write, Manage, FullControl| |News Feed
`http://sharepoint/social/microfeed`|The permission request scope used to access the user's feed or the team feed. This scope applies to personal sites that support microblogging or to team sites where the **Site Feed** feature is activated. If the app installs on any other type of site, use the Tenant scope.|Read, Write, Manage, FullControl| | `http://sharepoint/social/trimming`|This permission request scope used to determine whether to display security-trimmed content in the social feed to apps. If this high-trust permission is not granted, some content (such as activities about documents and sites that the app doesn't have permissions to) is trimmed from the feed data that's returned to the app, even if the user has sufficient permissions. This permission must be manually added to the app's manifest file.|Read, Write, Manage, FullControl| - + ### What you'll need to consider when requesting app permissions You should be aware of the following considerations when you specify app permissions for social features: - - - + + + - Apps that specify **FullControl** rights are not allowed for Office Store apps. Only **Read**, **Write**, and **Manage** rights are allowed for Office Store apps. - - + + - You can specify permissions for feed and following features by using the Core, News Feed, and Tenant ( `http://sharepoint/content/tenant`) scopes. The Tenant scope represents the whole tenancy where an app is installed, including the Core and News Feed scopes. So if your app already specifies the rights that it needs at the Tenant scope, then you don't need to request permissions at the Core or News Feed scope. - - + + - During development, use the Tenant scope if you get a "SocialListNotFound : The Social list does not exist in your personal site" or "File Not Found" message. If you want to use the Core or News Feed scope in your app, you can test the permissions by opening the app from the app catalog. - - + + - The Core scope applies to personal sites that support following content. The News Feed scope applies to personal sites that support microblogging or to team sites where the **Site Feed** feature is activated. If the app will be installed on any other type of site, you must use the Tenant scope. See [Tenancies and deployment scopes for SharePoint Add-ins](https://msdn.microsoft.com/library/1ceb3142-a7a5-453e-920f-5f953a79401a%28Office.15%29.aspx). - - + + - Apps that request rights for the User Profiles scope must be installed by a tenant administrator, and they cannot be installed in Office 365 Small Business Premium version of SharePoint Online. - - + + - If licensing or feature activation requirements for social and microblogging features are not met, users get a message saying that they can't install the app. - - + + - Apps that are launched outside of SharePoint can request permission on-the-fly (except **Full Control**). For more information, see [Authorization Code OAuth flow for SharePoint Add-ins](https://msdn.microsoft.com/library/e89e91c7-ea39-49b9-af5a-7f047a7e2ab7%28Office.15%29.aspx). - - + + ## See also **Conceptual articles** - - - + + + - [Social and collaboration features in SharePoint](social-and-collaboration-features-in-sharepoint.md) - - + + - [What's new for developers in social and collaboration features in SharePoint](what-s-new-for-developers-in-social-and-collaboration-features-in-sharepoint-201.md) - - + + - [Plan for social computing and collaboration in SharePoint](https://technet.microsoft.com/library/ee662531%28v=office.15%29) - - + + - [Configure social computing features in SharePoint](https://technet.microsoft.com/library/fp161267%28v=office.15%29.aspx) - - + + - [Social computing terminology and concepts in SharePoint](https://technet.microsoft.com/library/jj219804%28v=office.15%29.aspx) - - + + **Reference documentation** - - - + + + - [Social client class library](https://msdn.microsoft.com/library/9cc3f70c-78ac-4d2d-b46e-77522ee5d937%28Office.15%29.aspx) - - + + - [SP.UserProfiles.js JavaScript Reference](https://msdn.microsoft.com/library/80cf5436-6aa2-6f11-a782-66a04f6e2fb0%28Office.15%29.aspx) - - + + - [Social feed REST API reference for SharePoint](social-feed-rest-api-reference-for-sharepoint.md) - - + + - [Following people and content REST API reference for SharePoint](following-people-and-content-rest-api-reference-for-sharepoint.md) - - + + - [User profiles REST API reference](https://msdn.microsoft.com/library/10757ed1-6e86-474f-89e0-6dec6aa66a2b%28Office.15%29.aspx) - - + + - [SharePoint Social server class library](https://msdn.microsoft.com/library/87c5118c-ac0e-4bd9-a75f-7452a9eb0e41%28Office.15%29.aspx) - - diff --git a/docs/general-development/how-to-restrict-udf-code-access-security-permissions.md b/docs/general-development/how-to-restrict-udf-code-access-security-permissions.md index ccadfd1ac..bdfc1110d 100644 --- a/docs/general-development/how-to-restrict-udf-code-access-security-permissions.md +++ b/docs/general-development/how-to-restrict-udf-code-access-security-permissions.md @@ -1,131 +1,78 @@ --- title: Restrict UDF code access security permissions -description: "If you do not want a particular user-defined function (UDF) assembly to run with full trust, you must explicitly restrict code access security permissions for it." -ms.date: 09/25/2017 +description: "If you don't want a particular user-defined function (UDF) assembly to run with full trust, you must explicitly restrict code access security permissions for it." +ms.date: 04/24/2017 keywords: cas,how to,howdoi,howto,UDF list f1_keywords: - cas,how to,howdoi,howto,UDF list ms.assetid: 4f022e0d-1fe3-4fab-b41f-82a0d628f77c ms.localizationpriority: medium --- +# Restrict UDF code access security permissions +> [!NOTE] +> **Legacy guidance notice** +> +> This article applies only to legacy environments using **SharePoint Server 2010/2013 Excel Services** and **.NET Framework 2.0–3.5 Code Access Security (CAS)**. +> CAS, code groups, and the .NET Framework Configuration tool are **deprecated and not supported in .NET Framework 4+ or modern SharePoint/Excel platforms**. +> +> For modern solutions, use service-level security, APIs, and OS/network isolation instead of assembly-level permission configuration. -# Restrict UDF code access security permissions +If you don't want a particular user-defined function (UDF) assembly to run with full trust, you must explicitly restrict code access security permissions for it. You can configure code groups and restrict permissions by using the .NET Framework 2.0 Configuration tool. + +For example, imagine a scenario where you have a UDF assembly that contains multiple methods. One of the UDF methods performs a custom calculation, and another UDF method in the same assembly calls a Web service to obtain stock quotes. Because your users only use Excel workbooks that call the first (calculation) method, you might want to disable the assembly from having Web access, for increased security. -If you do not want a particular user-defined function (UDF) assembly to run with full trust, you must explicitly restrict code access security permissions for it. You can configure code groups and restrict permissions by using the .NET Framework 2.0 Configuration tool. - - - +You have the UDF assembly installed in a folder on the server at C:\\UdfAssemblies\\CalcAndWebAccessUdf.dll. Because the assembly is on the same computer as Microsoft SharePoint Server 2010, when Excel Calculation Services loads the UDF assembly, it's loaded in the MyComputer zone. By default, the MyComputer zone is fully trusted. This means that the UDF assembly is granted full trust permission. -For example, imagine a scenario where you have a UDF assembly that contains multiple methods. One of the UDF methods performs a custom calculation, and another UDF method in the same assembly calls a Web service to obtain stock quotes. Because your users only use Excel workbooks that call the first (calculation) method, you might want to disable the assembly from having Web access, for increased security. -You have the UDF assembly installed in a folder on the server at C:\\UdfAssemblies\\CalcAndWebAccessUdf.dll. Because the assembly is on the same computer as Microsoft SharePoint Server 2010, when Excel Calculation Services loads the UDF assembly, it is loaded in the MyComputer zone. By default, the MyComputer zone is fully trusted. This means that the UDF assembly is granted full trust permission. - - - +To lock down the UDF assembly so that it can't have Web access, you must explicitly restrict the permission set that it's granted by following these steps: -To lock down the UDF assembly so that it cannot have Web access, you must explicitly restrict the permission set that it is granted by following these steps: 1. Create a new URL-based code group under My_Computer_Zone at the Machine level. Scope the code group to that specific assembly and create a custom permission set. - - -2. Configure the custom code group properties so that your policy level has only the permissions from the permission set that is associated with the custom code group. When Excel Calculation Services loads a UDF assembly that resides on the same computer, the assembly is loaded in the MyComputer zone. This means that by default, the UDF assembly is granted full trust. When the custom permission set intersects with the full trust permission set, the result is full trust. To make it so that the a policy has only the permission from the permission set that is associated with your custom code group, you must enable the **This policy level will only have the permissions from the permission set associated with this code group** property. - - -For more information about configuring code groups, see the following articles on MSDN: -- [Configuring Code Groups Using the .NET Framework Configuration Tool](https://msdn.microsoft.com/library/default.asp?url=/library/cpguide/html/cpconUsingNETConfigurationToolToWorkWithCodeGroups.asp?frame=true) (https://msdn.microsoft.com/library/default.asp?url=/library/cpguide/html/cpconUsingNETConfigurationToolToWorkWithCodeGroups.asp?frame=true) - - -- [Code Access Security in Practice](https://msdn.microsoft.com/library/default.asp?url=/library/dnnetsec/html/thcmch08.asp) (https://msdn.microsoft.com/library/default.asp?url=/library/dnnetsec/html/thcmch08.asp) - - - -### To create a new code group - - -1. Click **Start**, point to **All Programs**, point to **Administrative Tools**, and then click **Microsoft .NET Framework 2.0 Configuration**. - +1. Configure the custom code group properties so that your policy level has only the permissions from the permission set that is associated with the custom code group. When Excel Calculation Services loads a UDF assembly that resides on the same computer, the assembly is loaded in the MyComputer zone. This means that by default, the UDF assembly is granted full trust. When the custom permission set intersects with the full trust permission set, the result is full trust. To make it so that the policy has only the permission from the permission set that is associated with your custom code group, you must enable the **This policy level will only have the permissions from the permission set associated with this code group** property. + +## To create a new code group + +1. Select **Start**, point to **All Programs**, point to **Administrative Tools**, and then select **Microsoft .NET Framework 2.0 Configuration**. + This starts the **.NET 2.0 Framework Configuration** tool. - - -2. In the left pane, expand the **My Computer** node, and then expand the **Runtime Security Policy** node. - - -3. Expand the **Machine** node. - - -4. Expand the **Code Groups** node. - - -5. Expand the **All_Code** node. - - -6. Expand the **My_Computer_Zone** node.Right-click **My_Computer_Zone** and then select **New** to display the **Identify the new Code Group** dialog box. - - -7. Select **Create a new code group**. - - -8. In the **Name** field, type a name for the new code group, for example,RestrictWebAccessUdf. - - -9. Click **Next**. - - -10. To scope the code group to your specific UDF assembly, select **URL** from the **Choose the condition type for this code group**. - + +1. In the left pane, expand the **My Computer** node, and then expand the **Runtime Security Policy** node. +1. Expand the **Machine** node. +1. Expand the **Code Groups** node. +1. Expand the **All_Code** node. +1. Expand the **My_Computer_Zone** node. Right-click **My_Computer_Zone** and then select **New** to display the **Identify the new Code Group** dialog box. +1. Select **Create a new code group**. +1. In the **Name** field, type a name for the new code group, for example, **RestrictWebAccessUdf**. +Select **Next**. +1. To scope the code group to your specific UDF assembly, select **URL** from the **Choose the condition type for this code group**. + This displays the **URL** field. - - -11. In the **URL** field, type the path to the UDF assembly for which you want to restrict access to the Web, for example,C:\\UdfAssemblies\\CalcAndWebAccessUdf.dll. - - -12. Click **Next**. - - -13. Select **Create a new permission set**, and then click **Next**. - - -14. In the **Name** field, type a name for your permission set, for example,AssemblyExecutionCustomPermissionSet. - - -15. Click **Next**. - - -16. To give your UDF assembly "assembly execution" permission, select **Security** from the **Assembly Permissions** list, and then click **Add**. - + +1. In the **URL** field, type the path to the UDF assembly for which you want to restrict access to the Web, for example,**C:\\UdfAssemblies\\CalcAndWebAccessUdf.dll**. +1. Select **Next**. +1. Select **Create a new permission set**, and then select **Next**. +1. In the **Name** field, type a name for your permission set, for example, **AssemblyExecutionCustomPermissionSet**. +1. Select **Next**. +1. To give your UDF assembly "assembly execution" permission, select **Security** from the **Assembly Permissions** list, and then select **Add**. + This displays the **Permission Settings** dialog box. - - -17. Select **assemblies the following security permissions**. - - -18. Select **Enable assembly execution**. - - -19. Click **OK**, and then click **Next**. - - -20. Click **Finish**. - + +1. Select **assemblies the following security permissions**. +1. Select **Enable assembly execution**. +1. Select **OK**, and then select **Next**. +1. Select **Finish**. You should see your new custom code group under the **My_Computer_Zone** node (in this example, **RestrictWebAccessUdf**). - - ### To make sure that the permission sets are executed +1. Under the **My_Computer_Zone** node, right-click the new custom code group (in this example, **RestrictWebAccessUdf**), and then select **Properties**. +1. On the **General** tab, select the **This policy level will only have the permissions from the permission set associated with this code group** check box. +1. Select **Apply**, and then select **OK**. -1. Under the **My_Computer_Zone** node, right-click the new custom code group (in this example, **RestrictWebAccessUdf**), and then select **Properties**. - - -2. On the **General** tab, select the **This policy level will only have the permissions from the permission set associated with this code group** check box. - - -3. Click **Apply**, and then click **OK**. - > [!NOTE] - > If the UDF method throws an exception because it cannot make the Web service call, you should receive a **#VALUE!** error in the Excel formula that called the UDF. + > If the UDF method throws an exception because it can't make the Web service call, you should receive a **#VALUE!** error in the Excel formula that called the UDF. > [!NOTE] - > If you want to enable Web access for your UDF assembly for testing, you must add the appropriate permission to your custom permission set. To do this, in Step 11 of the "To create a new code group" procedure, select **Web Access**. + > If you want to enable Web access for your UDF assembly for testing, you must add the appropriate permission to your custom permission set. To do this, in Step 11 of the "To create a new code group" procedure, select **Web Access**. ## See also diff --git a/docs/general-development/how-tos-for-sharepoint.md b/docs/general-development/how-tos-for-sharepoint.md index 5acfb2ba5..1be602b76 100644 --- a/docs/general-development/how-tos-for-sharepoint.md +++ b/docs/general-development/how-tos-for-sharepoint.md @@ -11,188 +11,194 @@ ms.localizationpriority: high Find how-to articles and related code examples that show how to perform basic development tasks in SharePoint, including how to set up your development environment and start building sites, SharePoint Framework and SharePoint Add-ins. +> [!NOTE] +> **Important notice: SharePoint Add-ins are deprecated** +> +> SharePoint Add-ins (including provider-hosted and SharePoint-hosted add-ins) are a legacy development model. They are no longer recommended for new development and have been largely superseded by SharePoint Framework (SPFx), Microsoft Graph, and Microsoft 365 development patterns. +> +> This page includes both modern SharePoint Framework (SPFx) guidance and legacy SharePoint Add-in content for reference purposes only. For new solutions, use SPFx and Microsoft 365 developer services instead. + ## Getting started how-tos for SharePoint Framework -|Title|Summary| -|:-----|:-----| -| [Set up your SharePoint Framework development environment](../spfx/set-up-your-development-environment.md) |Learn how to set up a development environment for SharePoint Framework development. | -| [Building your first SharePoint client-side web part](../spfx/web-parts/get-started/build-a-hello-world-web-part.md) |Learn how to get started with developing SharePoint Framework client-side web parts. | -| [Build your first SharePoint Framework Extension](../spfx/extensions/get-started/build-a-hello-world-extension.md) |Learn how to get started with developing SharePoint Framework Extensions. | +| Title | Summary | +| :----- | :----- | +| [Set up your SharePoint Framework development environment](../spfx/set-up-your-development-environment.md) | Learn how to set up a development environment for SharePoint Framework development. | +| [Building your first SharePoint client-side web part](../spfx/web-parts/get-started/build-a-hello-world-web-part.md) | Learn how to get started with developing SharePoint Framework client-side web parts. | +| [Build your first SharePoint Framework Extension](../spfx/extensions/get-started/build-a-hello-world-extension.md) | Learn how to get started with developing SharePoint Framework Extensions. | ## Getting started how-tos for SharePoint Add-ins -|Title|Summary| -|:-----|:-----| -| [Set up an on-premises development environment for SharePoint Add-ins](../sp-add-ins/set-up-an-on-premises-development-environment-for-sharepoint-add-ins.md) |Learn how to set up a development environment that is specifically suited to developing SharePoint Add-ins with an on-premises installation of SharePoint. | -| [Get started creating provider-hosted SharePoint Add-ins](../sp-add-ins/get-started-creating-provider-hosted-sharepoint-add-ins.md) |Learn how to create a basic provider-hosted SharePoint Add-in with the Office Developer Tools for Visual Studio 2012, how to interact with SharePoint sites by using the SharePoint CSOM, and how to implement OAuth in an SharePoint Add-in. | -| [Get started creating SharePoint-hosted SharePoint Add-ins](../sp-add-ins/get-started-creating-sharepoint-hosted-sharepoint-add-ins.md) |Learn how to create a basic SharePoint-hosted SharePoint Add-in with the Office Developer Tools for Visual Studio 2012. | +| Title | Summary | +| :----- | :----- | +| [Set up an on-premises development environment for SharePoint Add-ins](../sp-add-ins/set-up-an-on-premises-development-environment-for-sharepoint-add-ins.md) | Learn how to set up a development environment that is specifically suited to developing SharePoint Add-ins with an on-premises installation of SharePoint. | +| [Get started creating provider-hosted SharePoint Add-ins](../sp-add-ins/get-started-creating-provider-hosted-sharepoint-add-ins.md) | Learn how to create a basic provider-hosted SharePoint Add-in with the Office Developer Tools for Visual Studio 2012, how to interact with SharePoint sites by using the SharePoint CSOM, and how to implement OAuth in an SharePoint Add-in. | +| [Get started creating SharePoint-hosted SharePoint Add-ins](../sp-add-ins/get-started-creating-sharepoint-hosted-sharepoint-add-ins.md) | Learn how to create a basic SharePoint-hosted SharePoint Add-in with the Office Developer Tools for Visual Studio 2012. | ## Development how-tos for SharePoint Add-ins -|Title|Summary| -|:-----|:-----| -| [Complete basic operations using SharePoint client library code](../sp-add-ins/complete-basic-operations-using-sharepoint-client-library-code.md) |Learn how to write code to perform basic operations with the SharePoint .NET Framework client object model (CSOM). | -| [Complete basic operations using JavaScript library code in SharePoint](../sp-add-ins/complete-basic-operations-using-javascript-library-code-in-sharepoint.md) |Learn how to write code to perform basic operations using the JavaScript client object model in SharePoint. | -| [Complete basic operations using SharePoint REST endpoints](../sp-add-ins/complete-basic-operations-using-sharepoint-rest-endpoints.md) |Learn how to perform basic create, read, update, and delete (CRUD) operations with the SharePoint REST interface. | -| [Use a SharePoint website's style sheet in SharePoint Add-ins](../sp-add-ins/use-a-sharepoint-website-s-style-sheet-in-sharepoint-add-ins.md) |Learn how to use a SharePoint website's style sheet in an SharePoint Add-in. | -| [Use the client chrome control in SharePoint Add-ins](../sp-add-ins/use-the-client-chrome-control-in-sharepoint-add-ins.md) |Learn how to use the chrome control in apps in SharePoint. | -| [Create add-in parts to install with your SharePoint Add-in](../sp-add-ins/create-add-in-parts-to-install-with-your-sharepoint-add-in.md) |Learn how to create an app part in SharePoint that is available in the Web Part Gallery of the host web when you deploy your SharePoint Add-in. | -| [Create custom actions to deploy with SharePoint Add-ins](../sp-add-ins/create-custom-actions-to-deploy-with-sharepoint-add-ins.md) |Learn how to create a custom action in SharePoint that deploys to the host web when you deploy an SharePoint Add-in. | -| [Customize a list view in SharePoint Add-ins using client-side rendering](../sp-add-ins/customize-a-list-view-in-sharepoint-add-ins-using-client-side-rendering.md) |Learn how to customize a list view in a SharePoint-hosted app by using the client-side rendering technology in SharePoint. | -| [Use the client-side People Picker control in SharePoint-hosted SharePoint Add-ins](../sp-add-ins/use-the-client-side-people-picker-control-in-sharepoint-hosted-sharepoint-add-in.md) |Learn how to use the client-side People Picker control in SharePoint Add-ins. | -| [Create a custom proxy page for the cross-domain library in SharePoint](../sp-add-ins/create-a-custom-proxy-page-for-the-cross-domain-library-in-sharepoint.md) |Learn how to create a custom proxy page to access data in a remote service from a SharePoint webpage by using the cross domain library in SharePoint. | -| [Query a remote service using the web proxy in SharePoint](../sp-add-ins/query-a-remote-service-using-the-web-proxy-in-sharepoint.md) |Learn how to access data in a remote domain from a page that is hosted in SharePoint by using the web proxy. | -| [Access SharePoint data from add-ins using the cross-domain library](../sp-add-ins/access-sharepoint-data-from-add-ins-using-the-cross-domain-library.md) |Learn how to access data in a SharePoint website from a remote app by using the cross domain library in SharePoint. | -| [Create a remote event receiver in SharePoint Add-ins](../sp-add-ins/create-a-remote-event-receiver-in-sharepoint-add-ins.md) |Learn the basics about how to handle, add, and remove events in an SharePoint Add-in by using the Office Developer Tools for Visual Studio 2012. | -| [Create an add-in event receiver in SharePoint Add-ins](../sp-add-ins/create-an-add-in-event-receiver-in-sharepoint-add-ins.md) |Learn the basics about how to create a receiver and add or remove handlers for events that occur to an SharePoint Add-in by using the Office Developer Tools for Visual Studio 2012. | -| [Create a provider-hosted add-in that includes a custom SharePoint list and content type](../sp-add-ins/create-a-provider-hosted-add-in-that-includes-a-custom-sharepoint-list-and-conte.md) |Create an SharePoint Add-in that combines a cloud-hosted web application with custom SharePoint-hosted list templates, list instances, and custom content types by using the Office Developer Tools for Visual Studio 2012. Learn how to interact with SharePoint app webs by using the REST/OData web service, and how to implement OAuth in an SharePoint Add-in. | -| [Get user identity and properties in SharePoint](../sp-add-ins/get-user-identity-and-properties-in-sharepoint.md) |Learn the different ways to retrieve user identity and user information in SharePoint. | -| [Localize SharePoint Add-ins](../sp-add-ins/localize-sharepoint-add-ins.md) |Localize an SharePoint Add-in by using resource files, JavaScript "resource" files, and other techniques. | -| [Create high-trust SharePoint Add-ins](../sp-add-ins/create-high-trust-sharepoint-add-ins.md) |Learn how to create a high-trust app for SharePoint. A high-trust app is a provider-hosted app for use on-premises that uses the server-to-server protocol. | -| [Package and publish high-trust SharePoint Add-ins](../sp-add-ins/package-and-publish-high-trust-sharepoint-add-ins.md) |Learn how to package and publish a high-trust SharePoint Add-in for on-premises use. | +| Title | Summary | +| :----- | :----- | +| [Complete basic operations using SharePoint client library code](../sp-add-ins/complete-basic-operations-using-sharepoint-client-library-code.md) | Learn how to write code to perform basic operations with the SharePoint .NET Framework client object model (CSOM). | +| [Complete basic operations using JavaScript library code in SharePoint](../sp-add-ins/complete-basic-operations-using-javascript-library-code-in-sharepoint.md) | Learn how to write code to perform basic operations using the JavaScript client object model in SharePoint. | +| [Complete basic operations using SharePoint REST endpoints](../sp-add-ins/complete-basic-operations-using-sharepoint-rest-endpoints.md) | Learn how to perform basic create, read, update, and delete (CRUD) operations with the SharePoint REST interface. | +| [Use a SharePoint website's style sheet in SharePoint Add-ins](../sp-add-ins/use-a-sharepoint-website-s-style-sheet-in-sharepoint-add-ins.md) | Learn how to use a SharePoint website's style sheet in an SharePoint Add-in. | +| [Use the client chrome control in SharePoint Add-ins](../sp-add-ins/use-the-client-chrome-control-in-sharepoint-add-ins.md) | Learn how to use the chrome control in apps in SharePoint. | +| [Create add-in parts to install with your SharePoint Add-in](../sp-add-ins/create-add-in-parts-to-install-with-your-sharepoint-add-in.md) | Learn how to create an app part in SharePoint that is available in the Web Part Gallery of the host web when you deploy your SharePoint Add-in. | +| [Create custom actions to deploy with SharePoint Add-ins](../sp-add-ins/create-custom-actions-to-deploy-with-sharepoint-add-ins.md) | Learn how to create a custom action in SharePoint that deploys to the host web when you deploy an SharePoint Add-in. | +| [Customize a list view in SharePoint Add-ins using client-side rendering](../sp-add-ins/customize-a-list-view-in-sharepoint-add-ins-using-client-side-rendering.md) | Learn how to customize a list view in a SharePoint-hosted app by using the client-side rendering technology in SharePoint. | +| [Use the client-side People Picker control in SharePoint-hosted SharePoint Add-ins](../sp-add-ins/use-the-client-side-people-picker-control-in-sharepoint-hosted-sharepoint-add-in.md) | Learn how to use the client-side People Picker control in SharePoint Add-ins. | +| [Create a custom proxy page for the cross-domain library in SharePoint](../sp-add-ins/create-a-custom-proxy-page-for-the-cross-domain-library-in-sharepoint.md) | Learn how to create a custom proxy page to access data in a remote service from a SharePoint webpage by using the cross domain library in SharePoint. | +| [Query a remote service using the web proxy in SharePoint](../sp-add-ins/query-a-remote-service-using-the-web-proxy-in-sharepoint.md) | Learn how to access data in a remote domain from a page that is hosted in SharePoint by using the web proxy. | +| [Access SharePoint data from add-ins using the cross-domain library](../sp-add-ins/access-sharepoint-data-from-add-ins-using-the-cross-domain-library.md) | Learn how to access data in a SharePoint website from a remote app by using the cross domain library in SharePoint. | +| [Create a remote event receiver in SharePoint Add-ins](../sp-add-ins/create-a-remote-event-receiver-in-sharepoint-add-ins.md) | Learn the basics about how to handle, add, and remove events in an SharePoint Add-in by using the Office Developer Tools for Visual Studio 2012. | +| [Create an add-in event receiver in SharePoint Add-ins](../sp-add-ins/create-an-add-in-event-receiver-in-sharepoint-add-ins.md) | Learn the basics about how to create a receiver and add or remove handlers for events that occur to an SharePoint Add-in by using the Office Developer Tools for Visual Studio 2012. | +| [Create a provider-hosted add-in that includes a custom SharePoint list and content type](../sp-add-ins/create-a-provider-hosted-add-in-that-includes-a-custom-sharepoint-list-and-conte.md) | Create an SharePoint Add-in that combines a cloud-hosted web application with custom SharePoint-hosted list templates, list instances, and custom content types by using the Office Developer Tools for Visual Studio 2012. Learn how to interact with SharePoint app webs by using the REST/OData web service, and how to implement OAuth in an SharePoint Add-in. | +| [Get user identity and properties in SharePoint](../sp-add-ins/get-user-identity-and-properties-in-sharepoint.md) | Learn the different ways to retrieve user identity and user information in SharePoint. | +| [Localize SharePoint Add-ins](../sp-add-ins/localize-sharepoint-add-ins.md) | Localize an SharePoint Add-in by using resource files, JavaScript "resource" files, and other techniques. | +| [Create high-trust SharePoint Add-ins](../sp-add-ins/create-high-trust-sharepoint-add-ins.md) | Learn how to create a high-trust app for SharePoint. A high-trust app is a provider-hosted app for use on-premises that uses the server-to-server protocol. | +| [Package and publish high-trust SharePoint Add-ins](../sp-add-ins/package-and-publish-high-trust-sharepoint-add-ins.md) | Learn how to package and publish a high-trust SharePoint Add-in for on-premises use. | ## Publishing how-tos for Office and SharePoint Add-ins -|Title|Summary| -|:-----|:-----| -| [Publish SharePoint Add-ins by using Visual Studio](../sp-add-ins/publish-sharepoint-add-ins-by-using-visual-studio.md) |Learn how to package your SharePoint Add-in by using Visual Studio 2012. | -| [Create or edit a Seller Dashboard seller account and add payout information](https://developer.microsoft.com/store/register) |The Microsoft Seller Dashboard is the central location for app developers to submit Office and SharePoint Add-ins. Learn how to create a seller account, including a marketing profile, so that you can submit apps for inclusion in the Office Store. | -| [Create or update client IDs and secrets in the Seller Dashboard](/office/dev/store/create-or-update-client-ids-and-secrets) |Learn how to create Client IDs and secrets, and associate them with your apps in the Seller Dashboard to enable Open Authorization (OAuth) authorization services in your Office and SharePoint Add-ins. | -| [Use the Seller Dashboard to submit Office and SharePoint Add-ins and Office 365 apps to the Office Store](/office/dev/store/use-the-seller-dashboard-to-submit-to-the-office-store) |The Microsoft Seller Dashboard enables software developers to submit apps for SharePoint and Office to the Office Store. Learn how to submit your apps for approval and inclusion in the Office Store. | -| [Create effective Office Store apps and add-ins](/office/dev/store/create-effective-office-store-listings) |Get guidance on how to create an effective Office Store listing: name your app appropriately, write effective, engaging app descriptions for your app, and include consistent, properly formatted logos with your app submission to the Seller Dashboard. | +| Title | Summary | +| :----- | :----- | +| [Publish SharePoint Add-ins by using Visual Studio](../sp-add-ins/publish-sharepoint-add-ins-by-using-visual-studio.md) | Learn how to package your SharePoint Add-in by using Visual Studio 2012. | +| [Create or edit a Seller Dashboard seller account and add payout information](https://developer.microsoft.com/store/register) | The Microsoft Seller Dashboard is the central location for app developers to submit Office and SharePoint Add-ins. Learn how to create a seller account, including a marketing profile, so that you can submit apps for inclusion in the Office Store. | +| [Create or update client IDs and secrets in the Seller Dashboard](/office/dev/store/create-or-update-client-ids-and-secrets) | Learn how to create Client IDs and secrets, and associate them with your apps in the Seller Dashboard to enable Open Authorization (OAuth) authorization services in your Office and SharePoint Add-ins. | +| [Use the Seller Dashboard to submit Office and SharePoint Add-ins and Office 365 apps to the Office Store](/office/dev/store/use-the-seller-dashboard-to-submit-to-the-office-store) | The Microsoft Seller Dashboard enables software developers to submit apps for SharePoint and Office to the Office Store. Learn how to submit your apps for approval and inclusion in the Office Store. | +| [Create effective Office Store apps and add-ins](/office/dev/store/create-effective-office-store-listings) | Get guidance on how to create an effective Office Store listing: name your app appropriately, write effective, engaging app descriptions for your app, and include consistent, properly formatted logos with your app submission to the Seller Dashboard. | ## Licensing how-tos for Office and SharePoint Add-ins -|Title|Summary| -|:-----|:-----| -| [Add license checks to your apps for Office](https://msdn.microsoft.com/library/fp161347.aspx) |Learn how to add code to your Office Add-in that checks the validity of a user's app license, and takes action based on the app license properties. Load test app license tokens to test your license checking code. | -| [Add license checks to Office and SharePoint Add-ins](/office/dev/store/add-license-checks-to-office-and-sharepoint-add-ins) |Learn how to add code to your SharePoint Add-in that checks the validity of a user's app license, and takes action based on the app license properties. Load test app license tokens to test your license checking code. | +| Title | Summary | +| :----- | :----- | +| [Add license checks to Office and SharePoint Add-ins](/office/dev/store/add-license-checks-to-office-and-sharepoint-add-ins) | Learn how to add code to your SharePoint Add-in that checks the validity of a user's app license, and takes action based on the app license properties. Load test app license tokens to test your license checking code. | ## Setting up your dev environment how-tos for developing sites and solutions in SharePoint -|Title|Summary| -|:-----|:-----| -| [Detect the installed SKU of SharePoint](how-to-detect-the-installed-sku-of-sharepoint.md) |If the behavior of your solutions depends on the locally installed SKU of SharePoint or Project Server 2013, use the code sample in this article to find the SKU information you need. | -| [Set up an environment for developing mobile apps for SharePoint](how-to-set-up-an-environment-for-developing-mobile-apps-for-sharepoint.md) |Learn about the system requirements and configuring a development environment for SharePoint mobility projects. | +| Title | Summary | +| :----- | :----- | +| [Detect the installed SKU of SharePoint](how-to-detect-the-installed-sku-of-sharepoint.md) | If the behavior of your solutions depends on the locally installed SKU of SharePoint or Project Server 2013, use the code sample in this article to find the SKU information you need. | +| [Set up an environment for developing mobile apps for SharePoint](how-to-set-up-an-environment-for-developing-mobile-apps-for-sharepoint.md) | Learn about the system requirements and configuring a development environment for SharePoint mobility projects. | ## Customization how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Customize a field type using client-side rendering](how-to-customize-a-field-type-using-client-side-rendering.md) |Learn how to customize a field type by using the client-side rendering technology in SharePoint. | -| [Customize list item queries and filter data for Windows Phone apps](how-to-customize-list-item-queries-and-filter-data-for-windows-phone-apps.md) |Customize the data queries on which the views in a Windows Phone app are based. | -| [Customize the user interface of a SharePoint list app for Windows Phone](how-to-customize-the-user-interface-of-a-sharepoint-list-app-for-windows-ph.md) |Customize the Windows Phone user interface generated by the Windows Phone SharePoint List Application template. | +| Title | Summary | +| :----- | :----- | +| [Customize a field type using client-side rendering](how-to-customize-a-field-type-using-client-side-rendering.md) | Learn how to customize a field type by using the client-side rendering technology in SharePoint. | +| [Customize list item queries and filter data for Windows Phone apps](how-to-customize-list-item-queries-and-filter-data-for-windows-phone-apps.md) | Customize the data queries on which the views in a Windows Phone app are based. | +| [Customize the user interface of a SharePoint list app for Windows Phone](how-to-customize-the-user-interface-of-a-sharepoint-list-app-for-windows-ph.md) | Customize the Windows Phone user interface generated by the Windows Phone SharePoint List Application template. | ## Building mobile apps how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Set up an environment for developing mobile apps for SharePoint](how-to-set-up-an-environment-for-developing-mobile-apps-for-sharepoint.md) |Learn about the system requirements and configuring a development environment for SharePoint mobility projects. | -| [Create a Windows Phone SharePoint list app](how-to-create-a-windows-phone-sharepoint-list-app.md) |Create a Windows Phone app in Visual Studio based on the Windows Phone SharePoint List Application template. | -| [Store and retrieve SharePoint list items on a Windows Phone](how-to-store-and-retrieve-sharepoint-list-items-on-a-windows-phone.md) |Learn about the Windows Phone application life cycle and storing network data locally. | -| [Implement business logic and data validation in a Windows Phone app for SharePoint](how-to-implement-business-logic-and-data-validation-in-a-windows-phone-app-for-s.md) |Implement data validation in a Windows Phone app created by using the Windows Phone SharePoint List Application template. | -| [Support and convert SharePoint field types for Windows Phone apps](how-to-support-and-convert-sharepoint-field-types-for-windows-phone-apps.md) |Implement data-conversion logic to support SharePoint field types in Windows Phone apps. | -| [Customize list item queries and filter data for Windows Phone apps](how-to-customize-list-item-queries-and-filter-data-for-windows-phone-apps.md) |Customize the data queries on which the views in a Windows Phone app are based. | -| [Customize the user interface of a SharePoint list app for Windows Phone](how-to-customize-the-user-interface-of-a-sharepoint-list-app-for-windows-ph.md) |Customize the Windows Phone user interface generated by the Windows Phone SharePoint List Application template. | -| [Use multiple SharePoint lists in a Windows Phone app](how-to-use-multiple-sharepoint-lists-in-a-windows-phone-app.md) |Create Windows Phone apps that use data from multiple SharePoint lists. | -| [Configure and use push notifications in SharePoint apps for Windows Phone](how-to-configure-and-use-push-notifications-in-sharepoint-apps-for-windows.md) |Create a solution in SharePoint Server for sending push notifications and develop a Windows Phone app for receiving the notifications. | -| [Create a mobile app in SharePoint that contains data from an external data source](how-to-create-a-mobile-app-in-sharepoint-that-contains-data-from-an-externa.md) |Learn how to create a simple mobile app in SharePoint that contains data from external data source by using Business Connectivity Services (BCS) and connecting to an external list. | -| [Integrate maps with Windows Phone apps and SharePoint lists](how-to-integrate-maps-with-windows-phone-apps-and-sharepoint-lists.md) |Learn how to integrate location information and maps in SharePoint lists and location-based web and mobile SharePoint Add-ins, by using the new Geolocation field, and by creating your own geolocation-based field types. | -| [Build search-driven mobile apps with the Navigation and Event Logging REST interfaces](how-to-build-search-driven-mobile-apps-with-the-navigation-and-event-logging-res.md) |SharePoint introduces the Navigation and Event Logging REST interfaces, enabling you to create a search-driven mobile app for mobile devices such as phones and tablets that run on operating systems other than Windows???for example, Android and iOS. | -| [Export the Name field in a Document Library list to a mobile app](how-to-export-the-name-field-in-a-document-library-list-to-a-mobile-app.md) |Export the Name field of a Document Library list to a mobile app by using the Visual Studio SharePoint List wizard. The Name field does not appear automatically when a user creates a mobile app for a document library in SharePoint. | +| Title | Summary | +| :----- | :----- | +| [Set up an environment for developing mobile apps for SharePoint](how-to-set-up-an-environment-for-developing-mobile-apps-for-sharepoint.md) | Learn about the system requirements and configuring a development environment for SharePoint mobility projects. | +| [Create a Windows Phone SharePoint list app](how-to-create-a-windows-phone-sharepoint-list-app.md) | Create a Windows Phone app in Visual Studio based on the Windows Phone SharePoint List Application template. | +| [Store and retrieve SharePoint list items on a Windows Phone](how-to-store-and-retrieve-sharepoint-list-items-on-a-windows-phone.md) | Learn about the Windows Phone application life cycle and storing network data locally. | +| [Implement business logic and data validation in a Windows Phone app for SharePoint](how-to-implement-business-logic-and-data-validation-in-a-windows-phone-app-for-s.md) | Implement data validation in a Windows Phone app created by using the Windows Phone SharePoint List Application template. | +| [Support and convert SharePoint field types for Windows Phone apps](how-to-support-and-convert-sharepoint-field-types-for-windows-phone-apps.md) | Implement data-conversion logic to support SharePoint field types in Windows Phone apps. | +| [Customize list item queries and filter data for Windows Phone apps](how-to-customize-list-item-queries-and-filter-data-for-windows-phone-apps.md) | Customize the data queries on which the views in a Windows Phone app are based. | +| [Customize the user interface of a SharePoint list app for Windows Phone](how-to-customize-the-user-interface-of-a-sharepoint-list-app-for-windows-ph.md) | Customize the Windows Phone user interface generated by the Windows Phone SharePoint List Application template. | +| [Use multiple SharePoint lists in a Windows Phone app](how-to-use-multiple-sharepoint-lists-in-a-windows-phone-app.md) | Create Windows Phone apps that use data from multiple SharePoint lists. | +| [Configure and use push notifications in SharePoint apps for Windows Phone](how-to-configure-and-use-push-notifications-in-sharepoint-apps-for-windows.md) | Create a solution in SharePoint Server for sending push notifications and develop a Windows Phone app for receiving the notifications. | +| [Create a mobile app in SharePoint that contains data from an external data source](how-to-create-a-mobile-app-in-sharepoint-that-contains-data-from-an-externa.md) | Learn how to create a simple mobile app in SharePoint that contains data from external data source by using Business Connectivity Services (BCS) and connecting to an external list. | +| [Integrate maps with Windows Phone apps and SharePoint lists](how-to-integrate-maps-with-windows-phone-apps-and-sharepoint-lists.md) | Learn how to integrate location information and maps in SharePoint lists and location-based web and mobile SharePoint Add-ins, by using the new Geolocation field, and by creating your own geolocation-based field types. | +| [Build search-driven mobile apps with the Navigation and Event Logging REST interfaces](how-to-build-search-driven-mobile-apps-with-the-navigation-and-event-logging-res.md) | SharePoint introduces the Navigation and Event Logging REST interfaces, enabling you to create a search-driven mobile app for mobile devices such as phones and tablets that run on operating systems other than Windows???for example, Android and iOS. | +| [Export the Name field in a Document Library list to a mobile app](how-to-export-the-name-field-in-a-document-library-list-to-a-mobile-app.md) | Export the Name field of a Document Library list to a mobile app by using the Visual Studio SharePoint List wizard. The Name field does not appear automatically when a user creates a mobile app for a document library in SharePoint. | ## Building sites using Design Manager how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Use code to pin terms to navigation term sets in SharePoint](how-to-use-code-to-pin-terms-to-navigation-term-sets-in-sharepoint.md) |Learn how to use code to pin terms to navigation term sets. | -| [Create device channels in SharePoint](https://msdn.microsoft.com/library/339c7dba-95ee-46e0-8c76-0fe1adb6f366.aspx) |Learn how to create a device channel, change a device channel, delete a device channel, and reorder device channels in SharePoint. | -| [Map a network drive to the SharePoint Master Page Gallery](how-to-map-a-network-drive-to-the-sharepoint-master-page-gallery.md) |Learn how to map a network drive to the Master Page Gallery so that you can use Design Manager to upload design files in SharePoint. | -| [Convert an HTML file into a master page in SharePoint](how-to-convert-an-html-file-into-a-master-page-in-sharepoint.md) |With Design Manager, you can convert an .html file into a SharePoint master page, a .master file. After the conversion, the HTML file and master page are associated, so that when you edit and save the HTML file, the changes are synced to the associated master page. | -| [Apply a master page to a site in SharePoint](how-to-apply-a-master-page-to-a-site-in-sharepoint.md) |Learn how to map a master page to a SharePoint site. | -| [Create a page layout in SharePoint](how-to-create-a-page-layout-in-sharepoint.md) |When you use Design Manager to create a page layout, two files are created: an .aspx file that SharePoint uses, and an HTML version of that page layout that you can edit in your HTML editor. The HTML file and page layout are associated, so that whenever you edit and save the HTML file, your changes are synced to the associated page layout. | -| [Resolve errors and warnings when previewing a page in SharePoint](how-to-resolve-errors-and-warnings-when-previewing-a-page-in-sharepoint.md) |After you convert an HTML file into a SharePoint master page, or after you create a page layout, you can preview that page in the browser. But before you can preview a master page or page layout, you may have to resolve any issues that prevent the server-side preview from rendering your page. | -| [Change the preview page in SharePoint Design Manager](how-to-change-the-preview-page-in-sharepoint-design-manager.md) |Learn how to set, create, and change the preview page in Design Manager in SharePoint. | -| [Add a Device Channel Panel snippet in SharePoint](how-to-add-a-device-channel-panel-snippet-in-sharepoint.md) |A Device Channel Panel is a snippet that you can add to a master page or page layout to control what content is rendered for each channel that you create. The primary purpose of a Device Channel Panel is to selectively display different page fields on different channels from a single page layout. | -| [Add an Edit Mode Panel snippet in SharePoint](how-to-add-an-edit-mode-panel-snippet-in-sharepoint.md) |An Edit Mode Panel is a snippet that you can use to display instructions or other content to content authors, who see the contents of that panel only when they edit a page. Conversely, this snippet can also be configured to display its contents only in regular (view) mode instead of in edit mode. | -| [Add a web part zone snippet in SharePoint](how-to-add-a-web-part-zone-snippet-in-sharepoint.md) |A web part zone is a snippet that you can add to a page layout so that content authors can add, edit, or delete web parts in that zone. | -| [Add a Security Trim snippet in SharePoint](how-to-add-a-security-trim-snippet-in-sharepoint.md) |You can use a Security Trim snippet to display content only to specific users, based on a specific permission that those users must have and whether the users are authenticated or anonymous. | -| [SharePoint Design Manager image renditions](sharepoint-design-manager-image-renditions.md) |Learn how to create, edit, or delete image renditions. An image rendition defines the dimensions that are used to display images in SharePoint publishing sites. | -| [Add an image rendition to a page in SharePoint](https://msdn.microsoft.com/library/fp161347.aspx) |Learn how to use image renditions in a SharePoint publishing site. | -| [Crop an image rendition in SharePoint](https://msdn.microsoft.com/library/fp161347.aspx) |Learn how to specify the portion of the image to use in an image rendition. | +| Title | Summary | +| :----- | :----- | +| [Use code to pin terms to navigation term sets in SharePoint](how-to-use-code-to-pin-terms-to-navigation-term-sets-in-sharepoint.md) | Learn how to use code to pin terms to navigation term sets. | +| [Create device channels in SharePoint](/sharepoint/dev/general-development/sharepoint-design-manager-device-channels#create) | Learn how to create a device channel, change a device channel, delete a device channel, and reorder device channels in SharePoint. | +| [Map a network drive to the SharePoint Master Page Gallery](how-to-map-a-network-drive-to-the-sharepoint-master-page-gallery.md) | Learn how to map a network drive to the Master Page Gallery so that you can use Design Manager to upload design files in SharePoint. | +| [Convert an HTML file into a master page in SharePoint](how-to-convert-an-html-file-into-a-master-page-in-sharepoint.md) |With Design Manager, you can convert an .html file into a SharePoint master page, a .master file. After the conversion, the HTML file and master page are associated, so that when you edit and save the HTML file, the changes are synced to the associated master page. | +| [Apply a master page to a site in SharePoint](how-to-apply-a-master-page-to-a-site-in-sharepoint.md) | Learn how to map a master page to a SharePoint site. | +| [Create a page layout in SharePoint](how-to-create-a-page-layout-in-sharepoint.md) | When you use Design Manager to create a page layout, two files are created: an .aspx file that SharePoint uses, and an HTML version of that page layout that you can edit in your HTML editor. The HTML file and page layout are associated, so that whenever you edit and save the HTML file, your changes are synced to the associated page layout. | +| [Resolve errors and warnings when previewing a page in SharePoint](how-to-resolve-errors-and-warnings-when-previewing-a-page-in-sharepoint.md) | After you convert an HTML file into a SharePoint master page, or after you create a page layout, you can preview that page in the browser. But before you can preview a master page or page layout, you may have to resolve any issues that prevent the server-side preview from rendering your page. | +| [Change the preview page in SharePoint Design Manager](how-to-change-the-preview-page-in-sharepoint-design-manager.md) | Learn how to set, create, and change the preview page in Design Manager in SharePoint. | +| [Add a Device Channel Panel snippet in SharePoint](how-to-add-a-device-channel-panel-snippet-in-sharepoint.md) | A Device Channel Panel is a snippet that you can add to a master page or page layout to control what content is rendered for each channel that you create. The primary purpose of a Device Channel Panel is to selectively display different page fields on different channels from a single page layout. | +| [Add an Edit Mode Panel snippet in SharePoint](how-to-add-an-edit-mode-panel-snippet-in-sharepoint.md) | An Edit Mode Panel is a snippet that you can use to display instructions or other content to content authors, who see the contents of that panel only when they edit a page. Conversely, this snippet can also be configured to display its contents only in regular (view) mode instead of in edit mode. | +| [Add a web part zone snippet in SharePoint](how-to-add-a-web-part-zone-snippet-in-sharepoint.md) | A web part zone is a snippet that you can add to a page layout so that content authors can add, edit, or delete web parts in that zone. | +| [Add a Security Trim snippet in SharePoint](how-to-add-a-security-trim-snippet-in-sharepoint.md) | You can use a Security Trim snippet to display content only to specific users, based on a specific permission that those users must have and whether the users are authenticated or anonymous. | +| [SharePoint Design Manager image renditions](sharepoint-design-manager-image-renditions.md) | Learn how to create, edit, or delete image renditions. An image rendition defines the dimensions that are used to display images in SharePoint publishing sites. | +| [Add an image rendition to a page in SharePoint](/sharepoint/dev/general-development/sharepoint-design-manager-image-renditions#add-an-image-rendition) | Learn how to use image renditions in a SharePoint publishing site. | +| [Crop an image rendition in SharePoint](/sharepoint/dev/general-development/sharepoint-design-manager-image-renditions#crop-an-image-rendition) | Learn how to specify the portion of the image to use in an image rendition. | ## Workflow how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Build and deploy workflow custom actions](how-to-build-and-deploy-workflow-custom-actions.md) |Learn how to model business processes whose requirements are not met by the existing library of workflow actions in SharePoint Designer by creating custom workflow actions in SharePoint. | +| Title | Summary | +| :----- | :----- | +| [Build and deploy workflow custom actions](how-to-build-and-deploy-workflow-custom-actions.md) | Learn how to model business processes whose requirements are not met by the existing library of workflow actions in SharePoint Designer by creating custom workflow actions in SharePoint. | ## Social and collaboration how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Read and write to the social feed by using the .NET client object model in SharePoint](how-to-learn-to-read-and-write-to-the-social-feed-by-using-the-net-client-object.md) |Create a console application that reads and writes to the social feed by using the SharePoint .NET client object model. | -| [Read and write to the social feed by using the REST service in SharePoint](how-to-learn-to-read-and-write-to-the-social-feed-by-using-the-rest-service-in-s.md) |Create a SharePoint-hosted app that uses the REST service to publish a post and get the personal feed for the current user. | -| [Create and delete posts and retrieve the social feed by using the .NET client object model in SharePoint](how-to-create-and-delete-posts-and-retrieve-the-social-feed-by-using-the-net-cli.md) |Learn how to create and delete microblog posts and retrieve social feeds by using the SharePoint .NET client object model. | -| [Create and delete posts and retrieve the social feed by using the JavaScript object model in SharePoint](how-to-create-and-delete-posts-and-retrieve-the-social-feed-by-using-the-javascr.md) |Learn how to create and delete microblog posts and retrieve social feeds by using the SharePoint JavaScript object model. | -| [Include mentions, tags, and links to sites and documents in posts in SharePoint](how-to-include-mentions-tags-and-links-to-sites-and-documents-in-posts-in-sharep.md) |Learn how to add [SocialDataItem](https://msdn.microsoft.com/library/Microsoft.SharePoint.Client.Social.SocialDataItem.aspx) objects to microblog posts, which render as mentions, tags, or links in SharePoint social feeds. | -| [Embed images, videos, and documents in posts in SharePoint](how-to-embed-images-videos-and-documents-in-posts-in-sharepoint-server.md) |Learn how to add [SocialAttachment](https://msdn.microsoft.com/library/Microsoft.SharePoint.Client.Social.SocialAttachment.aspx) objects to microblog posts, which render as embedded pictures, videos, and documents in SharePoint social feeds. | -| [Follow people by using the .NET client object model in SharePoint](how-to-follow-people-by-using-the-net-client-object-model-in-sharepoint.md) |Learn how to work with Following People features by using the SharePoint .NET client object model. | -| [Follow people by using the JavaScript object model in SharePoint](how-to-follow-people-by-using-the-javascript-object-model-in-sharepoint.md) |Learn how to work with Following People features by using the SharePoint JavaScript object model. | -| [Follow documents and sites by using the .NET client object model in SharePoint](how-to-follow-documents-and-sites-by-using-the-net-client-object-model-in-sharep.md) |Learn how to work with Following Content features by using the SharePoint .NET client object model. | -| [Follow documents, sites, and tags by using the REST service in SharePoint](how-to-follow-documents-sites-and-tags-by-using-the-rest-service-in-sharepoint-2.md) |Learn how to work with Following Content features by using the SharePoint REST service. | -| [Retrieve user profile properties by using the .NET client object model in SharePoint](how-to-retrieve-user-profile-properties-by-using-the-net-client-object-model-in.md) |Learn how to retrieve user profile properties programmatically by using the SharePoint .NET client object model. | -| [Retrieve user profile properties by using the JavaScript object model in SharePoint](how-to-retrieve-user-profile-properties-by-using-the-javascript-object-model-in.md) |Learn how to retrieve user properties and user profile properties programmatically by using the SharePoint JavaScript object model. | -| [Work with user profiles and organization profiles by using the server object model in SharePoint](how-to-work-with-user-profiles-and-organization-profiles-by-using-the-server-obj.md) |Learn how to create, retrieve, and change SharePoint user profiles and user profile properties programmatically by using the SharePoint server object model. | +| Title | Summary | +| :----- | :----- | +| [Read and write to the social feed by using the .NET client object model in SharePoint](how-to-learn-to-read-and-write-to-the-social-feed-by-using-the-net-client-object.md) | Create a console application that reads and writes to the social feed by using the SharePoint .NET client object model. | +| [Read and write to the social feed by using the REST service in SharePoint](how-to-learn-to-read-and-write-to-the-social-feed-by-using-the-rest-service-in-s.md) | Create a SharePoint-hosted app that uses the REST service to publish a post and get the personal feed for the current user. | +| [Create and delete posts and retrieve the social feed by using the .NET client object model in SharePoint](how-to-create-and-delete-posts-and-retrieve-the-social-feed-by-using-the-net-cli.md) | Learn how to create and delete microblog posts and retrieve social feeds by using the SharePoint .NET client object model. | +| [Create and delete posts and retrieve the social feed by using the JavaScript object model in SharePoint](how-to-create-and-delete-posts-and-retrieve-the-social-feed-by-using-the-javascr.md) | Learn how to create and delete microblog posts and retrieve social feeds by using the SharePoint JavaScript object model. | +| [Include mentions, tags, and links to sites and documents in posts in SharePoint](how-to-include-mentions-tags-and-links-to-sites-and-documents-in-posts-in-sharep.md) | Learn how to add [SocialDataItem](/previous-versions/office/sharepoint-csom/jj164135(v=office.15)) objects to microblog posts, which render as mentions, tags, or links in SharePoint social feeds. | +| [Embed images, videos, and documents in posts in SharePoint](how-to-embed-images-videos-and-documents-in-posts-in-sharepoint-server.md) | Learn how to add [SocialAttachment](/previous-versions/office/sharepoint-csom/jj163900(v=office.15)) objects to microblog posts, which render as embedded pictures, videos, and documents in SharePoint social feeds. | +| [Follow people by using the .NET client object model in SharePoint](how-to-follow-people-by-using-the-net-client-object-model-in-sharepoint.md) | Learn how to work with Following People features by using the SharePoint .NET client object model. | +| [Follow people by using the JavaScript object model in SharePoint](how-to-follow-people-by-using-the-javascript-object-model-in-sharepoint.md) | Learn how to work with Following People features by using the SharePoint JavaScript object model. | +| [Follow documents and sites by using the .NET client object model in SharePoint](how-to-follow-documents-and-sites-by-using-the-net-client-object-model-in-sharep.md) | Learn how to work with Following Content features by using the SharePoint .NET client object model. | +| [Follow documents, sites, and tags by using the REST service in SharePoint](how-to-follow-documents-sites-and-tags-by-using-the-rest-service-in-sharepoint-2.md) | Learn how to work with Following Content features by using the SharePoint REST service. | +| [Retrieve user profile properties by using the .NET client object model in SharePoint](how-to-retrieve-user-profile-properties-by-using-the-net-client-object-model-in.md) | Learn how to retrieve user profile properties programmatically by using the SharePoint .NET client object model. | +| [Retrieve user profile properties by using the JavaScript object model in SharePoint](how-to-retrieve-user-profile-properties-by-using-the-javascript-object-model-in.md) | Learn how to retrieve user properties and user profile properties programmatically by using the SharePoint JavaScript object model. | +| [Work with user profiles and organization profiles by using the server object model in SharePoint](how-to-work-with-user-profiles-and-organization-profiles-by-using-the-server-obj.md) | Learn how to create, retrieve, and change SharePoint user profiles and user profile properties programmatically by using the SharePoint server object model. | ## Integrating location and map functionality how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Add a Geolocation column to a list programmatically in SharePoint](how-to-add-a-geolocation-column-to-a-list-programmatically-in-sharepoint.md) |Learn how to programmatically add a Geolocation column to a list in SharePoint. Integrate location information and maps in SharePoint lists and location-based websites by using the new Geolocation field creating your own geolocation-based field type. | -| [Set the Bing Maps key at the web and farm level in SharePoint](how-to-set-the-bing-maps-key-at-the-web-and-farm-level-in-sharepoint.md) |Learn how to set the Bing Maps key programmatically at the web and farm level by using the SharePoint client object model and Windows PowerShell, to enable the Bing Maps functionality in SharePoint lists and location-based web and mobile apps. | -| [Extend the Geolocation field type using client-side rendering](how-to-extend-the-geolocation-field-type-using-client-side-rendering.md) |Learn how to customize the SharePoint Geolocation field type programmatically using client-side rendering. | +| Title | Summary | +| :----- | :----- | +| [Add a Geolocation column to a list programmatically in SharePoint](how-to-add-a-geolocation-column-to-a-list-programmatically-in-sharepoint.md) | Learn how to programmatically add a Geolocation column to a list in SharePoint. Integrate location information and maps in SharePoint lists and location-based websites by using the new Geolocation field creating your own geolocation-based field type. | +| [Set the Bing Maps key at the web and farm level in SharePoint](how-to-set-the-bing-maps-key-at-the-web-and-farm-level-in-sharepoint.md) | Learn how to set the Bing Maps key programmatically at the web and farm level by using the SharePoint client object model and Windows PowerShell, to enable the Bing Maps functionality in SharePoint lists and location-based web and mobile apps. | +| [Extend the Geolocation field type using client-side rendering](how-to-extend-the-geolocation-field-type-using-client-side-rendering.md) | Learn how to customize the SharePoint Geolocation field type programmatically using client-side rendering. | ## Search how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Crawl associated external content types in SharePoint](how-to-crawl-associated-external-content-types-in-sharepoint.md) |Learn how to use the search specific properties in the Business Data Connectivity (BDC) service metadata model for crawling associations, and the different user experiences that you can enable. | -| [Crawl binary large objects (BLOBs) in SharePoint](how-to-crawl-binary-large-objects-blobs-in-sharepoint.md) |Learn how to modify the BDC model file for a database BCS indexing connector to enable the Search in SharePoint crawler to crawl binary large object (BLOB) data stored in a SQL Server database. | -| [Configure item-level security in SharePoint](how-to-configure-item-level-security-in-sharepoint.md) |Learn how to configure item level security when crawling external data with BCS indexing connectors in SharePoint. | -| [Use the Content Enrichment web service callout for SharePoint Server](how-to-use-the-content-enrichment-web-service-callout-for-sharepoint-server.md) |Learn how to implement the Content Enrichment web service in SharePoint to modify the managed properties of crawled items before they are indexed. | -| [Use a custom security trimmer for SharePoint Server search results](how-to-use-a-custom-security-trimmer-for-sharepoint-server-search-results.md) |This how-to guides you through the steps to implement???create, deploy, and register???a custom security trimmer for Search in SharePoint by using Visual Studio 2010. | +| Title | Summary | +| :----- | :----- | +| [Crawl associated external content types in SharePoint](how-to-crawl-associated-external-content-types-in-sharepoint.md) | Learn how to use the search specific properties in the Business Data Connectivity (BDC) service metadata model for crawling associations, and the different user experiences that you can enable. | +| [Crawl binary large objects (BLOBs) in SharePoint](how-to-crawl-binary-large-objects-blobs-in-sharepoint.md) | Learn how to modify the BDC model file for a database BCS indexing connector to enable the Search in SharePoint crawler to crawl binary large object (BLOB) data stored in a SQL Server database. | +| [Configure item-level security in SharePoint](how-to-configure-item-level-security-in-sharepoint.md) | Learn how to configure item level security when crawling external data with BCS indexing connectors in SharePoint. | +| [Use the Content Enrichment web service callout for SharePoint Server](how-to-use-the-content-enrichment-web-service-callout-for-sharepoint-server.md) | Learn how to implement the Content Enrichment web service in SharePoint to modify the managed properties of crawled items before they are indexed. | +| [Use a custom security trimmer for SharePoint Server search results](how-to-use-a-custom-security-trimmer-for-sharepoint-server-search-results.md) | This how-to guides you through the steps to implement???create, deploy, and register???a custom security trimmer for Search in SharePoint by using Visual Studio 2010. | ## BCS how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Create external content types for SQL Server in SharePoint](how-to-create-external-content-types-for-sql-server-in-sharepoint.md) |Learn how to create an external content type for SQL Server in SharePoint. | -| [Create an external content type from an OData source in SharePoint](how-to-create-an-external-content-type-from-an-odata-source-in-sharepoint.md) |Learn how to use Visual Studio 2012 to discover a published OData source and create a reusable external content type for use in BCS in SharePoint. | -| [Create an OData data service for use as a BCS external system](how-to-create-an-odata-data-service-for-use-as-a-bcs-external-system.md) |Learn how to create an Internet-addressable WCF service that uses OData to send notifications to SharePoint when the underlying data changes. These notifications are used to trigger events that are attached to external lists. | -| [Create an external list using an OData data source in SharePoint](how-to-create-an-external-list-using-an-odata-data-source-in-sharepoint.md) |Learn how to create an external list programmatically and bind it to an OData-based external content type in SharePoint. | -| [Create an add-in-scoped external content type in SharePoint](how-to-create-an-add-in-scoped-external-content-type-in-sharepoint.md) |Learn how to create external content types that can be installed, secured, and used in an SharePoint Add-in. | -| [Access external data with REST in SharePoint](how-to-access-external-data-with-rest-in-sharepoint.md) |Learn how to access external data from SharePoint by using Representational State Transfer (REST) URLs for BCS. | -| [Use the client code library to access external data in SharePoint](how-to-use-the-client-code-library-to-access-external-data-in-sharepoint.md) |Learn how to use the SharePoint client object model to work with BCS objects in SharePoint using browser-based scripting. | +| Title | Summary | +| :----- | :----- | +| [Create external content types for SQL Server in SharePoint](how-to-create-external-content-types-for-sql-server-in-sharepoint.md) | Learn how to create an external content type for SQL Server in SharePoint. | +| [Create an external content type from an OData source in SharePoint](how-to-create-an-external-content-type-from-an-odata-source-in-sharepoint.md) | Learn how to use Visual Studio 2012 to discover a published OData source and create a reusable external content type for use in BCS in SharePoint. | +| [Create an OData data service for use as a BCS external system](how-to-create-an-odata-data-service-for-use-as-a-bcs-external-system.md) | Learn how to create an Internet-addressable WCF service that uses OData to send notifications to SharePoint when the underlying data changes. These notifications are used to trigger events that are attached to external lists. | +| [Create an external list using an OData data source in SharePoint](how-to-create-an-external-list-using-an-odata-data-source-in-sharepoint.md) | Learn how to create an external list programmatically and bind it to an OData-based external content type in SharePoint. | +| [Create an add-in-scoped external content type in SharePoint](how-to-create-an-add-in-scoped-external-content-type-in-sharepoint.md) | Learn how to create external content types that can be installed, secured, and used in an SharePoint Add-in. | +| [Access external data with REST in SharePoint](how-to-access-external-data-with-rest-in-sharepoint.md) | Learn how to access external data from SharePoint by using Representational State Transfer (REST) URLs for BCS. | +| [Use the client code library to access external data in SharePoint](how-to-use-the-client-code-library-to-access-external-data-in-sharepoint.md) | Learn how to use the SharePoint client object model to work with BCS objects in SharePoint using browser-based scripting. | ## Office and SharePoint application services how-tos for SharePoint -|Title|Summary| -|:-----|:-----| -| [Create report renderers for PerformancePoint Services in SharePoint](how-to-create-report-renderers-for-performancepoint-services-in-sharepoint.md) |Learn how to create the renderer component in a custom report extension for PerformancePoint Services. | -| [Create report editors for PerformancePoint Services in SharePoint](how-to-create-report-editors-for-performancepoint-services-in-sharepoint.md) |Learn how to create the editor component of a custom report extension for PerformancePoint Services. | -| [Create filter data providers for PerformancePoint Services in SharePoint](how-to-create-filter-data-providers-for-performancepoint-services-in-sharepoint.md) |Learn how to create the data provider component in a custom filter extension for PerformancePoint Services. | -| [Create filter editors for PerformancePoint Services in SharePoint](how-to-create-filter-editors-for-performancepoint-services-in-sharepoint.md) |Learn how to create the editor component of a custom filter extension for PerformancePoint Services. | -| [Create tabular data source providers for PerformancePoint Services in SharePoint](how-to-create-tabular-data-source-providers-for-performancepoint-services-in-sha.md) |Learn how to create the data source provider component in a custom tabular data source extension for PerformancePoint Services. | -| [Create tabular data source editors for PerformancePoint Services in SharePoint](how-to-create-tabular-data-source-editors-for-performancepoint-services-in-share.md) |Learn how to create the editor component of a custom tabular data source extension for PerformancePoint Services. | -| [Create scorecard transforms for PerformancePoint Services in SharePoint](how-to-create-scorecard-transforms-for-performancepoint-services-in-sharepoint-2.md) |Learn how to create custom scorecard transforms for PerformancePoint Services in SharePoint. | +| Title | Summary | +| :----- | :----- | +| [Create report renderers for PerformancePoint Services in SharePoint](how-to-create-report-renderers-for-performancepoint-services-in-sharepoint.md) | Learn how to create the renderer component in a custom report extension for PerformancePoint Services. | +| [Create report editors for PerformancePoint Services in SharePoint](how-to-create-report-editors-for-performancepoint-services-in-sharepoint.md) | Learn how to create the editor component of a custom report extension for PerformancePoint Services. | +| [Create filter data providers for PerformancePoint Services in SharePoint](how-to-create-filter-data-providers-for-performancepoint-services-in-sharepoint.md) | Learn how to create the data provider component in a custom filter extension for PerformancePoint Services. | +| [Create filter editors for PerformancePoint Services in SharePoint](how-to-create-filter-editors-for-performancepoint-services-in-sharepoint.md) | Learn how to create the editor component of a custom filter extension for PerformancePoint Services. | +| [Create tabular data source providers for PerformancePoint Services in SharePoint](how-to-create-tabular-data-source-providers-for-performancepoint-services-in-sha.md) | Learn how to create the data source provider component in a custom tabular data source extension for PerformancePoint Services. | +| [Create tabular data source editors for PerformancePoint Services in SharePoint](how-to-create-tabular-data-source-editors-for-performancepoint-services-in-share.md) | Learn how to create the editor component of a custom tabular data source extension for PerformancePoint Services. | +| [Create scorecard transforms for PerformancePoint Services in SharePoint](how-to-create-scorecard-transforms-for-performancepoint-services-in-sharepoint-2.md) | Learn how to create custom scorecard transforms for PerformancePoint Services in SharePoint. | ## Authentication, authorization, and security how-tos in SharePoint -|Title|Summary| -|:-----|:-----| -| [Create a claims provider in SharePoint](how-to-create-a-claims-provider-in-sharepoint.md) |Learn how to create and implement a SharePoint claims provider that fulfills the requirements for claims augmentation and claims picking. | -| [Deploy a claims provider in SharePoint](how-to-deploy-a-claims-provider-in-sharepoint.md) |Learn how to deploy a SharePoint claims provider by using the features infrastructure and creating a class that inherits from [SPClaimProviderFeatureReceiver](https://msdn.microsoft.com/library/Microsoft.SharePoint.Administration.Claims.SPClaimProviderFeatureReceiver.aspx). | +| Title | Summary | +| :----- | :----- | +| [Create a claims provider in SharePoint](how-to-create-a-claims-provider-in-sharepoint.md) | Learn how to create and implement a SharePoint claims provider that fulfills the requirements for claims augmentation and claims picking. | +| [Deploy a claims provider in SharePoint](how-to-deploy-a-claims-provider-in-sharepoint.md) | Learn how to deploy a SharePoint claims provider by using the features infrastructure and creating a class that inherits from [SPClaimProviderFeatureReceiver](/previous-versions/office/sharepoint-server/ee559827(v=office.15)). | ## See also diff --git a/docs/general-development/modify-sharepoint-components-for-mds.md b/docs/general-development/modify-sharepoint-components-for-mds.md index 42dff178e..1c2eb49f6 100644 --- a/docs/general-development/modify-sharepoint-components-for-mds.md +++ b/docs/general-development/modify-sharepoint-components-for-mds.md @@ -1,250 +1,147 @@ --- title: Modify SharePoint components for MDS description: Learn how to modify the components in your SharePoint project to take advantage of Minimal Download Strategy (MDS) in SharePoint. -ms.date: 09/25/2017 +ms.date: 04/24/2017 ms.assetid: c967be7c-f29f-481a-9ce2-915ead315dcd ms.localizationpriority: medium --- - # Modify SharePoint components for MDS -Learn how to modify the components in your SharePoint project to take advantage of Minimal Download Strategy (MDS) in SharePoint. -Minimal Download Strategy (MDS) improves the user experience by returning from the server only the portions of a page required to render it properly in the browser. Because the fully-rendered page is not returned to the client, the server must be able to accurately identify the portions that are required to render the page. You might need to modify the components in your SharePoint project so that they are identified as MDS-compliant and can work with the MDS engine. Learn more about MDS in [Minimal Download Strategy overview](minimal-download-strategy-overview.md). - - - +> [!IMPORTANT] +> This article applies only to **Classic SharePoint (SharePoint Server 2013/2016/2019 Classic Experience)**. +> It is **not applicable to SharePoint Online Modern experiences**, where Minimal Download Strategy (MDS), master pages, and server-side page rendering customization aren't used. +> +> Modern SharePoint development uses the **SharePoint Framework (SPFx)** instead of MDS-based page optimization techniques. -## Why modify SharePoint components? - +Learn how to modify the components in your SharePoint project to take advantage of Minimal Download Strategy (MDS) in SharePoint. +Minimal Download Strategy (MDS) improves the user experience by returning from the server only the portions of a page required to render it properly in the browser. Because the fully rendered page isn't returned to the client, the server must can accurately identify the portions that are required to render the page. You might need to modify the components in your SharePoint project so that they're identified as MDS-compliant and can work with the MDS engine. Learn more about MDS in [Minimal Download Strategy overview](minimal-download-strategy-overview.md). -As explained in [Minimal Download Strategy overview](minimal-download-strategy-overview.md), SharePoint controls work whether or not you modify them to take full advantage of MDS. However, when your components are not MDS compliant, the MDS engine issues a failover. In a failover, the MDS engine takes an extra round trip to redirect the browser to the full version of the new page, which takes time. Users have the best experience when you modify components to work with MDS and avoid a failover every time they browse to a new page in SharePoint. You usually need to modify master pages, ASP.NET pages, controls, and web parts. - - - +## Why modify SharePoint components? - - - +As explained in [Minimal Download Strategy overview](minimal-download-strategy-overview.md), SharePoint controls work whether or not you modify them to take full advantage of MDS. However, when your components aren't MDS-compliant, the MDS engine issues a failover. In a failover, the MDS engine takes an extra round trip to redirect the browser to the full version of the new page, which takes time. Users have the best experience when you modify components to work with MDS and avoid a failover every time they browse to a new page in SharePoint. You usually need to modify master pages, ASP.NET pages, controls, and web parts. ## Master pages - -The master page provides a template that lets MDS identify the content regions that may need to be updated when someone navigates to a new page. Optimizing your master pages is one of the most important steps to take when optimizing performance because master pages identify sections that require updated content.. The Seattle.master master page included with SharePoint is a good example of an optimized master page. Figure 1 shows examples of components in the Seattle.master master page that change from page to page, such as the (1) main content area, (2) left navigation bar, and (3) page title. - - - +The master page provides a template that lets MDS identify the content regions that may need to be updated when someone navigates to a new page. Optimizing your master page is one of the most important steps to take when optimizing performance because master pages identify sections that require updated content. The Seattle.master page included with SharePoint is a good example of an optimized master page. Figure 1 shows examples of components in the Seattle.master master page that change from page to page, such as the (1) main content area, (2) left navigation bar, and (3) page title. -**Figure 1. Components that require updates in a master page** - ![Components that require updates in master page](../images/MDS_SeattleMaster.png) - +*Figure 1. Components that require updates in a master page* + > [!NOTE] -> There are many more components in the Seattle.master master page that change from page to page, such as style sheets and JavaScript files. Figure 1 shows only a few examples. - - - +> There are many more components in the Seattle.master master page that change from page to page, such as style sheets and JavaScript files. Figure 1 shows only a few examples. There are different patterns to optimize the components in a master page. You can use a pattern for the following components: - - - - HTML regions and controls - - - Style sheets - - - JavaScript files - - - Page title - - -HTML regions and controls are MDS compatible if they are wrapped in **SharePoint:AjaxDelta** tags. By wrapping the content in **SharePoint:AjaxDelta** tags, you are signaling that the MDS engine should update the enclosed controls and HTML. If a control or HTML section doesn't change from page to page, it should not be sent to the client. Therefore, you should keep these controls outside of **AjaxDelta** tags. In the Seattle.master master page shown in Figure 1, the (1) main content area is wrapped in **AjaxDelta** tags, as shown here. - - - - +HTML regions and controls are MDS compatible if they're wrapped in `` tags. By wrapping the content in `` tags, you're signaling that the MDS engine should update the enclosed controls and HTML. If a control or HTML section doesn't change from page to page, it shouldn't be sent to the client. Therefore, you should keep these controls outside of `` tags. In the Seattle.master master page shown in Figure 1, the (1) main content area is wrapped in `` tags, as shown here. -```csharp +```asp.net - - + id="DeltaPlaceHolderMain" + BlockElement="true" + IsMainContent="true" + runat="server"> + + ``` -Another example of the **AjaxDelta** pattern is the (2) left navigation bar in Figure 1. The following code shows how the control is wrapped in **AjaxDelta** tags along with many other controls and HTML. - - - - +Another example of the `` pattern is the (2) left navigation bar in Figure 1. The following code shows how the control is wrapped in `` tags along with many other controls and HTML. - -```csharp +```asp.net - - - - - - - - - + id="DeltaPlaceHolderLeftNavBar" + BlockElement="true" + CssClass="ms-core-navigation" + role="navigation" + runat="server"> + + + + + + + + + ``` -One last thing to remember about **AjaxDelta** tags is that you can't nest them. You should specify **AjaxDelta** tags at the highest required level in the master page structure. - - - -The last example in Figure 1 is the (3) page title, which requires a special pattern that uses the **SharePoint:PageTitle** tag. The following code shows the **PageTitle** tag as used in the Seattle.master master page. - - - - - +One last thing to remember about `` tags is that you can't nest them. You should specify `` tags at the highest required level in the master page structure. -```csharp +The last example in Figure 1 is the (3) page title, which requires a special pattern that uses the `` tag. The following code shows the `` tag as used in the Seattle.master master page. +```asp.net - - - + + + ``` Your master page can also include style sheets and JavaScript files. The server engine needs to identify both CSS and JavaScript files as required. To identify the CSS files resources as required, use the following pattern. - - - - - - -```csharp +```asp.net ``` -Note that you can have only one **CssLink** tag per master page, but you can have many **CssRegistration** tags, so you can add many CSS files. Use the following pattern for JavaScript files. - - - - - - -```csharp +You can have only one `` tag per master page, but you can have many `` tags, so you can add many CSS files. Use the following pattern for JavaScript files. +```asp.net ``` -Including CSS and JavaScript files using HTML **style** and **script** tags is not supported in MDS. - - - +Including CSS and JavaScript files using HTML `