SlideShare a Scribd company logo
OverviewOffice 365 for DevelopersBruce KyleISV Architect EvangelistDeveloper & Platform Evangelism, West Region US Partner TeamMicrosoft Corporation
Office 365 for Developers
AgendaDeveloping for SharePoint Online StandardWhat Is SupportedSandboxed SolutionsClient Object ModelWindows Azure IntegrationSharePoint Services & WorkflowMigration ApproachesISV Early Adoption Programs
Office 365 Overview
Announcing Microsoft Office 365BRINGING TOGETHER CLOUD VERSIONS OF OUR MOST TRUSTED COMMUNICATIONS AND COLLABORATION PRODUCTS WITH THE LATEST VERSION OF OUR DESKTOP SUITE FOR BUSINESSES OF ALL SIZES. 
What Is Supported; What Isn’t SupportedSharePoint Online Standard
Key Extensibility Points for SharePoint OnlineSandboxed SolutionsSharePoint Server RibbonSharePoint Dialog BoxesEvent EnhancementsRest APIsSilverlight WebpartListbox Lookups & RelationshipsLINQ to SharePointClient Object ModelArchitecture Guidelineshttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=4387e030-73dc-48e7-ac95-abc043b9335a
SharePoint Online Platform for DevsOOTB BrowserSharePoint Designer 2010Visual Studio 2010Sandbox SolutionsCodeFeature Receivers, Event Receivers, Navigation, Web Parts, InfoPath Forms Logic, Custom Declarative Workflow ActivitiesDeclarativeDeclarative Workflows, Content Types, Site Columns, List Definitions, Lists, Custom Ribbon Actions/Extensions, Web templates, Site Pages, Page Layouts, Master PagesClient Object ModelSilverlight, JavaScript.NET
SupportedWSP InstallsBrandingOn the ServerSandbox SolutionsOn the ClientClient Object ModelSharePoint Services, Workflows
Supported - BrandingCustom brandingMaster Pages, Page LayoutsCSSThemesEmbedding custom controls and Silverlight applicationsWeb Part limitationsDeploying .js files to the Master Page Gallery
SandboxSharePoint Online Standard
AdministrationSharePoint 2010SharePoint Online
Sandboxed SolutionDesigned for farm administrators to trust custom solutions will not damage or impair the SharePoint farmGives site collection admins authority to manage apps in site collectionDevelopers can create solutions deployed safely
Sandboxed SolutionsLook and behave like farm solutionSandboxed solution marked to allow partially trusted callersScoped to SPSite / Site CollectionWeb PartsListsList TemplatesCustom ActionsWorkflowsEvent ReceiversContent TypesSite ColumnsCompile time support within Visual Studio
Sandbox BenefitsRemoves risk of affecting processes outside the sandboxDeployment by site collection administratorsIncreased scalability and flexibility are increasedA solution does not have to be modified or recompiled if it is moved from a sandbox to running directly on the farm
Sandbox LimitationsManaging QuotasDeployment locationsExternal servicesSharePoint web servicesSharePoint namespaces
Permitted Feature ElementsContentTypeField CustomActionModule ListInstanceListTemplateReceiversWebTemplateWorkflowAssociationPropertyBagWorkflowActions
Sandbox Assemblies CannotConnect to resources that are not located on the local serverAccess a databaseChange the threading modelCall unmanaged codeWrite to diskAccess resources in a different site collectionOffice 365 Limitations Until GA++No BCSNo Web Service Calls
Components You Can Deploy in SandboxWeb PartsEvent receiversFeature receiversCustom Microsoft SharePoint Designer workflow activitiesMicrosoft InfoPath business logic
Sandbox Solution Support Summary
Sandbox DeploymentWSP filesSolution Gallery located at root of site collectionMicrosoft Conidential- NDA Only
Sandboxed Solution MonitoringQuotas specify limits for resource consumption per daySummed across solutions deployed to Site Collectioni.e.: add up CPU Points for all solutionsSolution is self-regulated vs. quotas to protect Site CollectionThrottledDeactivatedMicrosoft Confidential - NDA Only
Monitored Resources
Building Sandbox Web Part
Client Object ModelSharePoint Online
SharePoint Client Object ModelScoped SharePoint APIMicrosoft.SharePoint.ClientMicrosoft.SharePoint.Client.RuntimeWorks in.NET ApplicationsSilverlight ApplicationsJavaScriptWorks on client machines (remote)No need to install SharePoint runtimeAsynchronous operationsSecurityMicrosoft Confidential - NDA Only
Equivalent ObjectsMember names mostly the same from server to client (e. g., SPWeb.QuickLaunchEnabled = Web.QuickLaunchEnabled)Microsoft Confidential - NDA Only
Supported AreasSite Collections and SitesLists, List Items, Views, and List SchemasFiles and FoldersWeb, List, and List Item Property BagsWeb PartsSecurityContent TypesSite Templates and Site Collection OperationsMicrosoft Confidential - NDA Only
Client Object Model Execution FlowManaged ClientsServerManaged Controls and LogicSPO-DOr BCS GA+External Data SourcesClient Serviceclient.svcManaged Object ModelServer Object ModelProxyProxyContent DatabasesJavaScript Object ModelJavaScript Controls and LogicWeb BrowsersMicrosoft Confidential - NDA Only
SharePoint Online and SilverlightSilverlightMany benefitsRIAWeb Services/Distributed SystemsSP Client Object Model makes SP/SPO solutions possibleSPOLimitations overcome by SLSPO + SilverlightCommon solution pattern for cloud solutionsMicrosoft Confidential - NDA Only
Azure Integration
Windows Azure PlatformExtend & ScaleAzure CloudAppWindows Platform in the CloudDeveloper ExperienceCloud StorageConnected PlatformAppFabricGrow your business
What’s Possible?SPO-D or GA+SPO-DMicrosoft Confidential - NDA Only
Calling External CodeOAUTH2.0Post-GAServicesSharePoint OnlineInternetSPOACS 2.0Post-GAServicesUserAzureMicrosoft Confidential - NDA Only
Accessing External DataOAUTH2.0BCSPost-GADataInternetSharePoint OnlineACS 2.0SPOPost-GADataAzureUserMicrosoft Confidential - NDA Only
Exposing SP Data to External CodeInternetOAUTH2.0Post-GAWeb ApplicationDataSharePoint OnlineSPOWeb ApplicationUserAzureMicrosoft Confidential - NDA Only
Azure AppFabric Service Bus FlowAzure AppFabric Service Bus RelayOn PremiseYourServiceUsers
Excel & Access ServicesWorkflow SolutionsSharePoint Online
SharePoint Services SummaryExcel ServicesSurface Excel data and artifacts in SharePoint OnlinePublish pieces of Excel workbooks to SharePoint OnlineInteract with Excel data and artifacts with the REST API and JavaScript Object ModelAccess ServicesConvert Access databases to SharePoint lists and forms
Workflow ServicesPrototype workflows in Visio 2010Use diagrams to get sign-offImplement the workflow in SharePoint Designer 2010Custom or copy & modify built in workflowActions, conditions and stepsDevelop custom workflow actions and events in Visual Studio 2010
Workflow ServicesImplemented via Workflow Event ReceiverOverride SPWorkflowEventReceiverScopeSPSiteSPWebSPListSPContentTypeEventsWorkflowStartingWorkflowStartedWorkflowCompletedWorkflowLoadingWorkflowUnloading WorkflowPostponedCan’t export from SPD2010 to VS2010Can’t build Visual Studio code workflows in a sandboxed solution
Common SharePoint Migration ApproachesMicrosoft Confidential - NDA Only
Application ComponentsWhat components make up your applications?SolutionsFeaturesHow are they scoped?Farm, Site, WebHow do these components map to your target environment?What changes need to be made?
Multiple paths are possibleGreenfieldRewrite components to adhere to best practices before migratingMigrate data to new locations BrownfieldMigrate pieces that work in the target environmentUpdate architecture laterEx: http://sharepoint2010.microsoft.comMigrate data as needed, or not at allGradual vs. CompleteCreating an SPO compatible on premise solution for later migration.Microsoft Confidential - NDA Only
Capabilities By Solution TypeMicrosoft Confidential - NDA Only
Capabilities By Solution TypeMicrosoft Confidential - NDA Only
Mash Up PatternClient Data ModelSharePoint 2010SharePoint OnlineSharePoint OnlineClient Data ModelClient ApplicationServicesUserOn PremisesMicrosoft Confidential - NDA Only
Client Data ModelWeb ApplicationSharePoint 2010SharePoint OnlineSharePoint OnlineDataClient Data ModelServicesUserOn PremisesMicrosoft Confidential - NDA OnlyServer Application
Lync Online
Lync Online FeaturesPresence, IM, audio, video, and screen sharingLync Web App for online presentations with external contactsFederation with customers and partnersReply by IM from OutlookIM with Windows Live contactsPresence and click-to-communicate from Office and SharePoint
Lync Controls“Drag and Drop” feature integrationContact list, contact searchPresence, contact info, custom contact listIM and audio “Click-to-Call”Supports contextual conversations
Contextual ConversationsLaunch applications from the Lync conversation windowLync Extensibility Window ContextHost Silverlight applications in the Lync conversation window extensionUse separately or combine
Exchange Online
Use Exchange Managed Web APIManaged API for developing applications that use Exchange Web Services Functional parity with EWS*Easier than working with EWS proxy classesMakes EWS calls under the coversNo additional required server side componentsBackwards compatibleRequest versioningnew ExchangeService(		ExchangeVersion.Exchange2010_SP1);Cloud compatible out of the box
Development ScenariosI want Exchange data in my applicationCreate/Read/Update/Delete operations on mailbox items:AppointmentsAttachmentsContactsEmailsTasksPublic FoldersI want to leverage Exchange business logicI want Outlook feature “X” in my applicationFree/BusyNotificationsData Sync
About Exchange OnlineExchange Web Services Managed API 1.1Power of Exchange Web ServicesProductivity of .NETInteract with Exchange data from your applicationsLeverage Exchange business logic in your applications
Resources
Resources – Office 365 OverviewOffice 365http://office365.microsoft.comOffice 365 Developer Training Kithttp://msdn.microsoft.com/en-us/sharepoint/gg153540.aspxMicrosoft Office 365 Fact Sheethttp://www.microsoft.com/presspass/presskits/office/docs/office365FS.docxOffice 365 Beta Service Descriptionshttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=6c6ecc6c-64f5-490a-bca3-8835c9a4a2eaSharePoint Online Developer Resource Center http://msdn.microsoft.com/sharepointonline
Resources - DevelopersDeveloping, Deploying, and Monitoring Sandboxed Solutions in SharePoint 2010http://msdn.microsoft.com/en-us/magazine/ee335711.aspxSharePoint Online Standard Developer Guidehttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=d007f35e-375c-4b11-bc40-bc9082bb224a&displaylang=enMicrosoft Patterns & Practices – SharePoint 2010http://msdn.microsoft.com/en-us/library/ff770300.aspxSharePoint 2010 Training Kithttp://channel9.msdn.com/learn/courses/SharePoint2010Developer/SharePoint 2010 Training Kit  - Client Object Modelhttp://channel9.msdn.com/learn/courses/SharePoint2010Developer/ClientObjectModel/
Resources - DeveloperBest Practices: Common Coding Issues When Using the SharePoint Object Modelhttp://msdn.microsoft.com/en-us/library/bb687949.aspx
ISV ResourcesJoin Metro Connect Office 365 and (SharePoint)Azurehttp://connect.microsoft.com/metroDeep dives, software design reviews, porting eventsOffice 365 Betahttp://office365.microsoft.com/Microsoft Partner Network Online Services Sales Guideshttps://partner.microsoft.com/40053541
SummaryFunctionality available in sandboxed solutionsDevelop on-premiseDeploy to SPODebugging and troubleshootingArchitect for the sandboxServer code runs in sandboxSilverlightCall external web servicesAzureCall Azure-hosted WCF services from Silverlight web partsUse the Azure AppFabric Service Bus to call on-premise WCF servicesUse Azure Worker Roles to simulate long running servicesBCS coming soon after launch

