SoCalCodeCamp SharePoint Server 2010 a Developer Platform

28
SharePoint Server 2010 a ASP.NET Developer Platform Ivan Sanders SharePoint MVP, Architect Developer Dimension Solutions inc. [email protected]

description

SharePoint is an awesome development platform, but it was hard for developers to quickly understand SharePoint development because it required knowledge of SharePoint architecture and infrastructure. Changes have been made in SharePoint 2010 but more importantly Visual Studio 2010 to improve the development experience familiar for ASP.NET developers like easy deployment and debugging of your SharePoint applications and designers for building different types of SharePoint customizations.

Transcript of SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Page 1: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

SharePoint Server 2010 a ASP.NET Developer Platform

Ivan Sanders

SharePoint MVP, Architect DeveloperDimension Solutions inc.

[email protected]

Page 3: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Agenda

SharePoint Basics Packaging and Deployment Common Artifacts Remote Applications Demo

InfoPath FormList DefinitionsEvent ReceiversWork Flow

Page 4: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

SharePoint Basics

Page 5: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

SharePoint.NET

Why SharePoint?

Data Storage

Presentation

Security

Clustering

API’s

Office Integration

Features

Data Storage

Presentation

Security

Clustering

API’s

Office Integration

Features

Custom Development

Custom

Out of the Box

Page 6: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

SharePoint Terminology

Farm

Feature

Solution PackageEvent Receiver

Web Application

Web Part

Site Definition

CAML

Feature Receiver

Central Administration

Declarative Workflow

Client Object Model

Timer Job

List Definition

List Instance

Content Database

Content Type

Persisted Object

Site ColumnSite Collection

Elevated Privileges

Theme

Application Page

Safe Control

Scope

ONET

Publishing Page

Field Control

Layout Page

Team SiteList View

STSADM

Page 7: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Server Farm

Web Application

SharePoint Architecture

Site Collection

Web

Web Parts Features Content Types

Site Columns

UserSolutions

Features Lists Views

ContentDatabase

Workflows Themes

Templates

Layouts Alerts

Databases SolutionsService

ApplicationsAlternate Access

Monitoring Security Policies

Providers File Types ThrottlingManaged

PathsService

Connections Quotas Permissions

Page 8: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Server Farms A collection of SharePoint role

servers and a SQL database server

Servers can perform one or more functions (web front end, search, application, etc.)

Farm-level features are managed via Central Administration

Custom code can be deployed at the Farm level and managed centrally

Solution Packages allow custom code to be automatically deployed across the farm

Server FarmWeb Front Ends

Application

Database

Page 9: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Web Applications and Site Collections

Web application = IIS Virtual Server

Each web application may be assigned its own app pool

Web applications may utilize multiple service applications

Site collections reside within web applications

Site collection functionality derived from underlying site definition

Special site collection types include My Sites, Shared Services Provider, Publishing Web

Portal

MySites

Central Administration

HR

Finance

Marketing

Page 10: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Packaging and Deployment

Page 11: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Solution Packages

Solution Packages are “bundles” of functionality deployed to the farm or site collection (sandbox)

May contain one or more Features, assemblies, pages, controls, and other artifacts

SharePoint framework handles installation and configuration of solution items automatically across entire farm

Automated packaging and deployment in Visual Studio 2010

WSP

MappedFolders

Assemblies

Web Parts

Page 12: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Sandbox Solutions

Trusted solutions which run in isolated process

Load balanced execution Uploaded to solution

directory in site collection Administratively controlled

via quotasCan be automatically disabled

Subset of OM functionality Ability to use trusted proxy

for restricted operations

Full Object Model

Subset Object Model

MyWebPart.dll

Proxy

Runtime

Page 13: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Features A ‘Feature’ is a defined set of

functionality encapsulated within a specific format

Features are the basic building block of WSS v3 and MOSS development

Features may be comprised of any combination of code, including web parts, workflows, and site definitions

Features may be deployed manually or automatically on a local or global basis

Features are heavily dependent on CAML

Solution

Feature

XML

Receiver

Assembly

Project Item

Web Part Template Workflow

