You are on page 1of 36

Introduction to

SharePoint Development
for .NET developers

About me
Rob Wilson MCT, SharePoint MCTS/MCITP SharePoint 2003 20072010 Email: rwilson@KellerSchroeder.com Twitter: @theRobManDotNet Blog(s):
http://sharepointblog.kellerschroeder.com http://www.therobman.net/blog

Agenda
Introduction to SharePoint Platform Overview of SharePoint Development Tools .NET Development Environment for SharePoint Visual Studio Solutions for SharePoint 2010 SharePoint 2010 Solution Architectures Some New SharePoint 2010 Features

The SharePoint Platform


SharePoint Foundation 2010 (f.k.a. WSS 3.0) SharePoint Server 2010 (f.k.a. MOSS 2007)
Which edition is right for me?

Why should I develop on a platform?

Why Platforms?
Platform 10-15% of the effort. Lost projects because of one-time costs. Custom Code Business Apps Search Error Handling Significant cost reduction and standardization. Business Apps

Much Other Stuff


RAD SEO Friendly

MVC Framework Business Apps RAD SEO Friendly Standards-Based Separation of Roles Uniformity Error Handling

Standards-Based
Separation of Roles Uniformity Search Administration Area Content Management Error Handling

Content Management
Administration Area Menus Authorization Authentication

Menus (Menu Control)


Authorization Authentication

Menus
Authorization Authentication

When the requirements call for it


Not a brochure site Authentication and search required Does not have to be a large-scale project No-brainer for most intranets

When you need self-service


Web Parts (re-usability) Subscriptions and alerts RSS Recycle Bin My Site
Connecting with peers Publishing

When you need personalization/socialization


From a webmasters perspective
Targeted content

From a visitors perspective


Ability to customize look and feel

Tagging and newsfeeds Organizational chart and peer suggestions

When you need workflow


Based on Workflow Foundation In addition:
SharePoint front-end Document libraries and task lists Workflow history lists

When you want flexible development options


Web Parts Object model Client object model (managed code, JavaScript, SilverLight) Web services Separation of development roles
GUI expert, workflow developer, reports and queries, event handlers

Varying levels of experience on a project team

When you want focus on the business requirements


Do not worry about how someone will find your application or how it integrates with the security model Eliminate the headache of external content repositories

When you want consistency in your support footprint


Common user interface Vocabulary Standardized code base

When you want to take advantage of the inherent features of the platform
Collaboration Portal Content Management Search Business Intelligence Forms and Business Processes

When you want to offset the cost of development


More time spent in the planning and design stages should surface more out-of-the-box features [that should save time later] Out-of-the-box features should reduce the cost of custom software development Developer focus should shift immediately to the business needs and extending the out-ofthe-box features

When you need SOA


Rest API expose SharePoint content Use the object model to create your own web services/WCFs

When you need composite applications


Dashboards, Mash-ups Business Connectivity Services All levels of your organization

When you need composite applications


ERP

Before SharePoint

CRM

Middleware

Legacy Systems

When you need composite applications


ERP

SharePoint

CRM

Legacy Systems

When you need Single Sign On


Multiple built-in authentication options Support for third-party authentication providers Built-in SSO provider Manages credentials for other apps on your intranet

When you need off-line support of your data


Office Integration Importing/exporting lists from/to excel Linked tables with Access Calendar/Task List integration with Outlook Groove/SharePoint Workspace

When you need auditing and retention policies


Log just the events you need for what lists are of interest to you Develop auditing reports using SSRS Develop/customize workflows for content retention and disposal

When a development community is important to you


Blogs and forums Community video tutorials User Groups CodePlex Commercial/Open Source Features and Web Parts

Editions
http://www.tinyurl.com/sp2010editions

Overview of SharePoint Development Tools

InfoPath 2010

smtp4dev

SharePoint Development Environment for .NET


SharePoint no longer required on development machine in some cases, but recommended Virtual environment 64-bit is a must RAM is your friend

Visual Studio Solutions for SharePoint


Formerly 2 Gaps filled with CodePlex add-ons Now 14 OOB

SharePoint Solution Architectures


Object Model Web Services *Client Object Model

Web Parts

Event Handlers
Workflows Desktop Apps * New Client Object Model for Managed .NET, Silverlight and ECMA Script

Feature Activated

Feature Deactivated

Client Object Model Files


Managed Client (CLR based)
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI Microsoft.SharePoint.Client (281 kb) Microsoft.SharePoint.Client.Runtime (145 kb) FYI: Microsoft.SharePoint.dll is 15.3 mb

JavaScript Client
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Layouts SP.js (380 kb) SP.Core.js (13 kb) SP.Runtime.js (68 kb)

Client Object Model Files


Silverlight Client
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Layouts\ClientBin Microsoft.SharePoint.Client.Silverlight (262 kb) Microsoft.SharePoint.Client.Silverlight.Runtime (138 kb)

Client Object Model


Allows you to write SharePoint applications that run on different platforms w/o using web services Traditional .NET, Web/JavaScript and Silverlight developers can use familiar syntax

New Features
Ease of deployment
Publish and run if SharePoint on local host Package and deploy if SharePoint remote

Debugging
Step through code if SharePoint on local host

Sandbox solutions
Allow applications to be deployed at the site collection level by a site collection administrator (as opposed to farm-level equivalent)

New Features
LINQ Support
No longer restricted to just CAML queries if writing server-based code Create strongly typed SharePoint objects using SPMetal utility

New Features
Dialog framework External Lists
Looks and behaves like a SharePoint list Stored in SQL Server or some other data source

For More Information


Hands On Labs: http://www.microsoft.com/downloads/details.aspx?FamilyID =c010fc68-b47f-4db6-b8a8-ad4ba33a35c5&displaylang=en Or http://bit.ly/sp2010hol
Developer Training Kit http://bit.ly/sp2010devkit MSDN Training Videos http://www.mssharepointdeveloper.com

You might also like