More Related Content

What's hot (20)

PPTX
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
 
DOCX
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
Aimore Technologies
 
PPTX
Force.com Friday - Intro to Visualforce
Shivanath Devinarayanan
 
PPTX
Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku
Salesforce Developers
 
PPTX
Integration using Salesforce Canvas
Dhanik Sahni
 
PPTX
Aura Framework and Lightning (Nikolay Zenko and Alexey Filippov)
Yury Bondarau
 
PPT
Enterprise Flex Using Cairngorm
Jaibeer Malik
 
PPTX
Trailhead Live Developer Workshop - Salesforce App Cloud
Sam Garforth
 
PPTX
Salesforce Lightning workshop
Shivanath Devinarayanan
 
PPTX
Rits Brown Bag - Salesforce Lightning
Right IT Services
 
PPTX
Force.com Friday - Intro to Force.com
Shivanath Devinarayanan
 
PPTX
Salesforce Lightning Experience Overview by Brainiate
brainiate
 
PDF
Intro to Force.com Webinar presentation
Developer Force - Force.com Community
 
PPTX
Suisse Romande SF DG - Lightning workshop
Gnanasekaran Thoppae
 
PPTX
Salesforce Integration Patterns
usolutions
 
PPTX
What is Salesforce lighting explained
Roy Gilad
 
PPTX
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Salesforce Developers
 
