Office 2013 loves web developers slide


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Office 2013 loves web developers slide

  1. 1. Office 2013 loves Web Developers Fabio Franzini MVP SharePoint, Senior Consultant & Trainer @franzinifabioTemplate designed by
  2. 2. brought to you by
  3. 3. AgendaIntroductionDocument-based AppsMail AppsDistribution
  4. 4. Introduction Introduction
  5. 5. Microsoft Vision: Modernizing the Platform Today’s Trends Today’s Market Microsoft Principles
  6. 6. What is an App for Office?A Web page loaded inside an Office ApplicationHTML 5 and CSS for rendering user interfaceJavaScript and jQuery to add behaviorCalls to REST APIs to retrieve and update data from across networkUsing Web Extensibility Framework for interaction with the documents App for Office Catalog Server Web Server App for Office Web Manifest Page App for Office <XML> HTML+JS
  7. 7. Common App Architecture APP Web Server Host Browser Host 3rd Party Services Other Devices & Clients Server APIs Client APIs Office SharePoint & Exchange Client Server
  8. 8. Apps for Office Web Page App Manifest HTML/CSS/JS <XML> App
  9. 9. Types of Apps for OfficeTask Pane App for Office (Document-centric)Assists user working with one or more documentsWorks in Word, Excel and ProjectContent App for Office (Document-centric)Adds embedded content/functionality into documentOnly used in Excel Application and Excel Web ApplicationMail App for Office (Mailbox-centric)Used in Outlook Application and Outlook Web App (OWA)Extends Outlook items with custom UI and behaviorsOutlook items can be messages and eventsMail Apps require Exchange 2013
  10. 10. Using App for Office
  11. 11. PrinciplesCross PlatformDesigned from the ground up, Abstraction, AsyncCross AppCommon objects and methods across apps (selection, tables, settings)Web StandardsECMAScript 5PerformanceAsync, limits
  12. 12. Office Javascript API Overview Office.context Document Mailbox Project R/W Selection Item Project Info Bindings User Profile Tasks Settings EWS Properties & CustomXmlParts Settings
  13. 13. Document-based Apps
  14. 14. Office Application ArchitectureApps for Office code run in separatesandboxed processSandbox infrastructure leverages Web Control from IE9/IE10App for Office support for HTML5 and CSS3 consistent with IE9/IE10 supportBrowser-rendered Apps basedWorks across all popular browsers (might require the latest version)App runs its it own iFrame inside outer an iFrame with WEF runtimeCommunications between iFrames relies on HTML5 postMessage API
  15. 15. A common API for document-based AppsDocument-based Apps for Office have common objectsUsed to read and write content to and from documentUsed to create bindings and event handlers Common Objects x-Office! Picture Charts Clip Art Hyperlink Word Art Shapes XML Text Table Matrix Parts
  16. 16. Core API Objects
  17. 17. Interacting With Document ContentAll data access starts through document objectRead/write access to user selectionEvent handler for selection change eventThree data types are supportedTextMatrixTable
  18. 18. Working with Selections Task Pane App reads current selection and Content App reads translates current selection and translates Current selection
  19. 19. Getting Selected Data
  20. 20. Coercion TypesContent in binding/selection can be converted on read/writeTextMatrixTableHTMLOffice Open XML (OOXML) Office.context.document.getSelectedDataAsync(‘ooxml’, etc…)
  21. 21. What are App Bindings?Bindings link an App for Office to a specific document sectionCan be defined current selection of a named item in a templateArbitrarily read/write binding data at anytimeR/W operations do not depend on a selection.Enable Event handlingBindings support three different data shapesText binding for binding to an individual cell in Excel or text in word.Matrix binding for a two dimension array representing rows and columnsTable binding is like a matrix binding with support for headers
  22. 22. Uses of Apps for Office Bindings App handles SelectionChangedBound range event associated withof stock the binding to retrievesymbols news associated with stock symbol
  23. 23. Using BindingsAdding a bindingBindings.addFromPromptAsyncBindings.addFromSelectionAsyncBindings.addFromNamedItemReferencing a bindingBindings.getAllAsync A dialog is presented to the user experience when you call addFromPromptAsync.Bindings.getByIdAsyncOffice.SelectRemoving a bindingBindings.releaseByIdAsyncBinding event handler to a bindingBinding.addHandlerAsync(“type”, handler);
  24. 24. Requested CapabilitiesYou can read/write document settings • ReadDocument You have read access to document You can subscribe to change events • WriteDocument Write content into document • ReadWriteDocument ReadDocument + WriteDocument • FullAccess All Permissions + use of Silverlight & Flash
  25. 25. demo
  26. 26. Mail Apps
  27. 27. Mail AppsWrite once, run anywhere Outlook runsSame Mail App runs on Outlook and OWADevelopment model based on activation rulesActivation rules run whenever user selects itemActivated mail apps are added into Outlook UIDesigned to be secureMail apps run in an isolated, sandboxed processMail apps run with a three-tier permission model
  28. 28. Mail Apps – Up Close and Personal App Name Mail App Body Context trigger
  29. 29. Mail App HostingMail Apps require Exchange 2013Exchange Server hosts users mailboxExchange Server hosts app manifest files EWSWeb server hosts HTML for Mail AppMail App can make callback to Web serverMail App can call Exchange Web Services (EWS)EWS calls can be brokered through Web server
  30. 30. Extracted EntitiesExchange detects specific entitiesExchange 2013 inspects each incoming message for text, such as postal addresses, URLs, etc.These entities are stamped on each item as a property. Entity Type Text Detected Address US postal addresses 1 Microsoft Way, Redmond WA, 98052 EmailAddress Any SMTP address MeetingSuggestion A reference to an event or meeting Let’s meet next Tuesday for lunch. Contact A personal name related to other entities Randy Byrne, 1 Microsoft Way, Redmond WA, 98052 PhoneNumber US telephone numbers (555) 867-5309 TaskSuggestion Actionable sentences in an email Please install office 2013 on my computer. Url A filename or web address
  31. 31. Activation rulesRuleCollectionGroups multiple rules together using AND or ORRule Collections can be nested within each otherItemHasAttachment • Checks whether the item has an attachmentItemHasRegularExpressionMatch • Checks for matches to the reg ex against body, subject or sender’s email addressItemHasKnownEntity • Checks whether the item has the specified entity
  32. 32. Item properties Office.context:Access to item properties • roamingSettings .mailbox: • displayLanguageRecipients of the current message • userProfile .userProfile: • item • nameSubject, date sent, and other message or appointment properties • display forms • time zoneExtracted Entities and regex matches • user token • email address • call EWS .item (Message) (Appointment): • message properties • appt properties • entities • entities • reg ex matches • reg ex matches • custom props • custom props
  33. 33. Interact with MailboxLimited Exchange Web Services accessLook up items in mailbox .mailbox: • userProfile .userProfile:Create appointments, messages, tasks and contacts • item • name • display forms • time zoneSend messages/meeting invites • user token • email address Office.context: • call EWS • roamingSettings • displayLanguageDisplay Outlook forms .itemDisplay Outlook forms(existing messages, new appointments or reply) (Message) (Appointment): • message properties • appt propertiesToken for Single Sign On • entities • entities • reg ex matches • reg ex matches • custom props • custom props
  34. 34. User informationUser profile info .mailbox:Name • userProfile .userProfile: Office.context: • item • nameEmail address • • roamingSettings displayLanguage • display forms • time zone • user token • email addressTime zone • call EWS .item (Message) (Appointment): • message properties • appt properties • entities • entities • reg ex matches • reg ex matches • custom props • custom props
  35. 35. Data storagePer-app property bagDictionary of key-value pairs .mailbox:Saved within user’s mailbox • userProfile .userProfile: Office.context: • item • name • roamingSettings • display forms • time zonePer-app, per-item property bag • displayLanguage • user token • email addressDictionary of key-value pairs • call EWSSaved on the specific item .item (Message) (Appointment): • message properties • appt properties • entities • entities • reg ex matches • reg ex matches • custom props • custom props
  36. 36. Permissions and Capabilities Read/writeRestricted mailbox permissionUse only extracted item entities but no custom regular expressionsPartial OM access and no access makeEWSRequestAsync Read item permissionReadItemUse custom regular expressionsFull JSOM access except no access to makeEWSRequestAsyncRead & write properties for current item Restricted permissionReadWriteMailboxUse Exchange Web Services (EWS) operationsCreate, read, write items & folders Low trust: end-user can install for selfSend items High trust: Exchange administrator must install
  37. 37. Possibilities Activate on patterns Bug tracking Package tracking Case number/PO status look-up
  38. 38. demo
  39. 39. Distribution
  40. 40. Distribution of Apps for OfficeMommy, where do Apps for Office come from?App for Office distribution/deployment model based on App CatalogsApp for Office is published by uploading its manifest to an App CatalogUser inspect App Catalog with Office Applications UI to discover AppsUser can create and start an App for Office found in App CatalogThere are several different types of CatalogsOffice StoreSharePoint App CatalogExchange App CatalogFile Share App Catalog
  41. 41. The Office StoreThe Office Store functions as public marketplaceProvides catalog of Apps for Office to consumers and general publicOffice Store managed by Office.comConsumer identity on established by Windows Live IDApps for Office tied to user by using identity established by Live ID logonIts easy to publish a App for Office to the Office StoreYou just need to publish the App for Office manifestThe manifest points to a Web page anywhere on the InternetMicrosoft controls vetting process to ensure integrity of Apps in Office Store
  42. 42. The Office Store – Adding an App To YourAccount
  43. 43. For more info…
  44. 44. GrazieGrazie a tutti per la partecipazioneRiceverete il link per il download a slide e demo via email neiprossimi giorniPer contattarmi @franzinifabio
  45. 45. brought to you by