Application Hosting and Customization Introducing Sandboxed Solutions Executing Code in the Sandbox Sandbox Resource Monitoring.

Slides:



Advertisements
Similar presentations
Getting Started with SharePoint 2013 Apps
Advertisements

Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
SP Business Suite Deployment Kick-off
SharePoint ExplorerNew Project and Item Templates New Project Structure.
Upgrading to SharePoint Who, When & Why Considerations: Good candidates for upgrade You need certain 2010 features You have not done significant*
Microsoft SharePoint® Online: Extensibility and Customization
Randy Williams, MOSS MVP Senior Consultant Synergy Corporate Technologies.
Building Sandbox Solutions for SharePoint 2010 Scott Jamison Managing Partner, Jornata LLC
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
St. Louis Day of Dot Net 2011 Building Web Parts for an Office 365 SharePoint Site Becky Bertram Independent SharePoint Consultant SharePoint MVP, MCSD.NET,
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
St. Louis Day of Dot Net 2011 Jump Start: SharePoint Development Becky Bertram Independent SharePoint Consultant SharePoint MVP, MCSD.NET, MCTS
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Becky Bertram SharePoint MVP
©2012 Microsoft Corporation. All rights reserved..
Site Provisioning Options Web Template Fundamentals Web Templates and App Webs Custom Solutions for Site Provisioning Wrap Up.
Fraser Technical Solutions, LLC
SPC220 Web Template FundamentalsCreating Web Templates Using Web Templates Web Templates and App Webs Wrap Up.
Sharepoint Portal Server Basics. Introduction Sharepoint server belongs to Microsoft family of servers Integrated suite of server capabilities Hosted.
©2012 Microsoft Corporation. All rights reserved. Content based on SharePoint 15 Technical Preview and published July 2012.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Protecting Your SharePoint Environment from the Evil Developers Robert Bogue Thor Projects
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Acceleratio Ltd. is a software development company based in Zagreb, Croatia, founded in We create innovative software solutions for SharePoint,
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring, Managing, and Troubleshooting Resource Access.
Workflow and SharePoint Presented by Ben Geers. Overview What is workflow? Windows Workflow Foundation How does workflow apply to SharePoint? WSS v3 vs.
Module 8 Configuring and Securing SharePoint Services and Service Applications.
TechEd /22/2017 5:40 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
Basic Developer Knowledge That Every SharePoint Admin Must Have Randy Williams, MVP MOSS Synergy Corporate Technologies
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Workflow Development Overview Architecture Requirements Types of workflows Stages of workflow.
WCM Platform Improvements ECM and Enterprise Metadata Advanced Routing and Document Sets In Place Records Management.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
HOW SHAREPOINT WORKS By Gary Newman. Root Folder Virtual Directories SP Farm DNS Iterative Forward DNS query for A host record HTTP request HTML & JS.
Upgrading Projects to Visual Studio 2010 Upgrading Projects to SharePoint 2010 Integrating with SharePoint 2010.
Module 13 Implementing Business Continuity. Module Overview Protecting and Recovering Content Working with Backup and Restore for Disaster Recovery Implementing.
Module 10 Administering and Configuring SharePoint Search.
Module 5: Configuring Internet Explorer and Supporting Applications.
New & Improved Events List Relationships and Joins Large List Support Field & List Item Validation.
James Akrigg Microsoft Ltd Integrating InfoPath Forms Into Workflow Solutions And Business Processes.
Enabling Developers with Development Features Presented by: Ricardo Wilkins SharePoint Solutions Architect.
Office Business Applications Workshop Defining Business Process and Workflows.
SharePoint Online – Developing Solutions for the Cloud Chris Mayo Microsoft Corporation
VITALE, CATURANO & COMPANY LTD Microsoft SharePoint Web Part Development Overview VITALE, CATURANO & COMPANY LTD SharePoint Developer Series – Web Part.
What’s New in SharePoint 2010 SharePoint 2010 Development Primer New Developer Tools for SharePoint 2010 SharePoint 2010 Integration with PowerShell.
SharePoint Apps and the Architecture of the new Cloud App Model Introducing Cloud App Model Designing Apps SharePoint-hosted Apps Key Learnings.
April-June 2006 Windows Hosting Seminar Series Technical Labs.
Microsoft ® Official Course Developing a Publishing Site for Web Content Microsoft SharePoint 2013 SharePoint Practice.
Microsoft ® Official Course Designing and Managing Features and Solutions Microsoft SharePoint 2013 SharePoint Practice.
Yaroslav Pentsarskyy Involved in SharePoint since 2003 SharePoint MVP (2009- Present) Blog: sharemuch.com.
Developer Design, build and test customizations Administrator Install and monitor customizations Site Collection Owner Activate and use customizations.
Name Title Company Changes in the solution management.
Bob German Principal Architect Future-Proof your SharePoint Customizations: Build 2010 Solutions that become 2013 Apps.
The best of WF 4.0 and AppFabric Damir Dobric MVP-Connected System Developer Microsoft Connected System Division Advisor Visual Studio Inner Circle member.
A Developer’s Introduction to SharePoint 2013 Apps Ryan McIntyre, MCITP, MCPD National
Doug Perkes Senior Consultant Microsoft Corporation.
SP Business Suite Deployment Kick-off
Joy Rathnayake Senior Architect – Virtusa Pvt. Ltd.
SharePoint 2010 Performance and Capacity Planning Best Practices
St. Louis Day of Dot Net 2011 Jump Start: SharePoint Development
Business Connectivity Services in SharePoint 2010 and Office 2010
BIWUG | SPSaturday Sandboxed Solutions
Security mechanisms and vulnerabilities in .NET
Microsoft Dynamics.
Migration to SharePoint 2013
Lesson #8 MCTS Cert Guide Microsoft Windows 7, Configuring Chapter 8 Configuring Applications and Internet Explorer.
Utilize Group Policy Terminal Server Settings
SharePoint 2019 Changes Point of View.
Office 365 Development July 2014.
St. Louis Day of Dot Net 2011 Building Web Parts for an Office 365 SharePoint Site Becky Bertram Independent SharePoint Consultant SharePoint MVP, MCSD.NET,
Presentation transcript:

Application Hosting and Customization Introducing Sandboxed Solutions Executing Code in the Sandbox Sandbox Resource Monitoring

Developers build custom solutions Administrators can only secure solutions with CAS Hard to control what is being done in custom code Biggest cause of SharePoint support cases: custom code Design, build, and test customizations Developer Install and monitor customizations Administrator Activate and use customizations Site Collection Owner

Developers build custom solutions Site collection owners deploy, activate and implement the customizations Administrators leverage resource monitors to check site collection usage Automatic triggers “turn off” custom solutions in a site collection that are too expensive and taxing on the server Design, build, and test customizations Developer Monitor customizations Administrator Deploy, activate and use customizations Site Collection Owner

Allow a subset of ‘full’ solution features Code executes in sandbox Are deployed by a Site Collection administrator Stored in the Solution Gallery

Sandboxed solution: site collection owners can upload to SharePoint Empowers site collection owners to deploy new functionality w/o involvement of IT Local/remote development options Self-regulating and monitored by IT Limited set of permissions & functionality Resource quotas established & monitored by IT Secure: site collection owner is in control

Sandboxed solutions are important because Solve SharePoint hosting issues in corporate environments Hosted environments much easier to manage Reduces time to deploying custom solutions Removing process of getting code approved and deployed by IT Improves stability of SharePoint servers Now badly performing code isolated to site collection rather than potentially bringing down an entire server

Allows a subset of the full capabilities in the SharePoint API Secure – enforcing the sandbox Execute in a partially trusted environment Code executes in a special service process Subject to CAS Validation framework Provides way to do custom farm wide validation for the deployed packages Each solution is isolated to its site collection

Web Parts Lists List Templates Custom Actions Workflows Event Receivers Content Types Site Columns …

Root SPWeb of SPSite Solution gallery WebParts.wsp Web Part gallery Per-WFE AssemblyCache \company. intranet.webpart.wsp\ company.intranet.dll Sandboxed Code Serice

In general SPSite and below No SPSecurity No SPSite construction SPSite SPWeb SPList SPListItem

SandboxSandbox AspNetHostingPermission, Level=Minimal SharePointPermission, ObjectModel=true SecurityPermission, Flags=Execution Full Trust wss_usercode.configwss_usercode.config User Code Framework CodeMy.dllMy.dll Other.dllOther.dll System DLL SharePoint DLL SharePoint OM API Block List

Visual Studio 2010 uses IntelliSense to hide full-trust types All code is compiled against the full API Thus, no “sandbox” check at compile time… only at runtime Workaround: change the Microsoft.SharePoint.dll project reference to reference the sandbox’s version [..]\14\UserCode\Assemblies\Microsoft.SharePoint.dll NOTE: Switch it back before deployment! Use this as a temporary test - do not deploy code that references the sandbox’s assembly Full Object Model Subset Object Model MyWebPart.dllMyWebPart.dll ProxyProxy Runtime

Site collection quotas specify the warning and hard limits for number of resources that can be used per day Sum of resource measures are taken across solutions deployed to site collection i.e.: add up CPU Points for all solutions Max of resource utilization measures checked against site collection quota to determine if it should be throttled/blocked

Web Part in a sandbox solution executes 40 SQL queries (via the SharePoint OM) 20 SQL Queries = 1 point (default) Resource usage for this Web Part for the day: = (2 points * # of executions throughout the day) + other counters OOTB resource quota = 300, so one execution of this Web Part = 0.67% of site collection’s daily allocation

Configure site collection quotas from Central Administration Site collection owners can manage and view resource usage from Site Settings » Solution Gallery PowerShell administration Get-SPSite | foreach-object {$_.Quota.UserCodeMaximumLevel = 300} Get-SPSite | foreach-object {$_.Quota.UserCodeWarningLevel = 100} You can also block completely certain solutions in farm level Can be managed from Central Admin level

Sandboxed solutions can be run in two modes: Local Mode: Execute code on WFE Low administration overhead Lower scalability Remote Mode: Execute on dedicated SharePoint servers Load balanced distribution of code execution requests Create custom Load balancers

Restrict the solutions that are allowed to run Install with a farm level feature [GuidAttribute(" FC4-4b66-AF09-AB48AC0F9D97")] public class PublisherValidator : SPSolutionValidator{ [Persisted] List _allowedPublishers; public override void ValidateSolution( SPSolutionValidationProperties properties){ } public override void ValidateAssembly( SPSolutionValidationProperties properties, SPSolutionFile assembly){ } [GuidAttribute(" FC4-4b66-AF09-AB48AC0F9D97")] public class PublisherValidator : SPSolutionValidator{ [Persisted] List _allowedPublishers; public override void ValidateSolution( SPSolutionValidationProperties properties){ } public override void ValidateAssembly( SPSolutionValidationProperties properties, SPSolutionFile assembly){ }

Application Hosting and Customization Introducing Sandboxed Solutions Executing Code in the Sandbox Sandbox Resource Monitoring