PDF
Lightning week - Paris DUG
Paris Salesforce Developer Group
 
PDF
Lightning Workshop London
Keir Bowden
 
PPTX
Microsoft Viva Connections - Set up and Extend with SPFx
Nanddeep Nachan
 
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
 
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
Aimore Technologies
 
Force.com Friday - Intro to Visualforce
Shivanath Devinarayanan
 
Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku
Salesforce Developers
 
Integration using Salesforce Canvas
Dhanik Sahni
 
Aura Framework and Lightning (Nikolay Zenko and Alexey Filippov)
Yury Bondarau
 
Enterprise Flex Using Cairngorm
Jaibeer Malik
 
Trailhead Live Developer Workshop - Salesforce App Cloud
Sam Garforth
 
Salesforce Lightning workshop
Shivanath Devinarayanan
 
Rits Brown Bag - Salesforce Lightning
Right IT Services
 
Force.com Friday - Intro to Force.com
Shivanath Devinarayanan
 
Salesforce Lightning Experience Overview by Brainiate
brainiate
 
Intro to Force.com Webinar presentation
Developer Force - Force.com Community
 
Suisse Romande SF DG - Lightning workshop
Gnanasekaran Thoppae
 
Salesforce Integration Patterns
usolutions
 
What is Salesforce lighting explained
Roy Gilad
 
Hands-On Workshop: Introduction to Coding for on Force.com for Admins and Non...
Salesforce Developers
 
Lightning week - Paris DUG
Paris Salesforce Developer Group
 
Lightning Workshop London
Keir Bowden
 
Microsoft Viva Connections - Set up and Extend with SPFx
Nanddeep Nachan
 

Similar to Office 365 for Developers (20)

PPTX
SharePoint 2010 developer overview (in Visual Studio 2010)
Mithun T. Dhar
 
PDF
Real World SharePoint Framework and Azure Services
Brian Culver
 
PPTX
Customizing SharePoint Online
Bert Johnson
 
PPTX
SharePoint 2010 Application Development
mattbremer
 
PPT
Session4-Sharepoint Online-chrismayo
Mithun T. Dhar
 
PPTX
Office 365 Deployment Strategies 2.0
Bert Johnson
 
PPTX
Building custom solutions for SharePoint 2010 Online
Chakkaradeep Chandran
 
PPTX
Office 365 SUGUK march 2011
pearce.alex
 
PPTX
Meec 2010 SharePoint 2010
Daniel Cohen-Dumani
 
PPTX
What’s New for Devs
MicrosoftFeed
 
PPTX
Development of skype for business and knowledge of
ayemyatmoe069
 
PPT
Sharepoint2
LiquidHub
 
PPTX
Intro to SharePoint for Developers
Rob Wilson
 
PPTX
Data Centric Composites and mashups In SharePoint 2010
Ayman El-Hattab
 
PPTX
Real World Add-in Development for Office365
Brian Culver
 
PPTX
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver
 
PPTX
A SharePoint Developers Guide to Project Server
Alexander Burton
 
PPTX
Get Ready for SharePoint 2016
Trigent_Senthil
 
PDF
HSPUG Loving one drive for business as a productivity tool
Brian Culver
 
PPTX
App Modernization - What you need to know before planning a migration to Offi...
Oliver Wirkus
 
SharePoint 2010 developer overview (in Visual Studio 2010)
Mithun T. Dhar
 
Real World SharePoint Framework and Azure Services
Brian Culver
 
Customizing SharePoint Online
Bert Johnson
 
SharePoint 2010 Application Development
mattbremer
 
Session4-Sharepoint Online-chrismayo
Mithun T. Dhar
 
Office 365 Deployment Strategies 2.0
Bert Johnson
 
Building custom solutions for SharePoint 2010 Online
Chakkaradeep Chandran
 
Office 365 SUGUK march 2011
pearce.alex
 
Meec 2010 SharePoint 2010
Daniel Cohen-Dumani
 
What’s New for Devs
MicrosoftFeed
 
Development of skype for business and knowledge of
ayemyatmoe069
 
Sharepoint2
LiquidHub
 
Intro to SharePoint for Developers
Rob Wilson
 
Data Centric Composites and mashups In SharePoint 2010
Ayman El-Hattab
 
Real World Add-in Development for Office365
Brian Culver
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver
 
A SharePoint Developers Guide to Project Server
Alexander Burton
 
Get Ready for SharePoint 2016
Trigent_Senthil
 
HSPUG Loving one drive for business as a productivity tool
Brian Culver
 
App Modernization - What you need to know before planning a migration to Offi...
Oliver Wirkus
 
Ad

More from Wes Yanaga (10)

PPTX
Windows Phone 7 Now
Wes Yanaga
 
PPTX
Pinned Sites IE 9 Lightup
Wes Yanaga
 
PPTX
Private cloud
Wes Yanaga
 
PPTX
Hyper-v Cloud
Wes Yanaga
 
PDF
windows phone-developer-guidance-map- 2-d00_-v2
Wes Yanaga
 
PPT
Azure Discover Event Silicon Valley
Wes Yanaga
 
PDF
Porting iPhone Apps to Windows Phone 7
Wes Yanaga
 
PPTX
Business Opportunity for Windows Phone 7
Wes Yanaga
 
PPTX
Mpr walkthrough
Wes Yanaga
 
PDF
Intro to c# (vs. objective c and java)
Wes Yanaga
 
Windows Phone 7 Now
Wes Yanaga
 
Pinned Sites IE 9 Lightup
Wes Yanaga
 
Private cloud
Wes Yanaga
 
Hyper-v Cloud
Wes Yanaga
 
windows phone-developer-guidance-map- 2-d00_-v2
Wes Yanaga
 
Azure Discover Event Silicon Valley
Wes Yanaga
 
Porting iPhone Apps to Windows Phone 7
Wes Yanaga
 
Business Opportunity for Windows Phone 7
Wes Yanaga
 
Mpr walkthrough
Wes Yanaga
 
Intro to c# (vs. objective c and java)
Wes Yanaga
 
Ad

Recently uploaded (20)

PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 

