• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Office 365 for Developers
 

Office 365 for Developers

on

  • 12,733 views

Overview of features, techniques, features for developing on Office 365 Online. For technical decision makers, architects, developers.

Overview of features, techniques, features for developing on Office 365 Online. For technical decision makers, architects, developers.

Statistics

Views

Total Views
12,733
Views on SlideShare
12,732
Embed Views
1

Actions

Likes
7
Downloads
358
Comments
1

1 Embed 1

http://paper.li 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Nice Resources
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.
  • 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.
  • Important to note here that the only installs that are supported are WSP installs .. And they are made by the site collection admin.
  • 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
  • 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.
  • 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.
  • 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
  • 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.
  • 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.
  • 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
  • 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.
  • 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
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • The Client Object Model contains a lot of overlap coverage with the full SharePoint API
  • 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
  • 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!
  • 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.
  • 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)
  • 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.
  • 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.
  • 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
  • Can create Custom Actions:Define class/method in Visual Studio 2010Sandbox Solutions APIDefine new action via schemaMaps designer to method call
  • Use diagrams to illustrate these concepts.
  • Silverlight application can provide a single view into both SPO and On Premises apps
  • 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

Office 365 for Developers Office 365 for Developers Presentation Transcript

  • OverviewOffice 365 for Developers
    Bruce Kyle
    ISV Architect Evangelist
    Developer & Platform Evangelism, West Region US Partner Team
    Microsoft Corporation
  • Agenda
    Developing for SharePoint Online Standard
    What Is Supported
    Sandboxed Solutions
    Client Object Model
    Windows Azure Integration
    SharePoint Services & Workflow
    Migration Approaches
    ISV Early Adoption Programs
  • Office 365 Overview
  • Announcing Microsoft Office 365
    BRINGING 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 Supported
    SharePoint Online Standard
  • Key Extensibility Points for SharePoint Online
    Sandboxed Solutions
    SharePoint Server Ribbon
    SharePoint Dialog Boxes
    Event Enhancements
    Rest APIs
    Silverlight Webpart
    Listbox Lookups & Relationships
    LINQ to SharePoint
    Client Object Model
    Architecture Guidelines
    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4387e030-73dc-48e7-ac95-abc043b9335a
  • SharePoint Online Platform for Devs
    OOTB Browser
    SharePoint Designer 2010
    Visual Studio 2010
    Sandbox Solutions
    Code
    Feature Receivers, Event Receivers, Navigation, Web Parts, InfoPath Forms Logic, Custom Declarative Workflow Activities
    Declarative
    Declarative Workflows, Content Types, Site Columns, List Definitions, Lists, Custom Ribbon Actions/Extensions, Web templates, Site Pages, Page Layouts, Master Pages
    Client Object Model
    Silverlight, JavaScript
    .NET
  • Supported
    WSP Installs
    Branding
    On the Server
    Sandbox Solutions
    On the Client
    Client Object Model
    SharePoint Services, Workflows
  • Supported - Branding
    Custom branding
    Master Pages, Page Layouts
    CSS
    Themes
    Embedding custom controls and Silverlight applications
    Web Part limitations
    Deploying .js files to the Master Page Gallery
  • Sandbox
    SharePoint Online Standard
  • Administration
    SharePoint 2010
    SharePoint Online
  • Sandboxed Solution
    Designed for farm administrators to trust custom solutions will not damage or impair the SharePoint farm
    Gives site collection admins authority to manage apps in site collection
    Developers can create solutions deployed safely
  • Sandboxed Solutions
    Look and behave like farm solution
    Sandboxed solution marked to allow partially trusted callers
    Scoped to SPSite / Site Collection
    Web Parts
    Lists
    List Templates
    Custom Actions
    Workflows
    Event Receivers
    Content Types
    Site Columns
    Compile time support within Visual Studio
  • Sandbox Benefits
    Removes risk of affecting processes outside the sandbox
    Deployment by site collection administrators
    Increased scalability and flexibility are increased
    A solution does not have to be modified or recompiled if it is moved from a sandbox to running directly on the farm
  • Sandbox Limitations
    Managing Quotas
    Deployment locations
    External services
    SharePoint web services
    SharePoint namespaces
  • Permitted Feature Elements
    ContentType
    Field
    CustomAction
    Module
    ListInstance
    ListTemplate
    Receivers
    WebTemplate
    WorkflowAssociation
    PropertyBag
    WorkflowActions
  • Sandbox Assemblies Cannot
    Connect to resources that are not located on the local server
    Access a database
    Change the threading model
    Call unmanaged code
    Write to disk
    Access resources in a different site collection
    Office 365 Limitations Until GA++
    No BCS
    No Web Service Calls
  • Components You Can Deploy in Sandbox
    Web Parts
    Event receivers
    Feature receivers
    Custom Microsoft SharePoint Designer workflow activities
    Microsoft InfoPath business logic
  • Sandbox Solution Support Summary
  • Sandbox Deployment
    WSP files
    Solution Gallery located at root of site collection
    Microsoft Conidential- NDA Only
  • Sandboxed Solution Monitoring
    Quotas specify limits for resource consumption per day
    Summed across solutions deployed to Site Collection
    i.e.: add up CPU Points for all solutions
    Solution is self-regulated vs. quotas to protect Site Collection
    Throttled
    Deactivated
    Microsoft Confidential - NDA Only
  • Monitored Resources
  • Building Sandbox Web Part
  • Client Object Model
    SharePoint Online
  • SharePoint Client Object Model
    Scoped SharePoint API
    Microsoft.SharePoint.Client
    Microsoft.SharePoint.Client.Runtime
    Works in
    .NET Applications
    Silverlight Applications
    JavaScript
    Works on client machines (remote)
    No need to install SharePoint runtime
    Asynchronous operations
    Security
    Microsoft Confidential - NDA Only
  • Equivalent Objects
    Member names mostly the same from server to client (e. g., SPWeb.QuickLaunchEnabled = Web.QuickLaunchEnabled)
    Microsoft Confidential - NDA Only
  • 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
    Microsoft Confidential - NDA Only
  • Client Object Model Execution Flow
    Managed Clients
    Server
    Managed Controls and Logic
    SPO-D
    Or BCS GA+
    External Data Sources
    Client Service
    client.svc
    Managed Object Model
    Server Object Model
    Proxy
    Proxy
    Content Databases
    JavaScript Object Model
    JavaScript Controls and Logic
    Web Browsers
    Microsoft Confidential - NDA Only
  • SharePoint Online and Silverlight
    Silverlight
    Many benefits
    RIA
    Web Services/Distributed Systems
    SP Client Object Model makes SP/SPO solutions possible
    SPO
    Limitations overcome by SL
    SPO + Silverlight
    Common solution pattern for cloud solutions
    Microsoft Confidential - NDA Only
  • Azure Integration
  • Windows Azure Platform
    Extend & Scale
    Azure Cloud
    App
    Windows Platform in the Cloud
    Developer Experience
    Cloud Storage
    Connected Platform
    AppFabric
    Grow your business
  • What’s Possible?
    SPO-D or GA+
    SPO-D
    Microsoft Confidential - NDA Only
  • Calling External Code
    OAUTH
    2.0
    Post-GA
    Services
    SharePoint Online
    Internet
    SPO
    ACS 2.0
    Post-GA
    Services
    User
    Azure
    Microsoft Confidential - NDA Only
  • Accessing External Data
    OAUTH
    2.0
    BCS
    Post-GA
    Data
    Internet
    SharePoint Online
    ACS 2.0
    SPO
    Post-GA
    Data
    Azure
    User
    Microsoft Confidential - NDA Only
  • Exposing SP Data to External Code
    Internet
    OAUTH
    2.0
    Post-GA
    Web Application
    Data
    SharePoint Online
    SPO
    Web Application
    User
    Azure
    Microsoft Confidential - NDA Only
  • Azure AppFabric Service Bus Flow
    Azure AppFabric Service Bus Relay
    On Premise
    Your
    Service
    Users
  • Excel & Access ServicesWorkflow Solutions
    SharePoint Online
  • SharePoint Services Summary
    Excel Services
    Surface Excel data and artifacts in SharePoint Online
    Publish pieces of Excel workbooks to SharePoint Online
    Interact with Excel data and artifacts with the REST API and JavaScript Object Model
    Access Services
    Convert Access databases to SharePoint lists and forms
  • Workflow Services
    Prototype workflows in Visio 2010
    Use diagrams to get sign-off
    Implement the workflow in SharePoint Designer 2010
    Custom or copy & modify built in workflow
    Actions, conditions and steps
    Develop custom workflow actions and events in Visual Studio 2010
  • Workflow Services
    Implemented via Workflow Event Receiver
    Override SPWorkflowEventReceiver
    Scope
    SPSite
    SPWeb
    SPList
    SPContentType
    Events
    WorkflowStarting
    WorkflowStarted
    WorkflowCompleted
    WorkflowLoading
    WorkflowUnloading 
    WorkflowPostponed
    Can’t export from SPD2010 to VS2010
    Can’t build Visual Studio code workflows in a sandboxed solution
  • Common SharePoint Migration Approaches
    Microsoft Confidential - NDA Only
  • Application Components
    What components make up your applications?
    Solutions
    Features
    How are they scoped?
    Farm, Site, Web
    How do these components map to your target environment?
    What changes need to be made?
  • Multiple paths are possible
    Greenfield
    Rewrite components to adhere to best practices before migrating
    Migrate data to new locations
    Brownfield
    Migrate pieces that work in the target environment
    Update architecture later
    Ex: http://sharepoint2010.microsoft.com
    Migrate data as needed, or not at all
    Gradual vs. Complete
    Creating an SPO compatible on premise solution for later migration.
    Microsoft Confidential - NDA Only
  • Capabilities By Solution Type
    Microsoft Confidential - NDA Only
  • Capabilities By Solution Type
    Microsoft Confidential - NDA Only
  • Mash Up Pattern
    Client Data Model
    SharePoint 2010
    SharePoint Online
    SharePoint Online
    Client Data Model
    Client Application
    Services
    User
    On Premises
    Microsoft Confidential - NDA Only
  • Client Data Model
    Web Application
    SharePoint 2010
    SharePoint Online
    SharePoint Online
    Data
    Client Data Model
    Services
    User
    On Premises
    Microsoft Confidential - NDA Only
    Server Application
  • Lync Online
  • Lync Online Features
    Presence, IM, audio, video, and screen sharing
    Lync Web App for online presentations with external contacts
    Federation with customers and partners
    Reply by IM from Outlook
    IM with Windows Live contacts
    Presence and click-to-communicate from Office and SharePoint
  • Lync Controls
    “Drag and Drop” feature integration
    Contact list, contact search
    Presence, contact info, custom contact list
    IM and audio “Click-to-Call”
    Supports contextual conversations
  • Contextual Conversations
    Launch applications from the Lync conversation window
    Lync Extensibility Window Context
    Host Silverlight applications in the Lync conversation window extension
    Use separately or combine
  • Exchange Online
  • Use Exchange Managed Web API
    Managed API for developing applications that use Exchange Web Services
    Functional parity with EWS*
    Easier than working with EWS proxy classes
    Makes EWS calls under the covers
    No additional required server side components
    Backwards compatible
    Request versioning
    new ExchangeService(
    ExchangeVersion.Exchange2010_SP1);
    Cloud compatible out of the box
  • Development Scenarios
    I want Exchange data in my application
    Create/Read/Update/Delete operations on mailbox items:
    Appointments
    Attachments
    Contacts
    Emails
    Tasks
    Public Folders
    I want to leverage Exchange business logic
    I want Outlook feature “X” in my application
    Free/Busy
    Notifications
    Data Sync
  • About Exchange Online
    Exchange Web Services Managed API 1.1
    Power of Exchange Web Services
    Productivity of .NET
    Interact with Exchange data from your applications
    Leverage Exchange business logic in your applications
  • Resources
  • Resources – Office 365 Overview
    Office 365
    http://office365.microsoft.com
    Office 365 Developer Training Kit
    http://msdn.microsoft.com/en-us/sharepoint/gg153540.aspx
    Microsoft Office 365 Fact Sheet
    http://www.microsoft.com/presspass/presskits/office/docs/office365FS.docx
    Office 365 Beta Service Descriptions
    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6c6ecc6c-64f5-490a-bca3-8835c9a4a2ea
    SharePoint Online Developer Resource Center
    http://msdn.microsoft.com/sharepointonline
  • Resources - Developers
    Developing, Deploying, and Monitoring Sandboxed Solutions in SharePoint 2010
    http://msdn.microsoft.com/en-us/magazine/ee335711.aspx
    SharePoint Online Standard Developer Guide
    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d007f35e-375c-4b11-bc40-bc9082bb224a&displaylang=en
    Microsoft Patterns & Practices – SharePoint 2010
    http://msdn.microsoft.com/en-us/library/ff770300.aspx
    SharePoint 2010 Training Kit
    http://channel9.msdn.com/learn/courses/SharePoint2010Developer/
    SharePoint 2010 Training Kit - Client Object Model
    http://channel9.msdn.com/learn/courses/SharePoint2010Developer/ClientObjectModel/
  • Resources - Developer
    Best Practices: Common Coding Issues When Using the SharePoint Object Modelhttp://msdn.microsoft.com/en-us/library/bb687949.aspx
  • ISV Resources
    Join Metro Connect Office 365 and (SharePoint)Azure
    http://connect.microsoft.com/metro
    Deep dives, software design reviews, porting events
    Office 365 Beta
    http://office365.microsoft.com/
    Microsoft Partner Network Online Services Sales Guides
    https://partner.microsoft.com/40053541
  • Summary
    Functionality available in sandboxed solutions
    Develop on-premise
    Deploy to SPO
    Debugging and troubleshooting
    Architect for the sandbox
    Server code runs in sandbox
    Silverlight
    Call external web services
    Azure
    Call Azure-hosted WCF services from Silverlight web parts
    Use the Azure AppFabric Service Bus to call on-premise WCF services
    Use Azure Worker Roles to simulate long running services
    BCS coming soon after launch
  • © 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.