What you will learn in this course

SharePoint is a huge set of technologies which can be very intimidating when you want to get started. This course focuses on Microsoft SharePoint Foundation 2010, the core of Microsoft SharePoint Server 2010. You'll learn not just how to build the essential SharePoint elements, and why it's done sometimes in arcane ways. We'll also teach you to understand the language and soul of SharePoint, and bust a few myths along the way.

You'll leave this course as a developer who will be welcome and valued on any SharePoint team.

The course has been updated for Visual Studio 2012 and contains several references to how SharePoint 2013 is changing the picture.

Course highlights

  • Use features and solutions for deploying projects for SharePoint
  • Utilize the SharePoint object model for building applications in SharePoint
  • Build Site columns, Content types and List templates for SharePoint
  • Create custom event handlers
  • Build web parts
  • Use and extend PowerShell

Course outline and topics

Day 1

Background / Overview
This first topic describes the history of SharePoint and the suite of products that make up the SharePoint 2010/2013 family. You will gain a firm understanding of where SharePoint is coming from and be more capable of discussing where SharePoint is today and where it is going in the future.

Architecture / Setup
The architecture module explains how SharePoint 2010/2013 is built. You will see that SharePoint is built on top
ASP.NET and IIS, but also how it completely changes the ASP.NET world as we know it. We will explore your options for installation of a development environment.

SharePoint Customizations
In order to be a good SharePoint developer you need to understand what the end-users and administrators can do themselves through the browser or even the SharePoint designer. In this module, we will explore the options for empowering your users and having them customize SharePoint for themselves.

Server Side API
The SharePoint Server Side API gives you the full power over all the information/configuration of SharePoint. We explore the important classes and see how a lot of the objects we went through in the architecture module are exposed by the object model. We look at the very important subject of memory management and how SharePoint helps developers not to break security unintentionally.

Day 2

Features and Solutions
SharePoint has a very powerful deployment infrastructure based on the concepts of features and solutions. We go to the core of these fundamental building blocks, so that we get a good understanding of how they work, what we expose to receivers of our packages and how we can check the content from external developers. We also look at the SharePoint tools in Visual Studio 2012 and how they can help us in our SharePoint development. Visual Studio 2012 has several features to help you develop for SharePoint and to explore what's already in your SharePoint environment, but many of the options are well hidden, so we have several rocks to overturn.

Content Development
SharePoint is all about storing information. In the SharePoint Customizations module we saw how End-Users can create site columns, content types, list instances and list definitions using the browser or SharePoint Designer. However, when you develop an application to sit on top of SharePoint you want a method whereby you can manage the lifecycle of these artifacts as well as develop field types and list templates.

Server Side Data Access
Storing information is no fun unless we can access and manipulate that information. Using the objects from the Server Side API module, we can process the information, like using cursors on SQL server, which isn't effective when you're going to handle more than a few pieces of information. In this module we look at both the SharePoint proprietary CAML and LINQ for SharePoint, to demonstrate how and when to use which application.

PowerShell and SharePoint
PowerShell is the main administrative interface to SharePoint for IT-PROs, but also a very helpful tool for developers. In this module we will learn to use PowerShell, look at how SharePoint extends PowerShell and finally how we can extend the SharePoint support in PowerShell.

Day 3

Client Side API
The Server Side API is extremely powerful, but has the problem that it can only be used by code which runs on one of the SharePoint servers. If you want to create applications which run on the client machines or in the browser, then you need to use the Client Side API. We explore the three versions of the Client Side API (native .Net, Silverlight and JavaScript) which are very similar to each other and to the Server Side API; but in some areas they are also very different.

Client Side Data Access
When it comes to accessing more than a few items of data, the Client Side API has the same problems as the Server Side API, but the solutions are very different to the Server Side Data Access. We explore the two options; Web Services and REST, which beats the client side API.

Pages
As SharePoint is mainly accessed as websites, it is important to understand the different kind of pages it's using. We look at how Master Pages, Site Pages, Wiki Pages and Application Pages works (in some cases very differently from ordinary
ASP.NET) and how the End-User's possibility of customizing some of these pages affect our options for using code in a secure way.

Day 4

User Interface Development
SharePoint 2010/2013 has an extremely powerful UI with a great deal of the functionality we know from the Microsoft Office Client products. In this module we explore how we can use, modify and extend this SharePoint UI. We will use both Server Side code and JavaScript libraries to work with the Ribbon, Dialog Boxes, Status Bar and Notifications.

Web Parts
A huge part of SharePoint's success is due to the configuration possibilities Web Parts gives to the end user. Building Web Parts is one of the most common tasks you will undertake as a SharePoint Developer. We will learn how to create Web Parts, make them configurable, customize the configuration UI, enable Web Parts to connect to each other and thereby multiply their usefulness.

Event Handling
In business applications developed using SharePoint, it is very important to be able to react to whatever the End-User is adding/changing/deleting. We explore the different kinds of Event Handlers you can create to handle changes to some SharePoint entities both synchronous and asynchronous.

Day 5

Deployment Sandboxed Solution
As organizations depend more and more on their SharePoint environment always being in good shape, it is important for us developers to understand how to be able to develop solutions which the IT-Pro's will let their business users utilize, knowing that that they can't endanger the SharePoint farm. We explore how to develop Sandboxed solutions, how the Sandboxed environment limits your possibilities and how you can extend these possibilities, if allowed by the administrators, and finally, how you can help the administrator further limit the possibilities, if need be.

Office 365
Office 365 is Microsoft's next-generation cloud productivity service and includes SharePoint 2010 Online, which will be an exciting option for organizations. We explore how developing for SharePoint 2010 Online differs from on-premise SharePoint installations.

More Deployment
We look at the more advanced deployment features of SharePoint: How to control what should happen when you upgrade a Feature/Solution where an existing version is deployed; How to create your own Site Templates and how to attach your features to existing Site Templates regardless of them being Out-Of-The-Box or custom made.

Apps for SharePoint

SharePoint 2013 introduces a complex new deployment option called Apps. We look at the different types of apps (SharePoint/Provider/Auto hosted) and how to develop apps for deploying either through the public Office Store or through an internal organization app catalog.