Office 365 for Developers

  • 1. OverviewOffice 365 for DevelopersBruce KyleISV Architect EvangelistDeveloper & Platform Evangelism, West Region US Partner TeamMicrosoft Corporation
  • 3. AgendaDeveloping for SharePoint Online StandardWhat Is SupportedSandboxed SolutionsClient Object ModelWindows Azure IntegrationSharePoint Services & WorkflowMigration ApproachesISV Early Adoption Programs
  • 5. Announcing Microsoft Office 365BRINGING TOGETHER CLOUD VERSIONS OF OUR MOST TRUSTED COMMUNICATIONS AND COLLABORATION PRODUCTS WITH THE LATEST VERSION OF OUR DESKTOP SUITE FOR BUSINESSES OF ALL SIZES. 
  • 6. What Is Supported; What Isn’t SupportedSharePoint Online Standard
  • 7. Key Extensibility Points for SharePoint OnlineSandboxed SolutionsSharePoint Server RibbonSharePoint Dialog BoxesEvent EnhancementsRest APIsSilverlight WebpartListbox Lookups & RelationshipsLINQ to SharePointClient Object ModelArchitecture Guidelineshttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=4387e030-73dc-48e7-ac95-abc043b9335a
  • 8. SharePoint Online Platform for DevsOOTB BrowserSharePoint Designer 2010Visual Studio 2010Sandbox SolutionsCodeFeature Receivers, Event Receivers, Navigation, Web Parts, InfoPath Forms Logic, Custom Declarative Workflow ActivitiesDeclarativeDeclarative Workflows, Content Types, Site Columns, List Definitions, Lists, Custom Ribbon Actions/Extensions, Web templates, Site Pages, Page Layouts, Master PagesClient Object ModelSilverlight, JavaScript.NET
  • 9. SupportedWSP InstallsBrandingOn the ServerSandbox SolutionsOn the ClientClient Object ModelSharePoint Services, Workflows
  • 10. Supported - BrandingCustom brandingMaster Pages, Page LayoutsCSSThemesEmbedding custom controls and Silverlight applicationsWeb Part limitationsDeploying .js files to the Master Page Gallery
  • 13. Sandboxed SolutionDesigned for farm administrators to trust custom solutions will not damage or impair the SharePoint farmGives site collection admins authority to manage apps in site collectionDevelopers can create solutions deployed safely
  • 14. Sandboxed SolutionsLook and behave like farm solutionSandboxed solution marked to allow partially trusted callersScoped to SPSite / Site CollectionWeb PartsListsList TemplatesCustom ActionsWorkflowsEvent ReceiversContent TypesSite ColumnsCompile time support within Visual Studio
  • 15. Sandbox BenefitsRemoves risk of affecting processes outside the sandboxDeployment by site collection administratorsIncreased scalability and flexibility are increasedA solution does not have to be modified or recompiled if it is moved from a sandbox to running directly on the farm
  • 16. Sandbox LimitationsManaging QuotasDeployment locationsExternal servicesSharePoint web servicesSharePoint namespaces
  • 17. Permitted Feature ElementsContentTypeField CustomActionModule ListInstanceListTemplateReceiversWebTemplateWorkflowAssociationPropertyBagWorkflowActions
  • 18. Sandbox Assemblies CannotConnect to resources that are not located on the local serverAccess a databaseChange the threading modelCall unmanaged codeWrite to diskAccess resources in a different site collectionOffice 365 Limitations Until GA++No BCSNo Web Service Calls
  • 19. Components You Can Deploy in SandboxWeb PartsEvent receiversFeature receiversCustom Microsoft SharePoint Designer workflow activitiesMicrosoft InfoPath business logic
  • 21. Sandbox DeploymentWSP filesSolution Gallery located at root of site collectionMicrosoft Conidential- NDA Only
  • 22. Sandboxed Solution MonitoringQuotas specify limits for resource consumption per daySummed across solutions deployed to Site Collectioni.e.: add up CPU Points for all solutionsSolution is self-regulated vs. quotas to protect Site CollectionThrottledDeactivatedMicrosoft Confidential - NDA Only
  • 26. SharePoint Client Object ModelScoped SharePoint APIMicrosoft.SharePoint.ClientMicrosoft.SharePoint.Client.RuntimeWorks in.NET ApplicationsSilverlight ApplicationsJavaScriptWorks on client machines (remote)No need to install SharePoint runtimeAsynchronous operationsSecurityMicrosoft Confidential - NDA Only
  • 27. Equivalent ObjectsMember names mostly the same from server to client (e. g., SPWeb.QuickLaunchEnabled = Web.QuickLaunchEnabled)Microsoft Confidential - NDA Only
  • 28. Supported AreasSite Collections and SitesLists, List Items, Views, and List SchemasFiles and FoldersWeb, List, and List Item Property BagsWeb PartsSecurityContent TypesSite Templates and Site Collection OperationsMicrosoft Confidential - NDA Only
  • 29. Client Object Model Execution FlowManaged ClientsServerManaged Controls and LogicSPO-DOr BCS GA+External Data SourcesClient Serviceclient.svcManaged Object ModelServer Object ModelProxyProxyContent DatabasesJavaScript Object ModelJavaScript Controls and LogicWeb BrowsersMicrosoft Confidential - NDA Only
  • 30. SharePoint Online and SilverlightSilverlightMany benefitsRIAWeb Services/Distributed SystemsSP Client Object Model makes SP/SPO solutions possibleSPOLimitations overcome by SLSPO + SilverlightCommon solution pattern for cloud solutionsMicrosoft Confidential - NDA Only
  • 32. Windows Azure PlatformExtend & ScaleAzure CloudAppWindows Platform in the CloudDeveloper ExperienceCloud StorageConnected PlatformAppFabricGrow your business
  • 33. What’s Possible?SPO-D or GA+SPO-DMicrosoft Confidential - NDA Only
  • 34. Calling External CodeOAUTH2.0Post-GAServicesSharePoint OnlineInternetSPOACS 2.0Post-GAServicesUserAzureMicrosoft Confidential - NDA Only
  • 35. Accessing External DataOAUTH2.0BCSPost-GADataInternetSharePoint OnlineACS 2.0SPOPost-GADataAzureUserMicrosoft Confidential - NDA Only
  • 36. Exposing SP Data to External CodeInternetOAUTH2.0Post-GAWeb ApplicationDataSharePoint OnlineSPOWeb ApplicationUserAzureMicrosoft Confidential - NDA Only
  • 37. Azure AppFabric Service Bus FlowAzure AppFabric Service Bus RelayOn PremiseYourServiceUsers
  • 38. Excel & Access ServicesWorkflow SolutionsSharePoint Online
  • 39. SharePoint Services SummaryExcel ServicesSurface Excel data and artifacts in SharePoint OnlinePublish pieces of Excel workbooks to SharePoint OnlineInteract with Excel data and artifacts with the REST API and JavaScript Object ModelAccess ServicesConvert Access databases to SharePoint lists and forms
  • 40. Workflow ServicesPrototype workflows in Visio 2010Use diagrams to get sign-offImplement the workflow in SharePoint Designer 2010Custom or copy & modify built in workflowActions, conditions and stepsDevelop custom workflow actions and events in Visual Studio 2010
  • 41. Workflow ServicesImplemented via Workflow Event ReceiverOverride SPWorkflowEventReceiverScopeSPSiteSPWebSPListSPContentTypeEventsWorkflowStartingWorkflowStartedWorkflowCompletedWorkflowLoadingWorkflowUnloading WorkflowPostponedCan’t export from SPD2010 to VS2010Can’t build Visual Studio code workflows in a sandboxed solution
  • 42. Common SharePoint Migration ApproachesMicrosoft Confidential - NDA Only
  • 43. Application ComponentsWhat components make up your applications?SolutionsFeaturesHow are they scoped?Farm, Site, WebHow do these components map to your target environment?What changes need to be made?
  • 44. Multiple paths are possibleGreenfieldRewrite components to adhere to best practices before migratingMigrate data to new locations BrownfieldMigrate pieces that work in the target environmentUpdate architecture laterEx: http://sharepoint2010.microsoft.comMigrate data as needed, or not at allGradual vs. CompleteCreating an SPO compatible on premise solution for later migration.Microsoft Confidential - NDA Only
  • 45. Capabilities By Solution TypeMicrosoft Confidential - NDA Only
  • 46. Capabilities By Solution TypeMicrosoft Confidential - NDA Only
  • 47. Mash Up PatternClient Data ModelSharePoint 2010SharePoint OnlineSharePoint OnlineClient Data ModelClient ApplicationServicesUserOn PremisesMicrosoft Confidential - NDA Only
  • 48. Client Data ModelWeb ApplicationSharePoint 2010SharePoint OnlineSharePoint OnlineDataClient Data ModelServicesUserOn PremisesMicrosoft Confidential - NDA OnlyServer Application
  • 50. Lync Online FeaturesPresence, IM, audio, video, and screen sharingLync Web App for online presentations with external contactsFederation with customers and partnersReply by IM from OutlookIM with Windows Live contactsPresence and click-to-communicate from Office and SharePoint
  • 51. Lync Controls“Drag and Drop” feature integrationContact list, contact searchPresence, contact info, custom contact listIM and audio “Click-to-Call”Supports contextual conversations
  • 52. Contextual ConversationsLaunch applications from the Lync conversation windowLync Extensibility Window ContextHost Silverlight applications in the Lync conversation window extensionUse separately or combine
  • 54. Use Exchange Managed Web APIManaged API for developing applications that use Exchange Web Services Functional parity with EWS*Easier than working with EWS proxy classesMakes EWS calls under the coversNo additional required server side componentsBackwards compatibleRequest versioningnew ExchangeService( ExchangeVersion.Exchange2010_SP1);Cloud compatible out of the box
  • 55. Development ScenariosI want Exchange data in my applicationCreate/Read/Update/Delete operations on mailbox items:AppointmentsAttachmentsContactsEmailsTasksPublic FoldersI want to leverage Exchange business logicI want Outlook feature “X” in my applicationFree/BusyNotificationsData Sync
  • 56. About Exchange OnlineExchange Web Services Managed API 1.1Power of Exchange Web ServicesProductivity of .NETInteract with Exchange data from your applicationsLeverage Exchange business logic in your applications
  • 58. Resources – Office 365 OverviewOffice 365http://office365.microsoft.comOffice 365 Developer Training Kithttp://msdn.microsoft.com/en-us/sharepoint/gg153540.aspxMicrosoft Office 365 Fact Sheethttp://www.microsoft.com/presspass/presskits/office/docs/office365FS.docxOffice 365 Beta Service Descriptionshttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=6c6ecc6c-64f5-490a-bca3-8835c9a4a2eaSharePoint Online Developer Resource Center http://msdn.microsoft.com/sharepointonline
  • 59. Resources - DevelopersDeveloping, Deploying, and Monitoring Sandboxed Solutions in SharePoint 2010http://msdn.microsoft.com/en-us/magazine/ee335711.aspxSharePoint Online Standard Developer Guidehttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=d007f35e-375c-4b11-bc40-bc9082bb224a&displaylang=enMicrosoft Patterns & Practices – SharePoint 2010http://msdn.microsoft.com/en-us/library/ff770300.aspxSharePoint 2010 Training Kithttp://channel9.msdn.com/learn/courses/SharePoint2010Developer/SharePoint 2010 Training Kit - Client Object Modelhttp://channel9.msdn.com/learn/courses/SharePoint2010Developer/ClientObjectModel/
  • 60. Resources - DeveloperBest Practices: Common Coding Issues When Using the SharePoint Object Modelhttp://msdn.microsoft.com/en-us/library/bb687949.aspx
  • 61. ISV ResourcesJoin Metro Connect Office 365 and (SharePoint)Azurehttp://connect.microsoft.com/metroDeep dives, software design reviews, porting eventsOffice 365 Betahttp://office365.microsoft.com/Microsoft Partner Network Online Services Sales Guideshttps://partner.microsoft.com/40053541
  • 62. SummaryFunctionality available in sandboxed solutionsDevelop on-premiseDeploy to SPODebugging and troubleshootingArchitect for the sandboxServer code runs in sandboxSilverlightCall external web servicesAzureCall Azure-hosted WCF services from Silverlight web partsUse the Azure AppFabric Service Bus to call on-premise WCF servicesUse Azure Worker Roles to simulate long running servicesBCS coming soon after launch
  • 63. © 2009 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.

