Office 2013 loves web developers   slide
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Office 2013 loves web developers slide






Total Views
Views on SlideShare
Embed Views



2 Embeds 45 34 11



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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Office 2013 loves web developers slide Presentation Transcript

  • 1. Office 2013 loves Web Developers Fabio Franzini MVP SharePoint, Senior Consultant & Trainer @franzinifabioTemplate designed by
  • 2. brought to you by
  • 3. AgendaIntroductionDocument-based AppsMail AppsDistribution
  • 4. Introduction Introduction
  • 5. Microsoft Vision: Modernizing the Platform Today’s Trends Today’s Market Microsoft Principles
  • 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. 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. Apps for Office Web Page App Manifest HTML/CSS/JS <XML> App
  • 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. Using App for Office
  • 11. PrinciplesCross PlatformDesigned from the ground up, Abstraction, AsyncCross AppCommon objects and methods across apps (selection, tables, settings)Web StandardsECMAScript 5PerformanceAsync, limits
  • 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. Document-based Apps
  • 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. 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. Core API Objects
  • 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. Working with Selections Task Pane App reads current selection and Content App reads translates current selection and translates Current selection
  • 19. Getting Selected Data
  • 20. Coercion TypesContent in binding/selection can be converted on read/writeTextMatrixTableHTMLOffice Open XML (OOXML) Office.context.document.getSelectedDataAsync(‘ooxml’, etc…)
  • 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. Uses of Apps for Office Bindings App handles SelectionChangedBound range event associated withof stock the binding to retrievesymbols news associated with stock symbol
  • 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. 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. demo
  • 26. Mail Apps
  • 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. Mail Apps – Up Close and Personal App Name Mail App Body Context trigger
  • 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. 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. 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. 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. 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. 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. 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. 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. Possibilities Activate on patterns Bug tracking Package tracking Case number/PO status look-up
  • 38. demo
  • 39. Distribution
  • 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. 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. The Office Store – Adding an App To YourAccount
  • 43. For more info…
  • 44. GrazieGrazie a tutti per la partecipazioneRiceverete il link per il download a slide e demo via email neiprossimi giorniPer contattarmi @franzinifabio
  • 45. brought to you by