330 likes | 531 Views
PR10. SharePoint is not Just On-Premise: Developing and Deploying S olutions for SharePoint Online. Rob Howard Program Manager Microsoft Corporation. Agenda. Overview of SharePoint Online Categories of hosted SharePoint solutions Introducing s andboxed solutions
E N D
PR10 SharePoint is not Just On-Premise:Developing and Deploying Solutions for SharePoint Online Rob Howard Program Manager Microsoft Corporation
Agenda • Overview of SharePoint Online • Categories of hosted SharePoint solutions • Introducing sandboxed solutions • Developing and deploying sandboxed solutions • Sandboxed solutions architecture
The Power of Choice! On-Premises and Online Hosting On-Premises Deployments SharePoint Online Standard SharePoint Online Dedicated • 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. • Multi-tenant hosting • Shared Hardware • Outsourced IT management • Hosted within MS data centers • No support for “farm” code • Support for SharePoint Designer based customizations • Certificate authentication (today) or Forms based authentication (2010) • Available for companies with 5+ seats • Dedicated Hosting • Dedicated Hardware • Outsourced IT management • Hosted within MS data centers • Most of the environment is customizable (“farm” code is supported) • Machine and Process accounts in a different AD Forest • NTLM Authentication • Available for companies with 5000+ seats
Better Every Day Simplified Management Always up-to-date capabilities at a predictable cost • Key Benefits • Up and running quickly • Latest software • No more server upgrades • Subscription-based • Predictable cost • Optimize productivity $ Software + Services Accelerate the Journey Basic Rationalized Standardized Dynamic IT Is An Efficient Cost Center IT Is A Business Center IT Is A Strategic Asset IT Is A Cost Center
SharePoint Application ComponentsSharePoint 2007 “No-server-code” Site Solutions Farm Solutions Custom server components Web parts, workflow actions, InfoPath form logic, eventand feature receivers Timer jobs Windows services Web services Field types Doc parsers, more… • Custom markup • HTML, ASP.Net, web part configuration, XSLT, XOML • Server component white-list • ASP.Net controls, web parts, workflow actions • Client-side technologies • JavaScript, Silverlight • Consume Web services or local data sources
“No-server-code” site solutionsImprovements in SharePoint 2010 • XSLT-based list views • Reusable declarative workflows • Silverlight web part • Client object model • REST list apis • Business Connectivity Services • External data lists • CustomActions in the database
SharePoint Designer 2010No 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 migrated to Visual Studio 2010 • “Save site as template” in SharePoint Site Settings creates WSP • WSP imports into Visual Studio 2010 as new project
SharePoint Application ComponentsSharePoint 2007 “No-server-code” Site Solutions Farm Solutions Custom server components Web parts, workflow actions, InfoPath form logic, eventand feature receivers Timer jobs Windows services Web services Field types Doc parsers, more… • Custom markup • HTML, ASP.Net, web part configuration, XSLT, XOML • Server component white-list • ASP.Net controls, web parts, workflow actions • Client-side technologies • JavaScript, Silverlight • Consume Web services or local data sources
SharePoint Application ComponentsSharePoint 2010 “No-server-code” Site Solutions Farm Solutions Custom server components Web parts, workflow actions, InfoPath form logic, eventand feature receivers Timer jobs Windows services Web services Field types Doc parsers, more… Sandboxed Solutions • Custom markup • HTML, ASP.Net, web part configuration, XSLT, XOML • Server component white-list • ASP.Net controls, web parts, workflow actions • Client-side technologies • JavaScript, Silverlight • Consume Web services or local data sources • All the capabilities of site solutions • Custom server components • Web parts, Workflow actions, InfoPath form logic, Eventand feature receivers • Xml Definitions • WSP-based deployment
A Sandboxed Solution demo
Sandboxed Solutions – Why? Security & Stability BusinessAgility Totally Agile Business • Simple deployment model • Limited restrictions on developer access to farm • All resources are available to solutions • Iterative development process
Sandboxed Solutions – Why? Security & Stability BusinessAgility Totally Stable & Secure • ‘Clean Room’ Datacenter • 3 week change control process • Formal code review • Severe restrictions on resource access
Sandboxed Solutions – Why? Security & Stability BusinessAgility Essential Agility Essential Stability • Easy deployment • Iterative development • Safe • Limited API Access • Monitored
The Sandbox • A separate, rights-restricted process where the solution runs • Exposes a subset of Microsoft.SharePoint • Code Access Security policy limits functionality • Site collection solution gallery for deployment • Resource usage monitoring and site collection quotas
Supported Solutions • Code components: • Event receivers • Feature receivers • Web parts • InfoPath forms logic • SharePoint Designer Workflow activities • Declarative components: • Content types, site columns • Lists and list definitions • Custom actions, ribbon extensions • Client-side technologies • Site pages, page layouts, and master pages
Upgrade and PackagingWSP as the SharePoint Installer • WSS Solution Package (WSP) • SharePoint UI Save as Template • Better-defined Upgrade Semantics • Declarative upgrade mappings • Upgrade callouts for features • Application discovery in SharePoint Sites • WSPs as unified developer format • Works in both site collections and farm deployment
Visual Studio 2010Developer Tools for SharePoint Develop, Deploy and Debug • Web Part, BDC 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
A Subset of Microsoft.SharePoint • Microsoft.SharePointExcept • SPSite constructor • SPSecurity object • SPWorkItem and SPWorkItemCollection objects • SPAlertCollection.Addmethod • SPAlertTemplateCollection.Add method • SPUserSolution and SPUserSolutionCollection objects • SPTransformUtilities • Microsoft.SharePoint.Navigation • Microsoft.SharePoint.UtilitiesExcept • SPUtility.SendEmail method • SPUtility.GetNTFullNameandEmailFromLogin method • Microsoft.SharePoint.Workflow • Microsoft.SharePoint.WebPartPagesExcept • SPWebPartManager object • SPWebPartConnection object • WebPartZone object • WebPartPage object • ToolPane object • ToolPart object
Code Access Security Policy • SharePointPermission.ObjectModel • SecurityPermission.Execution • AspNetHostingPermission.Level = Minimal No timer jobs No web service calls No elevation/impersonation Note: A fully-trusted “proxy class” can be created to gain access to additional resources
Sandbox Architecture FRONT END BACK END Host Service (SPUCHostService.exe) Execution Wrapper(Inside Application Pool) Worker Process (SPUCWorkerProcess.exe) IIS(W3WP.EXE) Untrusted Code Proxy Process (SPUCWorkerProcessProxy.exe) Full Object Model Subset Object Model
Sandbox Architecture FRONT END BACK END Host Service (SPUCHostService.exe) Execution Wrapper(Inside Application Pool) Worker Process (SPUCWorkerProcess.exe) IIS(W3WP.EXE) Untrusted Code Proxy Process (SPUCWorkerProcessProxy.exe) Full Object Model Subset Object Model Subset-Model Request
Sandbox Architecture FRONT END BACK END Host Service (SPUCHostService.exe) Execution Wrapper(Inside Application Pool) Worker Process (SPUCWorkerProcess.exe) IIS(W3WP.EXE) Untrusted Code Proxy Process (SPUCWorkerProcessProxy.exe) Full Object Model Subset Object Model Full-Model Request
Sandbox Architecture FRONT END BACK END Host Service (SPUCHostService.exe) Execution Wrapper(Inside Application Pool) Worker Process (SPUCWorkerProcess.exe) IIS(W3WP.EXE) • while(true) • { • //Do a Bad Bad Thing! • } Untrusted Code Proxy Process (SPUCWorkerProcessProxy.exe) Run for 30sec Full Object Model Subset Object Model Resource Wasting Call
Full-Trust Proxy Worker Process (SPUCWorkerProcess.exe) Proxy Process (SPUCWorkerProcessProxy.exe) Untrusted Code Fully Trusted Code SPProxyOperationsArgs SPProxyOperationsArgs SPUtility SPProxyOperation SecuredResource
Summary • No-server-code components are simple but powerful • Developers can write server code for hosted environments with sandboxed solutions • Sandboxed solutions balance agility and stability • Sandboxed solutions are the future of SharePoint extensibility
Related Content • PDC Talks • PR02 Overview of SharePoint 2010 Programmability • PR06 Developing Solutions with Business Connectivity Services in Microsoft SharePoint Server 2010 • PR03 Developer Patterns to Integrate Microsoft Silverlight 3.0 with Microsoft SharePoint 2010 • PR07 Developing Solutions for Microsoft SharePoint Server 2010 Using the Client Object Model • PR09 Document Assembly and Manipulation on Microsoft SharePoint Server 2010 Using Word Services and Open XML • PR12 It's All about the Services: Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET, WCF, and REST • More about SharePoint Online • http://www.microsoft.com/online/sharepoint-online.mspx
YOUR FEEDBACK IS IMPORTANT TO US! Please fill out session evaluation forms online at MicrosoftPDC.com
Learn More On Channel 9 • Expand your PDC experience through Channel 9 • Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses channel9.msdn.com/learn Built by Developers for Developers….