SHAREPOINT 2010 DEVELOPMENT : IN THE CLOUD Faraz Khan Senior Consultant RBA Consulting
AGENDA Intro to SharePoint Online SharePoint Hosting Options Feature Comparison with Public/Private/On-Premise Customization Strategies Browser Designer 2010 Visual Studio Sandbox Solutions Client Object Model SharePoint On-Premise vs. Online ALM Demo Resources to Get Started
Founded in 2006 Offices in three geographies Dallas Denver Minneapolis Best Places to Work Minneapolis: 2007, 2008, 2009 Dallas: 2009 Debuted at #219 on Inc. 500 Microsoft Gold Partner 8 Gold Competencies Managed Partner FAST Partner Online Services Accelerated Partner
WHO AM I Faraz Khan Senior SharePoint Consultant RBA Consulting Denver, CO - Co-Authoring book on SharePoint online - Speaker at SharePointFest 2010 Denver - Microsoft Certified Technical Specialist (MCTS) MOSS 2010 Configuration - Microsoft Certified Technical Specialist (MCTS) WSS 3.0 & MOSS 2007 Configuration - Microsoft Virtual TS SharePoint - Advisory Board - SharePoint Guidance V1, V2 and V3 patterns & practices @ Microsoft - Over 7 Years of Industry Experience
INTRO TO SHAREPOINT ONLINE Cloud based version of SharePoint 2010 Subscription based Software as a Service Hosted in cloud datacenters by MS Backups Updates Security Reliability Support
SHAREPOINT HOSTING OPTIONS On-Premise SharePoint Online Standard SharePoint Online Dedicated Hybrid
SHAREPOINT ONLINE OPTIONS On-Premises Deployments Self-hosted and managed Direct access to physical machines Central admin access Hosted within own data centers Entire environment customizable All accounts, machines, and data within a single AD Forest Available to companies of any size. SharePoint Online Standard Multi-tenant hosting Shared Hardware Outsourced IT management Hosted within MS data centers Partial trust code support Support for SharePoint Designer based customizations Certificate authentication (today) or Forms based authentication (2010) Available for companies with 5+ seats SharePoint Online Dedicated Dedicated Hosting Dedicated Hardware Outsourced IT management Hosted within MS data centers Most of the environment is customizable (Full and Partial Trust Code Support) Machine and Process accounts in a different AD Forest NTLM Authentication Available for companies with 5000+ seats
HYBRID OPTION Core pieces on-premise Certain pieces online Scenarios (offloading certain workloads) Cloud based information portals Executive blog with anonymous access Extranet based collaboration Mergers & acquisition/due diligence sites Time-limited events/campaigns
DEVELOPER LICENSE TYPES Feature P1 license K1 license K2 license E1 license E2 license E3, E4 licenses Access services Browser-based customizations Client object models Developer dashboard Event receivers Forms: built-in workflows and customization through SharePoint Designer Subsites only** InfoPath Forms Services Language Integrated Query (LINQ) for SharePoint REST and ATOM data feeds Ribbon and dialog box framework sandboxed solutions SharePoint Designer subsites only** SharePoint service architecture Silverlight Solution packages (.wsp files) Visual Studio 2010 Developer Tools Windows 7 support Workflows Workflow models Workflow templates
CUSTOMIZATION
CUSTOMIZING - BROWSER Largely the same as on-premise Edit pages and change page layouts Add/Remove/Customize default Web Parts Add/Configure Lists, Content Types, Workflows Change theme Create site template/change site properties Add Silverlight widgets Add jquery code to Web Part
CUSTOMIZING SHAREPOINT DESIGNER Largely the same as on-premise Declarative Solutions Client side scripting Examples Data rich Web Pages No code workflow-enabled solutions Create/Customize master pages, page layouts, css Configure and package sites into.wsp
CUSTOMIZING VISUAL STUDIO Solutions scoped to site collection or web site Only partially trusted Server side API s available in the sandbox solution Client Application Silverlight, ECMA Script or.net application Access subset of the ASP.NET and REST Web Services Access external data sources
INTRO TO SHAREPOINT ONLINE
SANDBOX SOLUTIONS Uploaded to solution gallery by administrators Do not have undesirable effects on other site collections Monitored and managed easily Benefits: Rapid Configuration Flexibility Stability
SANDBOX SOLUTIONS Development Scoped to SPSite and below, Partial Trust, Subject to CAS Executes in sandboxed execution environment User code service (SPUCHostService.exe) Sandbox Worker Process (SPUCWorkerProcess.exe) Sandbox Worker Process Proxy (SPUCWorkerProcessProxy.exe) Deployment Uploaded to solution gallery by Site Collection owner No IT Admin required Admin Monitor resources used by solution
PLAYING WITH THE SAND Code components Feature receivers Event receivers SPItemEventReceiver SPListEventReceiver SPWebEventReceiver Navigation Web Parts Microsoft InfoPath forms logic SharePoint Designer workflow activities Sandboxed solutions workflow activities
PLAYING WITH THE SAND Declarative components: Declarative workflows Content types, site columns Lists and list definitions Visual and nonvisual Web Parts Custom actions, ribbon extensions Client-side technologies Web templates, site pages, page layouts, and master pages
SAND IN THE EYES Access to the Internet to make web service calls Access to a hard disk to read or write files Web application-scoped or farm-scoped Features Adding assemblies to the global assembly cache Running security-related functionality; for example, RunWithElevatedPrivileges or other SPSecurity methods Custom Action groups HideCustomAction element Content type binding Web Part connections Objects that have larger scope than the current site
SANDBOX SOLUTION TIPS/TRICKS Create site collections in SharePoint Online to validate deployment Use Visual Studio 2010 SharePoint Power Tools Can only debug locally Ensure UC service is running Attach to SPUCWorkerProcess.exe process Output Debug Information Use SP Online Lists as custom application log in Debug configuration
CLIENT OBJECT MODEL Exposes site-level data and objects on client computers Can connect and manipulate SP objects that run remotely Provides subset of server side functionality Easy to use as server side model Supports more operations than traditional Web Services Three Separate APIs EcmaScript Object Model Silverlight Client Object Model.NET object model
CLIENT OBJECT MODEL PATTERNS Windows-based applications Console applications ASP.NET applications Silverlight applications Javascript clients
CLIENT SERVICE MODEL ARCHITECTURE
CLIENT OBJECT MODEL AUTHENTICATION ECMAScript Implementation Authentication Uses browser s authentication cookie Silverlight Implementation Authentication If XAP in same domain, then uses browser s authentication cookie.net Implementation Authentication Implement WebBrowser control for login Use P/Invoke against WININET.dll to get cookie Add cookie to ClientContext s request
WEB SERVICES AVAILABLE Web service WebSvcAlerts WebSvcCopy WebSvcDWS Description Provides methods for working with alerts for list items in a SharePoint site. Provides services for copying files within a SharePoint site and between SharePoint sites. Provides methods for managing Document Workspace sites and the data they contain The following method is not available in SharePoint Online: FindDwsDoc WebSvcImaging WebSvcLists Provides methods that enable you to create and manage picture libraries. Provides methods for working with SharePoint lists, content types, list items, and files. The following method is not available in SharePoint Online: AddDiscussionBoardItem WebSvcMeetings WebSvcPeople WebSvcPermissions WebSvcSiteData WebSvcsites WebSvcspsearch WebSvcUserGroup WebSvcVersions WebSvcviews WebSvcwebpartpages WebSvcWebs Provides methods that enable you to create and manage Meeting Workspace sites. Provides methods for associating user identifiers (IDs) with security groups for site permissions. Provides methods for working with the permissions for a site or list. Provides methods that return metadata or list data from sites or lists. Provides methods for returning information about the site templates for a site collection Provides methods for accessing Search results from client applications and web applications outside of the context of a SharePoint site. Provides methods for working with users and groups. Provides methods for working with file versions in SharePoint document libraries. Provides methods for creating, deleting, or updating list views in SharePoint Online. Provides methods for working with Web Parts. The following methods are not available in SharePoint Online: AssociateWorkflowMarkup ExecuteProxyUpdates GetAssemblyMetaData GetDataFromDataSourceControl GetFormCapabilityFromDataSourceControl RemoveWorkflowAssociation ValidateWorkflowMarkupAndCreateSupportObjects Provides methods for working with sites and subsites. The following method is not available in SharePoint Online: CustomizeCss
SHAREPOINT ON-PREMISE ALM
ONLINE ALM
DEMO
OTHER TOPICS General Availability No dates announced yet Price Talk to your licensing rep
RESOURCES SharePoint Online developer resource center http://msdn.microsoft.com/enus/sharepoint/gg153540 Visual Studio 2010 SharePoint Power Tools http://visualstudiogallery.msdn.microsoft.com/ 8e602a8c-6714-4549-9e95-f3700344b0d9/ SharePoint Online Developer Guide http://www.microsoft.com/downloads/en/detail s.aspx?familyid=4387e030-73dc-48e7- ac95-abc043b9335a
THANK YOU Time for Questions and Answers