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

Office 365 for Developers

on

  • 12,763 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,763
Views on SlideShare
12,762
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