20489: Developing Microsoft SharePoint Server 2013 Advanced Solutions

Length: 5 days | Audience: IT Professionals | Level: 200

This course provides SharePoint developers the information needed to implement SharePoint solutions using Enterprise Search, Managed Metadata Service (MMS), Business Connectivity Services (BCS), Enterprise Content Management (ECM), Web Content Management (WCM), Social Computing features and SharePoint Apps.

Module 1: Creating Robust and Efficient Apps for SharePoint

In this module, you will review key aspects of the apps for SharePoint development platform, including capabilities, packaging and infrastructure, client-side programming for SharePoint, and app security. You will also learn about how to optimize the performance of your apps.


  • Apps for SharePoint
  • Communicating with SharePoint from an App
  • Authenticating and Authorizing Apps for SharePoint
  • Designing Apps for Performance

Lab : Monitoring SharePoint Health Scores

  • Creating and Deploying an App Part
  • Working with Server Health Scores


Module 2: Developing Managed Metadata Solutions

In this module you will see metadata objects and how they are used to categorize items so that you can learn how to work with them in code. You will also see how to use the advanced features of terms and manage permissions and roles. In this way you can provide a full set of terms that users can tag content with.


  • Managed Metadata
  • Configuring Managed Metadata Term Sets
  • Working with Managed Metadata Fields

Lab : Developing Managed Metadata Solutions (Part 1)

  • Creating and Configuring the Corporate Structure App
  • Displaying the Existing Taxonomy Groups
  • Creating a Group, a Term Set, and Terms

Lab : Developing Managed Metadata Solutions (Part 2)

  • Obtaining the Host Web
  • Adding Metadata Site Columns


Module 3: Interacting with the Search Service

The module provides an overview of the search service architecture in SharePoint 2013 as it relates to developers, before describing how to construct queries using Keyword Query Language (KQL) and FAST Query Language (FQL) and submit these queries to the search service.


  • SharePoint 2013 Search Service
  • Building Search Queries with KQL and FQL
  • Executing Search Queries from Code

Lab : Executing Search Queries from SharePoint Apps

  • Submitting Search Queries from Client-Side Code
  • Using a Custom Action to Launch A Search App


Module 4: Customizing the Search Experience

In this module you will create and modify queries as well as manage search results.


  • Customizing Query Processing
  • Customizing Search Results
  • Configuring Result Types and Display Templates
  • Customizing Content Processing

Lab : Configuring Entity Extraction

  • Create and deploy an entity extractor.


Module 5: Implementing Enterprise Content Management

In this module, you will work with SharePoint document management features in code.


  • Working with eDiscovery
  • Working with Content Management
  • Automating Records Management

Lab : Implementing Content Management Functionality

  • Creating a Custom Document ID Provider
  • Registering a Custom Document ID Provider
  • Applying a Custom Audit Policy


Module 6: Developing a Publishing Site for Web Content

In this module, you will learn how to utilize develop web content solutions for publishing sites.


  • Programming with the Web Content Publishing API
  • Developing Page Components for Web Content Publishing

Lab : Customizing a SharePoint Publishing Site 

  • Building a Custom Page Field Control
  • Building a Page Layout


Module 7: Structuring and Publishing Websites for All Users

This module will focus on providing you with the knowledge to build web sites that are mobile device friendly, support multiple language and with proper navigation. This will be accomplished by introducing you to SharePoint features including device channels, managed navigation and variations.


  • Website Structure and Navigation
  • Publishing Content
  • Publishing to Mobile Devices
  • Multi-language sites using Variations

Lab : Structuring a SharePoint Publishing Site 

  • Creating a Navigation Term Set

Lab : Publishing for Multiple Devices and Languages

  • Creating a Device Channel
  • Using the Device Panel Control
  • Creating a French Variation


Module 8: Developing Optimized Internet Sites