Editor's Notes

  • #6: Microsoft® Office 365delivers the power of cloud productivity to businesses of all sizes, helping to save time, money and free up valued resources. Office 365 combines the familiar Office desktop suite with cloud-based versions of Microsoft’s next-generation communications and collaboration services: Exchange Online, SharePoint Online and Lync Online. Office 365 is simple to use and easy to administer – all backed by the robust security and guaranteed reliability you expect from a world-class service provider.Microsoft Office 365 Includes:Microsoft® Office Professional PlusThe world’s leading productivity tool now seamlessly connected and delivered with cloud services – for the best productivity experience across the PC, Phone and Browser.Exchange OnlineCloud-based email, calendar and contacts with always-up-to-date protection from viruses and spam.SharePoint OnlineCloud-based service for creating sites to connect colleagues, partners and customers.Lync OnlineCloud-based instant messaging, presence, and online meeting experiences with PC-audio, video conferencing and screen sharing. Key Microsoft Office 365 Benefits:Anywhere-access to email, documents, contacts, and calendars on nearly any device Work seamlessly with Microsoft Office and the other programs your users already count on everydayBusiness-class features including IT-level phone support,  guaranteed 99.9% uptime, geo-redundancy, and disaster recoveryPay-as-you-go pricing options which give you predictability and flexibility for all or part of your organizationLatest version of Business Productivity Online Suite (BPOS), which has millions of business users today Microsoft® Office 365 for small businesses offers an easy-to-use set of web-enabled tools for small businesses, independent consultants and professionals looking for business-class productivity services. Working with the tools people know and use today, Office 365 provides anywhere access to email, important documents, contacts, and calendars on nearly any device. It’s free for the first 30 days and then just $6 per user per month. Microsoft® Office 365 for enterprises brings together cloud versions of our trusted communications and collaboration software with our familiar Office Professional Plus desktop suite. It is designed to help meet your IT needs for robust security, 24/7 reliability, and user productivity.We have a variety of plans to meet the needs of businesses of all sizes and varying IT needs. Priced from $2 - $28 per month per user, each plan has the same 99.9% uptime guarantee and includes the security and support you expect from Microsoft. Office 365 offers great flexibility by allowing businesses to provide users access to only the services they need and pay-as-you-go pricing options. Microsoft® Office 365 for education provides your institution with the same great communication and collaboration experiences used in enterprises around the world while saving time and money. Microsoft Office 365 for education delivers all of this and more while training students on familiar software which employers depend upon.
  • #8: Sandboxed solutionsA sandboxed solution is deployed at the site collection level by using the SharePoint solution gallery, and it cannot access data outside of the site collection in which it was deployed. In addition, a sandboxed solution cannot invoke certain security-related functionality, such as running with elevated privileges. All of these restrictions are put in place to ensure that malicious or poorly performing code cannot adversely affect the SharePoint Online environment. As a result, site collection administrators can feel confident about uploading and activating a sandboxed solution. SharePoint Online supports the deployment of sandboxed solutions that restricts the operations that your code can perform, and also provides a monitoring environment to verify that code does not adversely impact other sites. Note: Developing a sandboxed solution is the only way you can upload and run custom code in SharePoint Online.SharePoint Server ribbonThe SharePoint Server ribbon provides a consistent user interface for working with SharePoint objects. The ribbon includes tabs and controls that appear at the top of the browser interface, providing a consistent location to perform tasks for users of your SharePoint site.SharePoint dialog boxesSharePoint provides a dialog box platform that enables modal dialog boxes to be included in custom solutions that fit in with the style of a SharePoint page. By using dialog boxes, users are encouraged to focus on the information that is presented to them, and then interact with and close the dialog box before continuing to work with the site. Dialog boxes enable the creation of responsive user interfaces so that users can complete data entry boxes from the pop-up dialog box on the existing page, instead of having to navigate to a new page to complete the data entry task. In many cases, they improve performance by reducing the number of page requests and round trips to the server.Silverlight Web PartSharePoint 2010 provides a Silverlight Web Part that you can use to easily add a Silverlight application to a page in your site. You can upload a Silverlight application to a library in your SharePoint site and then configure the Silverlight Web Part to load your Silverlight application.List lookups and relationshipsSharePoint 2010 enables you to create relationships between lists in your SharePoint site collection. For example, you can specify that the column for a list can take values that exist only in another list elsewhere on the site. Using a defined lookup, you can use join statements in Collaborative Application Markup Language (CAML) or LINQ to SharePoint to query across lists.LINQ to SharePointSharePoint 2010 includes the LINQ to SharePoint provider, which translates LINQ statements to CAML queries. LINQ is a standard query language and, when applied to SharePoint, it enables developers to query SharePoint lists without requiring them to learn the CAML syntax that is used internally by SharePoint.Event enhancementsSharePoint 2010 provides new events that you can use when developing applications for your SharePoint site. Events enable you to intercept an action and run code either pre-event or post-event, as part of a sandboxed solution.Workflow enhancementsIn SharePoint 2010, you can associate workflows with the site and with a particular list. This enables you to create workflows that affect multiple lists or start workflows that do not affect lists. Workflows also support new events that enable complex business processes to be chained together in a modular, manageable way. Note: You can develop code for workflow events only in sandboxed solutions.Client object modelThe client object model is a client-side set of technologies that exposes SharePoint 2010 server-side objects and data on client computers. By using the client object model, you can develop applications that run on the client computer through familiar development concepts, such as objects, properties, events, and methods.REST APIsSharePoint 2010 provides access to server data through the Representational State Transfer (REST) API. By using REST, lists and list items are represented as HTTP resources that can be addressed by remote URLs.
  • #10: Important to note here that the only installs that are supported are WSP installs .. And they are made by the site collection admin.
  • #11: Demo is available in the kitYou can use SharePoint Designer to do the custom brandingAdding a Silverlight Application to a Master PageTask 1 – Create a Library for the Silverlight ApplicationTask 2 – Create the Custom Master PageTask 3 – Customize the Master PageTask 4 – Apply the Custom Master Page
  • #14: Sandboxed solutions challenge, however, has always been the balance between creating solutions and deploying them in a way that you can trust will not damage or impair the SharePoint farm. Farm administrators are responsible for maintaining the health and integrity of the SharePoint farm, and often this means putting complicated, time-consuming processes in place to test and validate solutions deployed to the farm. This need is counter to the rapid application model used to create SharePoint solutions, and it complicates the deployment of third-party solutions. A new feature in SharePoint 2010, called sandboxed solutions, addresses many of these concerns, enabling farm administrators to feel comfortable that the SharePoint farm is safe, giving site collection administrators the authority to manage the applications in their site collection, and providing developers with the flexibility to create solutions they know will be deployed in a safe and rapid manner.
  • #15: A sandboxed solution looks and behaves like a farm solution, but a sandboxed solution’s assembly must be marked to allow partially trusted callers. The Sandboxed Solution property is configured in the properties window of the project. Remember that a sandboxed solution can be deployed as a full-trust solution and gain the expanded capabilities that come with running in full trust because nothing in the .wsp solution file specifies it as a sandboxed solution or a farm solution. This is determined by how the solution is deployed.Generally you can do most things you can with full solutions, at least those within the context of a site collection. You cannot deploy files on disc or assemblies to the GAC.
  • #16: Solutions can be added to a production SharePoint Server environment without the risk of affecting processes outside the sandboxSite collection administrators can deploy sandboxed solutions, freeing farm administrators from this taskScalability and flexibility are increased because sandboxes run in separate process that can be restricted by quotas, and their effect on the farm can be monitoredA solution does not have to be modified or recompiled if it is moved from a sandbox to running directly on the farmhttp://technet.microsoft.com/en-us/library/ee721992.aspx
  • #17: Quotas managed byMSOnline – cannot be modified by individual customers because it is a shared environment.See link to MSDN blog on quotas.Describe the various ways that the sandbox is limited and how the limitations affect what you can and cannot do in the sandbox.
  • #18: Sandboxed solutions have access to a large subset of functionality in the Microsoft.SharePoint namespace. Essentially all the classes below SPSite are available. This means that SPSite, SPWeb, SPList, and SPListItem are all available. In a sandboxed solution, you can create Web Parts, list definitions and instances, content types and fields, modules, declarative workflows, and event receivers. The complete sandboxed API is documented in the SharePoint SDK.
  • #19: In general, the sandbox process prevents you from accessing data outside the site collection where the solution has been deployed. This means, for example, that you can’t access the Internet to make Web service calls, you can’t access a hard drive to read or write files, and you can’t access code that is not marked to allow partially trusted callers. You also can’t deploy files to disk or add assemblies to the GAC in a sandboxed solution, and security-related functionality, such as running RunWithElevatedPriviledges and other SPSecurity methods, is not allowedBCS to ship in service update prior to the next major Rev
  • #20: But what you can do is read and write to lists and libraries within the same site collection. The sandbox provides enough functionality to build most of the applications that are required at a site level. At times, however, you might want to enable your sandboxed solutions to reach outside the sandbox to perform a trusted operation, such as calling a Web service or accessing a database. The best way to reach out of the sandbox is by using the Business Connectivity Services (BCS) to create an external content type. You can then read and write to the data source from the sandboxed solution. Another, more advanced, way to reach outside the sandbox is to create a class that runs in a full-trust process outside the sandboxed worker process to proxy calls. This proxy class is deployed as a farm solution and is callable from the sandboxed solution. Although it is outside the scope of this presentation to describe how to create a full-trust proxy, you should be aware of the functionality.
  • #21: Code components:Feature receiversEvent receiversSPItemEventReceiverSPListEventReceiverSPWebEventReceiverNavigationWeb Parts (if derived from the WebPart class)Microsoft InfoPath forms logicSharePoint Designer workflow activitiesSandboxed solutions workflow activitiesDeclarative components:Declarative workflowsContent types, site columnsLists and list definitionsVisual and nonvisual Web PartsCustom actions, ribbon extensionsClient-side technologiesWeb templates, site pages, page layouts, and master pagesThe following capabilities and elements are not supported in sandboxed solutions:Access to the Internet to make web service callsAccess to a hard disk to read or write filesYou can, of course, read and write to lists and libraries within SharePoint OnlineWeb application-scoped or farm-scoped FeaturesAdding assemblies to the global assembly cacheRunning security-related functionality; for example, RunWithElevatedPrivileges or other SPSecurity methodsCustom Action groupsHideCustomAction elementContent type bindingWeb Part connections
  • #22: The structure of a sandboxed solution is very similar to a farm solution, which generally runs with full-trust permissions. The main differences lie in how a sandboxed solution is deployed and in the process that hosts the solution (which determines whether a solution is a sandboxed solution or a farm solution). This means that the same sandboxed solution can run with full trust when it’s deployed at the farm level and with partial trust when it’s deployed at the site collection level. (Office 365 apps don’t run at the farm level. They run at the site level.)A SharePoint solution is a deployable package that can contain features and assemblies. The solution package is a .cab-based file with a .wsp extension. Visual Studio 2010 SharePoint project templates create .wsp package files. A solution might contain a number of SharePoint features, and these features provide functionality such as Web Parts, list definitions, modules, and event receivers.Site collection administrators now have the authority to upload, activate, delete, and manage sandboxed solutions using the new Solution Gallery, which is a repository of sandboxed solutions. The gallery also enables a site collection administrator to monitor a solution’s usage against a resource quota. The Solution Gallery is simply a standard SharePoint list that stores the .wsp file. It is located under the _catalogs folder at _catalogs/solutions. The gallery is added to your site collection when you upgrade from a SharePoint 2007 site collection.
  • #23: Farm administrators have the responsibility to keep the SharePoint farm healthy and secure, and they now have the tools to monitor and set quotas on sandboxed solutions. SharePoint provides farm administrators with a UI in Central Administration to assign resource quotas to each site collection. You can access the quotas from the Central Administration page under the Application Management section. Resource monitors keep sandbox solutions from over taxing the server.The SUM of all resource measures is the number applied to the quota.The MAX of all resource measures is used to determine if the sandbox should be turned off for a given solution one day.Discuss throttling and the page you see and ULS.Add a link to P&P work about resource consumption.Each metric, called a ResourceMeasure, contains a ResourcesPerPoint property. The ResourcesPerPoint value is divided by the resources consumed to calculate the points used for that category. For example, AbnormalProcessTerminationCount has a ResourcesPerPoint value of 1. Every time a sandboxed solution terminates abnormally, 1 point is added. If you want to increase the penalty for a sandboxed solution that terminates, you can set ResourcesPerPoint to another value, such as 2. You can use 0 if you are not concerned about this metric. Other ResourceMeasures might not have a one-to-one correspondence with an event. The CPUExecutionTime metric prevents a sandboxed solution from consuming too many CPU cycles. The default ResourcesPerPoint value is 3,600 for CPUExecutionTime.Another value is AbsoluteLimit, which is incremented each time a solution gets a point. If a solution exceeds the AbsoluteLimit value, it is terminated even if the daily usage limit has not been reached. Exceeding the value of AbsoluteLimit affects only the single solution, unlike the daily usage limit. These two levels of quotas, daily limit and absolute limit, work together to protect the health of the farm.
  • #24: SharePoint contains 14 metrics that contribute to the quota points.Each metric, called a ResourceMeasure, contains a ResourcesPerPoint property. The ResourcesPerPoint value is divided by the resources consumed to calculate the points used for that category. For example, AbnormalProcessTerminationCount has a ResourcesPerPoint value of 1. Every time a sandboxed solution terminates abnormally, 1 point is added. If you want to increase the penalty for a sandboxed solution that terminates, you can set ResourcesPerPoint to another value, such as 2. You can use 0 if you are not concerned about this metric. Other ResourceMeasures might not have a one-to-one correspondence with an event. The CPUExecutionTime metric prevents a sandboxed solution from consuming too many CPU cycles. The default ResourcesPerPoint value is 3,600 for CPUExecutionTime.Another value is AbsoluteLimit, which is incremented each time a solution gets a point. If a solution exceeds the AbsoluteLimit value, it is terminated even if the daily usage limit has not been reached. Exceeding the value of AbsoluteLimit affects only the single solution, unlike the daily usage limit. These two levels of quotas, daily limit and absolute limit, work together to protect the health of the farm. I strongly recommend that you not modify ResourceMeasures, but as a developer or an administrator, you should understand exactly how these mechanisms work.http://technet.microsoft.com/en-us/library/ff603636.aspx Resource Per Point is how much this contributes to the point limit per day for the site collectionHard Limit is how much of this resource a solution can use in a single invocation before it is terminated – a maximum use of quota in a single invocationInvocation count is used to measure the per-instance cost of a solution for purposes of reporting and assigning to run-time “tiers” for farms that want to separate solutions into multiple different sandbox processes – there is only one by default.
  • #25: Visual Studio 2010 SupportNew Project SupportIntellisensePackagingF5 DebuggingSharePoint Power ToolsCompilation SupportVisual Web Part (Sandboxed)the default SharePoint project type in Visual Studio is a sandboxed solution. This should be the default in your mind as well—you should be thinking about creating your SharePoint solutions to run within the sandboxed environment. You have seen that sandboxed applications are very capable, can do most of the tasks that a business user needs, and provide the ability to break out in a safe way when you need to. The real benefit is the speed at which you can deploy your solutions into the enterprise. You no longer need to follow a grueling process of testing and validation for every solution you create, although good software practices should always be followed. Developing, Deploying, and Monitoring Sandboxed Solutions in SharePoint 2010http://msdn.microsoft.com/en-us/magazine/ee335711.aspxYou build an sandboxed app the same way you build a farm solution. You can add a webpart to the solution. At this point, you have a fully functional sandboxed Web Part that you can deploy.During the development of a sandboxed solution, Visual Studio automatically deploys and activates the solution in the Solution Gallery when you press F5. If you browse to the Solution Gallery, you can see the solution you just created and deployed. As you can with other types of Visual Studio projects, you can set a breakpoint in the code for a sandboxed solution. However, Visual Studio won’t recognize a breakpoint at this point because the Web Part has not been added to a page. When you add the Web Part to a page, Visual Studio detects that the assembly has been loaded and will stop on the breakpoint. Even though you haven’t added any real code to the project yet, you can see that everything is in place and working correctly.Sandboxed solutions do not run under the IIS worker process used by SharePoint called w3wp.exe. Instead, they run under the sandboxed worker process called SPUCWorkerProcess.exe.Visual Studio automatically attaches the debugger to this process when you press F5. If you are debugging a solution that’s already deployed, you need to attach to this process manually.
  • #28: Similar to programming against server objects in the server context, the new client-side object models use a ClientContext object as the "center of gravity" for all operations. The process of obtaining and working with sites and data begins by retrieving a context object.Show the various resources and their locationsServer – Microsoft.SharePoint – [..]\\14\\ISAPI .NET – Microsoft.SharePoint.Client – [..]\\14\\ISAPISilverlight – Microsoft.SharePoint.Client.Silverlight – [..]\\14\\LAYOUTS\\ClientBinECMAScript– SP.js - [..]\\LAYOUTS
  • #29: The Client Object Model contains a lot of overlap coverage with the full SharePoint API
  • #30: This diagram displays how the transport mechanism worksManage client OM = .NET / SilverlightAll communication goes through the client.svc WCF serviceMicrosoft implemented the client OM by decorating the core SharePoint OM with attributes if it was “client aware”[ClientCallableType(Name=“Web”,[…]),[…]]public class SPWeb {}Then a code gen tool generates the client OM assemblies and JavaScriptThis ensures that there’s fidelity between all the client OM’s and the server equiv
  • #31: Many Benefits include:Designed specifically for Silverlight applicationsWorks on client machines (remote)No need to install SharePoint runtimeAsynchronous operationsPer user security context availableIncreases application portabilityOvercomes sandbox limitationsEASY TO DEPLOY!
  • #33: Purpose: Windows Azure is partner friendly, great opportunity for SaaS ISVsWindows Azure has been around since Feb 2010, we have thousands of active users with incredibly good experienceWindows Azure is important dimension of our cloud strategy and to our partner strategyIt provides scalable hosting platform for customers, ISVs and partners, to host their applications and extend their own cloud, and leverage the scale and investment we have in AzureGreat examples today with SaaS ISVs leveraging their existing tools and skills to write applications that run on Windows Azure or Windows ServerHosters can take advantage of Azure, and leverage us for fail/over, burst capacityBut the partnering opportunity for Azure is not restricted on SaaS ISVs developing their applications to run on Azure, we are also sharing our learning on Azure with hosters and customers We run it ourselves to make sure it will work for you at arbitrary scale with good COGS[ Announcing: Azure Appliance]Customers and high scale partners have been asking to provide Windows Azure technology so they can run it in their datacentersThis is to emphasize that Microsoft is committed to bringing the learningsfrom the MS datacenter into our hosting partner's datacenters either through integrating the Azure innovations-- such as elasticity, multi-tenancy, and power & automation efficiencies -- into Windows Server/System Center or via the Azure Appliance.
  • #35: This pattern demonstrates how to call external code at GA and post GA stages.0. A user accesses a Silverlight application deployed to a SharePoint Online site.1a. The Silverlight application can call external code running in Azure.1a. ACS is used to provide tokens used for Authorization.1b. The Silverlight application can call external code accessible from the Internet.1b. OAUTH is used to provide tokens used for Authorization.ACS – Access Control ServiceAzure (ACS 2.0 – Waiting for 2.0)Internet (OAuth 2.0 – future work by BPOS/SPO team)
  • #36: This pattern demonstrates how to access external data at GA and post GA stages.0. A user accesses a Silverlight application deployed to a SharePoint Online site.1a. The Silverlight application can access external data stored in Azure.1a. ACS is used to provide tokens used for Authorization.1b. The Silverlight application can access external data stored available on the Internet.1b. OAUTH is used to provide tokens used for Authorization.OAUTH 2.0 Example:A good example of external data access on the Internet are pictures stored on a user’s Flickr site.In order to access the pictures on the Flickr site the user signs into the Flickr site and OAUTH is used to Provide a token back to the Silverlight application which may be used to access the pictures on the user’s Flickr site.Once OAUTH 2.0 is release, a primary goal is to enable the BCS to use OAUTH 2.0 to access external data sources.
  • #37: This pattern demonstrates how to access SharePoint data at GA and post GA stages.Right now SharePoint does not support OAUTH 2.0.Currently this is a wav 15 planning item in the costing work stage. It has yet to be decided if this will be implemented as part of wave 14 post GA or if it will be part of wave 15.Can revoke via same UI as regular SharePoint groups. This UI has yet to be built to accommodate applications and OAUTH support.0a. A user accesses a web application from an Internet web site.1a. OAUTH is used to provide tokens used for Authorization.2a. The web application uses the token to access SharePoint data.0b. A user accesses a web application hosted in Azure.1b. OAUTH is used to provide tokens used for Authorization.2b. The web application uses the token to access SharePoint data.Get feedback from the field on this on especially.
  • #38: Cloud based relay for WCF servicesTraverses Network Address Translation (NAT)Service opens outbound bi-directional TCP connection and leaves it openService is relayed through the cloud to the on-premise applications (WCF services)ASMX not supported
  • #41: Can create Custom Actions:Define class/method in Visual Studio 2010Sandbox Solutions APIDefine new action via <WorkflowActions> schemaMaps designer to method call<Action><RuleDesigner><Parameters>
  • #45: Use diagrams to illustrate these concepts.
  • #48: Silverlight application can provide a single view into both SPO and On Premises apps
  • #52: Lync ControlsShips in Microsoft Lync 2010 SDK“Drag and Drop” feature integrationContact list, contact searchPresence, contact info, custom contact listIM and audio “Click-to-Call”Supports contextual conversationsWPF 3.5/4 and Silverlight 4Requires Lync 2010Reuses Lync 2010 connectionPut your Content into a Lync conversation