® SharePoint Microsoft Online: Extensibility and Customization Howard Crow | Principal Group Program Manager | Microsoft Corporation Rob Howard | Program Manager II | Microsoft Corporation Developer Experience Sandbox Solutions Modern APIs Agenda • Overview of Microsoft® SharePoint® Online development • The power user and/or designer − In-browser customizations − SharePoint Designer 2010: no-code solutions • The developer − Sandboxed solutions − Client object model − Microsoft Silverlight® • Summary/resources • DEMOs throughout – this is a ‘show me’ session 5 | Microsoft Confidential SharePoint Online Development Extensibility 6 | Microsoft Confidential • • MSDN SharePoint Online Resource Center On Day One … The Power User Build out master pages Edit page layouts Add and customize OOTB web parts Add lightweight Silverlight (.XAP) widgets Embed jQuery code within Content Editor web parts Easily switch among OOTB themes, or import new using Microsoft Office PowerPoint® to design • More… • • • • • • 7 | Microsoft Confidential Demo: Simple customization in the browser 8 | Microsoft Confidential SharePoint Designer: No-code Workflows, Master Pages & Branding/Theming 9 | Microsoft Confidential SharePoint Designer 2010 & SharePoint Online − Create and connect to data internal to SharePoint − Create templates, data views, forms, dashboards, and mashups − Design custom workflows to manage business processes • New features in SharePoint Designer 2010 − Full-screen workflow designer, reusable workflows, Task Designer (for human workflow) − Powerful data views with new XSLT List View web part • − Save lists, workflows, and sites as solution files (WSP) Seamlessly integrate with other tools − Use with in-browser customizations − Hand off templates to Microsoft Visual Studio® 2010 • − Integrate with Microsoft InfoPath® forms and Visio-authored workflows Easily manage SharePoint Designer in your organization − Restrict who can detach pages from the site definition − Restrict who can edit master page and page layouts − Restrict who can edit files in URL site hierarchy • − Prevent SharePoint Designer 2010 from editing sites It's FREE! − Can be downloaded for free and used with any SharePoint 2010 site 10 | Microsoft Confidential “No Server Code” Site Solutions • • • • • • XSLT-based list views Reusable declarative workflows Silverlight web part Client object model REST list APIs Custom actions in the database 11 | Microsoft Confidential Demo: “No Server Code” Solutions 12 | Microsoft Confidential Sandboxed Solutions 13 | Microsoft Confidential The Sandbox 14 | Microsoft Confidential Microsoft Visual Studio® 2010 Development for SharePoint Online Develop, test, and deploy Web part, workflow designers Package and deploy SharePoint projects as WSPs Broad SharePoint support Web Part Designer Support for SharePoint sandboxed solutions; sandbox is the default project type. Import WSP from SharePoint Designer, including workflow Build workflow steps for SharePoint Designer Extensibility for development of additional SharePoint artifacts Build out Silverlight projects (.XAP) for use with Silverlight web part Project Types 15 | Microsoft Confidential Sandbox Architecture FRONT END BACK END Execution Wrapper Host Service (Inside Application Pool) IIS (W3WP.EXE) (SPUCHostService.exe) Worker Process (SPUCWorkerProcess.exe) Untrusted Code Subset Object Model Proxy Process (SPUCWorkerProcessProxy.exe) Full Object Model 16 | Microsoft Confidential The Solution Gallery 17 | Microsoft Confidential Solution Examples • • • Link to the online SharePoint 2010 SDK: http://msdn.microsoft.com/enus/library/ee557253(office.14).aspx Namespaces and Types in Sandboxed Solutions: http://msdn.microsoft.com/enus/library/ee537860(office.14).aspx Code components: − Event & Feature receivers − Navigation − Web parts − InfoPath forms logic − SharePoint Designer workflow activities Declarative components: − Declarative workflows − Content types, site columns − Lists and list definitions − Non-visual web parts − Custom actions, ribbon extensions − Client-side technologies − Web templates, site pages, page layouts, and master pages What’s not supported from the Sandbox: − No access to Internet to make web service calls − No access to a hard drive to read/write files; you can read/write to lists/libraries − No web application-scoped features, no farm-scoped features − Cannot add assemblies to the GAC − Cannot run security-related functionality (RunWithElevatedPriviledges, SPSecurity methods, etc.) 18 | Microsoft Confidential Demo: Sandboxed Solutions Online 19 | Microsoft Confidential Client Object Model 20 | Microsoft Confidential The Client Object Model 21 | Microsoft Confidential Using the Client Object Model ECMAScriptControls and Logic Browser ECMAScript OM Proxy Proxy Managed OM JSON Response Server OM XML Request XML Request JSON Response Client.svc Content database Managed Client Managed Controls and Logic 22 | Microsoft Confidential SharePoint Server in SPOnline Supported Areas • • • • • • • • Site collections and sites Lists, list items, views, and list schemas Files and folders Web, list, and list item property bags Web parts Security Content types Site templates and site collection operations 23 | Microsoft Confidential Demo: Client Object Model 24 | Microsoft Confidential 25 | Microsoft Confidential Silverlight Silverlight provides the opportunity for developers to create the next generation of Rich Internet Applications (RIAs). SharePoint Online integrates closely with Microsoft Silverlight to enable you to build compelling user interfaces that interact with SharePoint Online data 26 | Microsoft Confidential Demo: Silverlight Online 27 | Microsoft Confidential Extensibility Overview 28 | Microsoft Confidential Summary • No-server-code solutions are simple and powerful • Developers/ISVs can write custom server code for hosted environments with Sandboxed Solutions • Client object model allows remote solutions to interact with SharePoint objects • Greater than the sum of their parts: − Sandbox + Silverlight + ClientOM 29 | Microsoft Confidential Question & Answer 30 | Microsoft Confidential Resources • Main SharePoint Online marketing site: • • • • − http://sharepoint.microsoft.com/en-us/SharePointOnline/Pages/default.aspx Primary Office 365 marketing site: − http://www.office365.com − Trials, 100-200 level customer-facing info − Contains info about BPOS suite and SPO − 30-Day trial SharePoint Online developer resource center (MSDN): http://go.microsoft.com/fwlink/?LinkId=203983 SharePoint Online Administration resource center (TechNet): http://technet.microsoft.com/sharepoint/gg144571.aspx ‘Help and How-to’ for SharePoint Online (Office.com): http://office.microsoft.com/redir/FX102052854.aspx 31 | Microsoft Confidential Appendix: Depth Slides on How Sandboxed Solutions Run 32 | Microsoft Confidential Sandbox Architecture FRONT END BACK END Execution Wrapper Host Service (Inside Application Pool) IIS (W3WP.EXE) (SPUCHostService.exe) Worker Process (SPUCWorkerProcess.exe) Untrusted Code Subset Object Model SubsetModel Request 33 | Microsoft Confidential Proxy Process (SPUCWorkerProcessProxy.exe) Full Object Model Sandbox Architecture FRONT END BACK END Execution Wrapper Host Service (Inside Application Pool) IIS (W3WP.EXE) (SPUCHostService.exe) Worker Process (SPUCWorkerProcess.exe) Untrusted Code Subset Object Model Full-Model Request Proxy Process (SPUCWorkerProcessProxy.exe) Full Object Model 34 | Microsoft Confidential Sandbox Architecture FRONT END BACK END Execution Wrapper Host Service (Inside Application Pool) (SPUCHostService.exe) Worker Process IIS (W3WP.EXE) (SPUCWorkerProcess.exe) Untrusted Code Run for 30sec Subset Object Model Resource Wasting Call 35 | Microsoft Confidential Proxy Process (SPUCWorkerProcessProxy.exe) Full Object Model Full-Trust Proxy Worker Process (SPUCWorkerProcess.exe) Proxy Process (SPUCWorkerProcessProxy.exe) Untrusted Code Fully Trusted Code SPProxyOperationsArgs SPUtility 36 | Microsoft Confidential SPProxyOperationsArgs SPProxyOperation Secured Resource