This course explores the development opportunities available with SharePoint 2016 On-premises. The first half of the class focuses on SharePoint Foundation 2016 development where students will learn how to develop fundamental building blocks such as features, solutions, pages, lists and workflows. In addition, new topics such the new SharePoint app model and the SharePoint app security (OAuth and S2S) for apps as well as remote event receivers are covered and explained in great depth.
The second half of the class addresses SharePoint Server 2016 service applications which provide additional enterprise development opportunities such as working with Business Connectivity Services, Enterprise Content Management, Web Content Management, search and other services specific to SharePoint Server 2016.
Throughout the course students will not only learn how to create robust project and solutions using the tools included in Visual Studio 2015, but they will also learn best practices about what and when you should and should not do.
Developers who want to learn to build solutions for SharePoint. SharePoint Server 2016 is used during the course, but most of what you’ll learn is also applicable on SharePoint Server 2013.
Module 01: Getting Started with SharePoint 2016
In this module students will introduce students to the big picture of SharePoint development. You will learn about the architecture and topology of a SharePoint on-premises farm. You will learn about the two main SharePoint development strategies which include full trust solutions and SharePoint apps. You will also be introduced to a set of tools that are often used during SharePoint development.
- SharePoint Architecture and Topology
- SharePoint Development Strategies
- SharePoint Developer Tools and Utilities
- Creating a SharePoint Development Environment
Module 02: Developing SharePoint Solutions
SharePoint extensibility has traditionally been done using solution packages (*.wsp’s). The two types of solutions, farm & sandbox, are covered in depth in this module. Students will learn when they are available depending on the deployments, what you can and can’t do with them as scenarios when they are applicable..
- Understanding SharePoint Solutions
- Features and Feature Receivers
- Creating Web Parts
- Creating Site Pages and Application Pages
Module 03: Developing SharePoint-hosted Add-ins
This module provides an in-depth examination of the supporting architecture for SharePoint-hosted add-ins. Students will learn about the role of the app web and how to design the user interface for an add-in start page. Students will also learn how to leverage the app web as a storage container for creating lists and document libraries that are private to the add-in. The module concludes with a discussion of how to develop and test add-in parts in the host web where the Add-in is installed.
- SharePoint Add-in Model
- SharePoint-hosted Add-in Architecture
- User Interface Design Techniques
- Developing App Parts
- Adding User Custom Actions
Module 04: Programming the SharePoint REST API
This module examines the new SharePoint REST API with SharePoint Server 2016. Students will learn how to create REST URIs to target SharePoint objects such as sites, lists and list items. Students will also learn about the SharePoint-specific issues such as dealing with ETags and the request digest as well as passing the list item type whenever adding or updating a list item.
- The SharePoint REST API
- Creating REST URIs for SharePoint Objects
- Consuming OData Results from SharePoint
- Paging SharePoint List Items
- Adding and Updating Items
Module 05: Developing SharePoint Add-ins with AngularJS
This module provides an introduction to the AngularJS Framework. Students will learn what features the framework provides as well as in which scenarios it makes sense to use it. You will learn essential concepts including the MVC pattern, Angular directives and view bindings. You will also learn how to use the AngularJS Framework in a SharePoint-hosted app by creating controllers and programming with the $scope object to pass data from a controller to a view.
- Introduction to AngularJS
- Directives and Modules
- Routes, Views and Controllers
- Angular Services
Module 06: SharePoint Add-in Security
This module examines how to develop provider-hosted add-ins with a server-to-server (S2S) trust in a SharePoint 2016 on-premises environment. Student will learn how to create a test certificate and how to configure an S2S trust. Student will also learn how to create a provider-hosted app project that uses an S2S trust which makes it possible to execute authenticated web service calls back to the SharePoint host environment. The module also includes a discussion of using the TokenHelper class to create access tokens and pass them to the SharePoint host when making authenticated calls.
- SharePoint Add-in Security Overview
- Configuring SharePoint Add-in Permissions
- Understanding App Security Principals
- Server-to-Server (S2S) Trust Configuration
- Programming with Access Tokens
- App Authentication using OAuth
Module 07: Developing Provider-hosted Add-ins
The module begins with an in-depth examination of the architecture of a provider-hosted app. Student will learn how to create a user interface experience in the pages of the remote web using a customer master page and the SharePoint Chrome Control. The module discusses how to write and test server-side code which leverages ASP.NET and the libraries of the .NET Framework. Student will learn how to create remote event receivers as well as how to implement the remote web of a provider-hosted app in Visual Studio 2013 using an ASP.NET MVC5 project.
- Getting Started with Provider-hosted Apps
- User Interface Design for the Remote Web
- Working with ASP.NET MVC
- Creating Provider-hosted Apps using MVC5
Module 08: Developing with SharePoint Lists and Events
In this module you will learn how to create lists and document libraries using the SharePoint development tools in Visual Studio 2015. Students will also learn about the various events in SharePoint 2016 including the new remote event receiver capability.
- Site Columns and Content Types
- Creating Lists and Document Libraries
- Updating Columns, Content Types and Lists
- Creating Event Receivers
- Creating Remote Event Receivers
Module 09: CSOM Programming
This module introduces students to programming with the Client-side Object Model (CSOM) in SharePoint 2016. Emphasis will be placed on writing server-side C# code in the remote web using CSOM and executing queries efficiently. Student will learn how to leverage CSOM to create lists and document libraries in the host web during add-in installation. Students will also learn how to use CSOM to register remote event receivers to add behaviors to list and document libraries that have been created in the host web.
- CSOM Fundamentals
- User and App Authentication
- CSOM Code Optimization
- Remote Exception Handling
- Creating Content Types and Lists
Module 10: Publishing, Installing and Upgrading SharePoint Add-ins
This module discusses how to manage the lifecycle of a SharePoint app in a production environment. Students will learn how to create an App Catalog site and how to publish SharePoint apps. Student will also learn about the differences between site-scoped app installation and tenancy-scoped app installation. The module concludes with a discussion of app versioning and strategies for evolving the behavior of an app over time.
- Creating the App Catalog
- Publishing Apps in the App Catalog
- Installing and Upgrading Apps
- Deploying Provider-hosted Apps
Module 11: Developing Custom Web Services using Web API 2
- Understanding API Controllers and Call Routing
- Creating a RESTful Web Services
- Custom Routing Schemes and Attribute Routing
- Developing OData Controller
- Cross-Origin Resource Sharing (CORS)
- Enabling Scripting in SharePoint 2016
- JSOM Programming
- Remote Provisioning using CSOM
- Designing MDS-enabled Pages
Module 13: Business Connectivity Services
In this module you will learn about the architecture of Business Data Connectivity Services (BCS) which allows you to configure read/write connections to backend data sources such as SQL Server databases and line of business systems (e.g. SAP, PeopleSoft). You will learn how to create external content types using SharePoint Designer 2013. You will also learn several different ways to surface backend data from an external content type using external lists, the Business Data Web Parts and external data columns. The module also discusses the new BCS support for creating external content types based on external data sources that expose their data using the OData protocol.
- BCS Overview
- Creating Secure Store Service Applications
- Creating External Content Types
- Consuming External Content Types
- External Content Types with SharePoint Add-ins
Module 14: Enterprise Content Management
This module will cover all the Enterprise Content Management (ECM) capabilities in SharePoint 2016 in the areas of managed metadata, document management, recordings management and eDiscovery. Microsoft invested a considerable amount of effort in eDiscovery in SharePoint Server and this module will cover what students need to know. In addition students will also learn how to work with Managed Metadata and how to leverage it in custom solutions using either the existing server-side API or the new client-side API.
- Managed Metadata
- Enterprise Content Types
- Document Sets
- Records Management
- Programming with Managed Metadata
Module 15: SharePoint Search
SharePoint 2010 included various search implementations between SharePoint search & FAST search. When Microsoft designed SharePoint 2013, they merged their search implementations into a single, unified search architecture with a powerful and robust search API that is accessible both in server-side and client-side solutions. In this module students will learn about the search architecture as it exists in SharePoint 2016 as well as how to leverage it in custom solutions.
- SharePoint 2016 Search Architecture
- Managed Properties
- Query Execution using KQL
- Result Sources and Query Rules
- Result Types and Custom Display Templates
- Executing Searches Programmatically
Module 16: Developing SharePoint Workflows
SharePoint 2013 dramatically changes the workflow architecture in the latest release. SharePoint 2013 Workflow is now handled by Workflow Managers, both in on-premises and hosted deployments. In this module students will learn how to create custom workflows using SharePoint Designer 2013 and Visual Studio 2013 as well as some of the new capabilities introduced in SharePoint 2013 workflows: dynamic values, stages and remote web service calls.
- Introduction to SharePoint Workflow
- Creating Custom Workflows
- Workflow Template Types
- Developing Workflows with Visual Studio
- Programming Workflows using CSOM