Page 14: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Packaging and Deployment

DEMO

Page 15: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Common Tools Common Artifacts

DEMO

Page 16: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

SharePoint 2010 Development Development on Windows 7 or

Vista x64 Visual Studio 2010 Support

SharePoint Explorer SharePoint Project and Item

Templates Visual Designers for Common

Scenarios F5 Debugging Packaging Support (.wsp)

Developer Dashboard Sandbox Solutions Client Object Model

Silverlight .NET ECMA Script

Page 17: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Windows 7 Development Desktop

DEMO

Page 18: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Web Parts

Web Parts are a specific type of server control that inherit from System.Web.UI.WebPart

Web Parts contain discreet functionality that is exposed to the user in the context of a Web Part Page

Classic Web Parts do not have an IDE; Visual Web Parts host ASP.NET User Controls

Web Parts execute in the context of the current user

Web Parts may be deployed individually or in conjunction with other artifacts

Page

Form

Web Part

Controls

Web PartManager

Page 19: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Building an InfoPath Form

DEMO

Page 20: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

List Elements, Types and Views

Lists are virtual data repositories for unstructured content Fields defined by associated content types and user-

defined columns Common lists types included OOTB

Custom list types may be created in UI or code List data is stored in the content database associated

with the site collection Maximum limit for list items is 30M+

Be aware of performance implications and throttling when storing/retrieving large amounts of list data

Lists have associated views defined in UI or CAML Custom field types may be created programmatically

Page 21: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Event Receivers Event Receivers are handler assemblies

that respond to events on specific objects (Webs, Lists, Features, etc.)

Event receivers override built-in methods: Adding/Added Updating/Updated Activated/Deactivated Installing/Uninstalling

Event Receivers have no UI or user feedback mechanism

Event Receivers must run with Full Trust in the GAC

Item Adding

ContentDatabase

Code

Item Added

Code

Creating a List Definition and Attaching an Event Receiver

Page 22: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Creating a List Definition and Attaching an Event Receiver

DEMO

Page 23: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

.NET framework version

SharePoint 2010 has a dependency on .NET 3.5 Workflows in SharePoint Server 2010 are *not* WF 4.0

Workflows .NET Framework release schedule doesn’t align with

SharePoint Server 2010Would have delayed SharePoint Server 2010 significantly to take a

dependency on WF 4.0

Page 24: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Workflow SharePoint Workflow inherits and builds

upon Windows Workflow Foundation (WF) Simple workflows can be created in

SharePoint Designer, advanced workflows require Visual Studio

Two types of workflow – Sequential and State Machine

User interaction provided via InfoPath forms or custom ASPX pages

Workflows are tied directly to lists and list items

Built-in history, tasks, and tracking mechanisms

Page 25: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

File system

SPD Workflow Import SPD has a new reusable declarative Workflow template Once deployed it can be saved to a template (.wsp) Template can be imported into Visual Studio 2010 and modified

WSP

Deploy Package

Save to File System Create New ProjectImport WSP

NEW!

Page 26: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

SPD Workflow Export and Visual Studio 2010

DEMO

Page 27: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Q & A

Page 28: SoCalCodeCamp SharePoint Server 2010 a Developer Platform

Who can you trust??The blogs I trust through all of the noise.

Maurice Prather http://www.bluedoglimited.com/default.aspx Andrew Connell http://www.andrewconnell.com/blog Spence Harbarhttp://www.harbar.net Jim Duncan Heather Solomon http://www.heathersolomon.com/blog Todd Klindt http://www.toddklindt.com/default.aspx Todd Baginski http://www.toddbaginski.com/blog Todd Bleeker http://bit.ly/edlSm5

Jan Tielens http://weblogs.asp.net/jan Patrick Tisseghem http://www.u2u.info/Blogs/Patrick/default.aspx Wictor Wilen http://www.wictorwilen.se Ted Patisson http://blog.tedpattison.net/default.aspx Lars Fastrup http://www.fastrup.net Carsten Keutmann http://keutmann.blogspot.com Keith Richie http://blog.krichie.com Bill Baer http://blogs.technet.com/b/wbaer