SharePoint 2010 Development Platform Overview
Agenda What’s New in SharePoint 2010 for developers New Developer Tools for SharePoint 2010 SharePoint 2010 Integration with PowerShell Claims based identity
What’s New in SharePoint 2010 for developers
SharePoint 2007 Windows SharePoint Services (WSS v3) Site and Workspace Provisioning Engine Out-of-the-box Collaboration Services
Microsoft Office SharePoint Server (MOSS) User Profiles, Search, Workflows, WCM BrowserExcel Clients Services, Forms BDC, Services, ECM Microsoft Office SharePoint Server 2007 (MOSS) MS Word Clients
Windows SharePoint Services 3.0 (WSS v3)
MS Outlook Clients .NET Framework 3.0 Internet Information Services 6.0 or 7.0 Windows Server 2003 or 2008 (32-bit or x64)
SharePoint Server 2010 and related technologies
An evolved version of MOSS and WSS v3 Microsoft SharePoint Server 2010 (SPS) Microsoft SharePoint Foundation 2010 (SPF) Development can now be done on client OS Significant enhancement for many development Browser Clients Microsoft SharePoint Server 2010 teams MS Word Clients
Microsoft SharePoint Foundation 2010
MS Outlook Clients .NET Framework and ASP.NET 3.5 SP1 Internet Information Services 7.0 Windows Server 2008 (x64 only) for Production Environments Windows 7 or Vista (x64 only) for Development Environments only
Development environment Requires x64 operating system Windows Server 2008 Windows Server 2008R2 Windows 7 (only for development) Windows Vista SP2 (only for development) SharePoint 2010 must be installed locally SharePoint Foundation or SharePoint Server Visual Studio 2010 Additional software as required in the project
Microsoft SharePoint 2010
The business collaboration platform for the Enterprise and the Web Sites Composites
Communities
Connect and Empower People Cut Costs with a Unified
Insights
Content Search
Infrastructure Rapidly Respond to Business Needs
SharePoint 2010 Team Site
Major Shifts in SharePoint UI Server ribbon
In-place editing
Popup dialog AJAX refresh
SharePoint 2010 UI
demo
SharePoint Application Landscape Business Collaboration Applications
Portal for LOB Application Data
SharePoint Core .NET | ASP.NET
Customized SharePoint Server 2010 Workloads
Single WebPart Solutions
SharePoint Terminology Review Farm SPFarm
Site Collections
Site collection SPSite
Root Site
Site SPWeb Sub sites
Web Applications SPWebApplication List - SPList Field 1 Field 2 Field 3
Item SPListItem
Lists
Document Library - SPDocumentLibrary Field 1 Field 2 Field 3
Item 1
File 1
Item 2
File 2
Item 3
File 3
Item 4
File 4
File – SPFile Folder - SPFolder
Remember This Code from WSS v3?
Debugging SharePoint 2010 Code
Make sure that your start VS 2010 as Admin Required for attaching VS 2010 debugger to IIS Worker Process (W3WP.EXE)
SharePoint 2010 Developer Dashboard
Developer dashboard can be also enabled using stsadm or PowerShell
SharePoint 2010 OM & Development Dashboard demo
SharePoint Development Platform
SharePoint List Improvements Collaborative Data Store
Relationships with Cascade or Block Transacted Cascading Deletion Restriction of Deletion
Validation with Excel Like Formula Formula-based Validation Ensure Uniqueness
Lookup to Multiple Columns List Index Auto-Creation Scalability and Performance List Query Throttling And we keep from SharePoint 2007
XSLT Views for Lists View Design in UI and SPD Replaces CAML for Views CAML Still Used for Queries
Better Performance Easier edit in SPD
Ribbon UX: sort/filter/group, conditional formatting,‌
Simpler Coding Experience
Standard language, shared default XSLT
XSLT-based views are now default SharePoint Lists External Lists
Overview of Data TechnologiesREST APIs
Strongly-typed lists
Client OM
Weakly-typed lists
Client-side
Data Platform Farm Server-side
New in 2010 Improved
Site
List Data
External Lists
Server OM
Weakly-typed lists
LINQ
Strongly-typed lists
LINQ to SharePoint Language Integrated Query
Entity based programming Strong Types and Intellisense
Supports List Joins and Projections Join lists on lookup field between them Join multiple lists (A->B->C) Project any field from joined list in a query without changes in list schema
Example from o in data.Orders where o.Customer.City.Name == "London“ select o;
Client Object Model
Runs on Remote Machine Simple API to Add, Retrieve, Update and Manage Data in SharePoint Commands batched for Performance SharePoint Data Consistent
Efficient Client Application
.NET CLR
Silverlight CLR
JavaScript
REST APIs
Integration with growing set of Microsoft REST Technologies
WCF Data Services REST Protocols Atom, JSON feeds
SharePoint list data
Business Connectivity Services Brings LOB Data Into SharePoint SharePoint List with External Data Read / Write SharePoint Foundation Office Apps Based on the SharePoint 2007 Business Data Catalog Client Runtime
SharePoint Designer 2010
Cache
SharePoint
Design Tools Visual Studio 2010
Offline Operations
Development Platform
ECT Store
Business Intelligence
Runtime
Enterprise content mgmt
Security
.NET LOB Web Service
WCF
Collaboration social
Solution Packaging
DB
Enterprise Search
Out of the box UI
Web 2.0
SharePoint Events Improvements Reacting Server Events Events to Project Templates in Visual Studio 2010 After-Synchronous Events Simpler Event Behavior
Site-scoped events Web creation events List creation events More User Interface Control
Workflow Improvements Popular and Successful Base in 2007
Visual Studio 2010 Initiation and Association Forms New Workflow Design Surface in SPD Import SPD Workflows into Visual Studio Build SPD Actions in Visual Studio Visio 2010 Workflow Design Browser Based Visualization High Privilege Workflows Control Where Service Runs Site Workflows Reusable Declarative Workflows List Workflow Event Receivers Pluggable Workflow Services Performance and Scale
SharePoint Service Applications
Upgrade to App Shared Browser New Service Architecture
Consumer Web Part
Service Proxy
WCF Contract
APP SERVER
Service Logic
Config
Content
Custom
SQL SERVER
Extensible Administration Roles User Interface and PowerShell
Consumer Web Part
WFE SERVER
Service Provider from SharePoint 2007 More Flexible Services Model Builds on WCF Knowledge Management
Client App
Extensible UI Controls Client Side actions in Ribbon added through Custom Actions Context Sensitive Ribbon
Status Bar
The Ribbon
Notification Area
Dialog Framework Keep the user in context Operations without unnecessary post packs Dialog Framework
Silverlight 3 and SharePoint 2010 Media Web Part New UIPlayer Option Organization Browser List and Site Creation Office Web Applications Silverlight Web Part Simple way to upload Silverlight CLR compatible
Client Object Model Call SharePoint API’s
REST APIs Simplifies List data access
Support for remotely hosted Silverlight applications
Upgrade and Packaging WSP as the SharePoint Installer SPF Solution Package (WSP) Visual Upgrade from version to version SharePoint UI Save To Template Better-defined Upgrade Semantics Declarative upgrade mappings Upgrade callouts for features
WSPs as unified developer format Works in both site collections and on machine
Instrumentation and monitoring improvements for developers Out-of-the-box APIs for logging to trace and event logs Supports custom categories to be exposed from diagnostic logging UI
Out-of-the-box APIs for code monitoring Capability to write messages for the developer dashboard stream
New Developer Tools for SharePoint 2010
Visual Studio 2010
Developer Tools for SharePoint Develop, Deploy and Debug Web Part, BCS and Workflow designers Package and Deploy SharePoint projects Generate WSP for Production Deployment View SharePoint site in Server Explorer Team Foundation Server Integration
Web Part Designer
Broad SharePoint Support Support for SharePoint Sandboxed Solutions Import WSP from SharePoint Designer including Workflow Build Workflow Steps for SharePoint Designer Extensibility for Development of Additional SharePoint Artifacts SharePoint Business Connectivity Services support
Project Types
SharePoint Designer 2010 No code tool for SharePoint
Free for creating and editing SharePoint artifacts New Tools BDC Entities List Schema Custom Actions Task / Approval Designer
Improved Tools Workflow Designer Page Editor
SharePoint Designer work can be upgraded to Visual Studio 2010 “Save site as template� in SharePoint Site Settings creates WSP
SharePoint Designer 2010 demo
What does scripting platform improvements2010 mean for developers? SharePoint Integration
with PowerShell
What is Windows PowerShell? An interactive command-line and task-based scripting technology. Allows IT professionals and developers to accelerate automation of tasks. A single mindset for management of many different systems (e.g.: AD, Exchange, Windows) Extensible framework that can be embedded inside other applications You can develop your own custom PowerShell snap-ins to streamline development and deployment Performance benefits for batch operations
Getting Started with PowerShell (1) Execute a Cmdlet
(2) Filter results using where clause
(3) Add formatting instructions
(4) Redirect output to new text file
The SharePoint Powershell Snapin
Explicitly load SharePoint PowerShell snap-in from console or script Begin using SharePoint Cmdlets
Implicitly load snap-in by using link in Windows Start menu
Creating a Custom Powershell Snapin PowerShell was created with extensibility in mind SharePoint developers can create custom snap-ins STSADM extensions are now considered deprecated
PowerShell in practice and how to create custom cmdlets‌ demo
What does claims based identity mean for developers Claims based Identity
SharePoint 2010 Security SharePoint 2010 radically changes authentication SPF moves to claim-based security model SharePoint 2007 style now considered legacy mode
Why? It decouples SPF from authentication provider Supports multiple authentication providers for one URL Identity can be passed without Kerberos delegation It enables federation between organizations ACLs configured with DLs, Audiences and Orgs
Claims in SharePoint 2010 Two important scenarios Incoming claims Outgoing claims
How do incoming claims work? Identity token created by external identity STS SharePoint STS creates claim-based identity SharePoint STS based on Claims Provider Incoming claim identity is mapped to SPUser Authorization of SPUser just like it is in SharePoint 2007
Development Opportunities Same as in SharePoint 2007 Write code that creates groups Write code that assigns permissions
New to SharePoint 2010 Create a custom claims-provider Create an identity transformation service with Geneva Server
Developing and deploying claims providers Claims providers have two roles Augmentation – Add additional claims into user token Picking - provides listing, resolve, search and friendly display of claims functionality in the people picker
Custom provider is implemented by inheriting SPClaimsProvider Deployment done by creating feature and feature receiver that derives from SPClaimsProviderFeatureReceiver class
Summary What’s New in SharePoint 2010 for developers New Developer Tools for SharePoint 2010 SharePoint 2010 Integration with PowerShell Claims based identity
Š 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.