In this module, you will learn how to optimize your site for Internet search engines, and maximize the performance of rendering your site content.


  • Optimizing a SharePoint Site for Search Engines
  • Optimizing Performance and Scalability

Lab : Optimizing SharePoint Publishing Sites 

  • Optimizing a Site for Search Engines
  • Maximizing the Performance of a Publishing Site


Module 9: Working with Business Connectivity Services

In this module, you will learn how to develop Business Connectivity Services (BCS) solutions.


  • Business Connectivity Services in SharePoint 2013
  • Creating BDC Models in SharePoint Designer
  • Creating BDC Models in Visual Studio 2012

Lab : Working with Business Connectivity Services

  • Creating Farm-Scoped External Content Types
  • Creating App-Scoped External Content Types


Module 10: Creating Advanced Business Data Connectivity Models

This module will explore how to create custom search connectors using several different methodologies and lastly, you will learn the advanced topic of the new SharePoint 2013 external event notification feature to support SharePoint list features such as alerts and event receivers when external data changes.


  • Configuring BDC Models for Search
  • Developing Custom Connectivity Components
  • Working with External Events and Notifications

Lab : Creating and Deploying a .NET Connectivity Assembly

  • Create a .NET Connectivity Assembly
  • Implementing Entity Methods
  • Deploying and testing a .NET Connectivity Model


Module 11: Working with Business Data In Client Applications

BCS provides a framework to access via a wide array of protocols such as WCF and OData services to a myriad of external data sources, ranging from data stored in databases to custom proprietary data stores. In this module you will work with Business Data in both custom and composite solutions.


  • Working with Business Data in Composite Solutions
  • Working with Business Data in Custom Solutions
  • Working with Business Data in Client Applications

Lab : Working with Business Data in Apps for SharePoint

  • Reading Business Data in Client-Side Code
  • Presenting Business Data in an App for SharePoint


Module 12: Managing and Accessing User Profile Data

In this module, you will review key aspects of the user profile service, and see how you can write client-side and server-side code to access, update and manage user profile properties.


  • User Profile Data in SharePoint 2013
  • Options for Accessing User Profile Data
  • Managing User Profile Data
  • Managing User Profile Properties

Lab : Accessing User Profile Data 

  • Add People Search Functionality to an App
  • Display User Properties in the App

Lab : Managing User Profile Properties 

  • Add Code to Display User Profile Properties
  • Add Code to Manage User Profile Properties


Module 13: Developing Microsoft SharePoint Server 2013 Advanced Solutions

In this module, you will see some of the social features in SharePoint 2013, and you will see how you can develop apps which extend and customize the social workload; tailoring the experience for your business needs.


  • Overview of the Social Workload
  • Developing Social Solutions
  • Working with Feeds

Lab : Creating a Social App Part

  • Displaying a Project Site Newsfeed
  • Posting a Message to a Newsfeed
  • Using Search to Retrieve Newsfeed Posts


Module 14: Monitoring and Troubleshooting Custom SharePoint Solutions

This module will introduce methods that you can use to improve the performance and scalability of solutions and apps.


  • Debugging SharePoint Apps in Visual Studio
  • Diagnosing Faults in Deployed Apps
  • Testing Performance and Scalability

Lab : Enabling ASP.NET Tracing 

  • Adding a Diagnostics Page to a SharePoint App
  • Configuring ASP.NET Tracing
  • Using Trace Logs

Before attending this course, students must have:

  • Completed course 20488: Developing Microsoft SharePoint Server 2013 Core Solutions (or equivalent knowledge).
  • A working knowledge of using Visual Studio 2010 or Visual Studio 2012 to develop solutions.
  • A basic working knowledge of SharePoint solution development, either in SharePoint 2013 or in earlier versions of SharePoint.
  • A working knowledge of Visual C# and the .NET Framework 4.5.
  • A basic understanding of ASP.NET and server-side web development technologies, including request/response and the page lifecycle.