Ali provides a walkthrough of Apps for Office. Look at the type of shape and see some examples. Explanations of the API framework.
Mastering Apps for Office Development
Looking at various aspects that need consideration during development and design.
Trends impacting the apps we develop
Devices – increasing numbers projections of 350m smartphones in the workplace by 2016
People – 82% of world’s online population using social networking
Cloud – 50% of enterprises on the ‘road to’ cloud
Office is the most installed apps outside of anything in browser
New apps, New scenarios, New User Experiences
Devices – Fast and fluid with touch, pen, mouse and keyboard. Immersive experience (Win8). Support for different OS
Cloud – Office on demand, roaming and up to date. New cloud app dev model. Enterprise grade reliability and standards.
Social – Newsfeeds and micro blogging, extend with yammer. Pervasive social across Office. Multiparty HD video and Skype federation.
Office Mobile across platforms
The apps should work across all devices
Consumers typically have multiple devices
Apps are everywhere
They are becoming the primary way we deliver functionality to end users.
This is changing the paradigm about how we design and develop functionality. Old world apps were often composite applications which had a lot of breadth. They would have multiple tabs, screens and literally hundreds of different bits of functionality in one app.
Apps really give you the ability to give you transacted solutions which essential guide a user from start to finish for a specific task.
With this shift to much more targeted usage, our app lifecycles are vastly reduced as they need to deleiver less functionality and more targeted use cases.
It should reduce the need for 18-36 months projects before something is delivered.
A new paradigm for Solutions
Personas > (have) > Objectives > (and use) > Devices > (to consume) > Solutions > (composed of) > Services > (running on) > Infrastructure
Really now if you look at the flow above the solutions we are building are tied to personas. Those personas have the responsibility to meet some objective within your solution. They use devices and these devices consume the solutions we build. Most solutions will be consuming some kind of services, they often compose multiple services together into an app. This accelerates solution development by making better use of things already internally provide or from the marketplaces. All these services run on infrastructure, and the trend is to find infrastructure which is flexible and scalable.
Note: Tie an app solution to a specific end user persona to make them a success.
Apps for Office
Loosely coupled services with simpler contracts that enable developers access to more best of breed services in private and public clouds.
HTML5 and CSS3 are rapidly becoming the UX code paradigm.
Support the standardised identity model that spans computing devices.
End user focused, contextual, web based and discoverable.
Bring the web into Office.
What are apps for Office?
- Document-based manifest driven applications
- Web applications hosted by any http delivery mechanism
Note: Apps for Office do not replace VSTO, they just give a different ability to deliver extensions.
Apps for Office Shapes
App for Office Framework
App for Office
Web Extensions Framework (wef)
Application specific JSON (Outlook JSON, etc)
App API’s (third party api’s)
Rich clients / Web Browsers
Demo of the standard manifest.
Important bits of information from the manifest
- app type – which defines which shape this app is
- Id – is the unique Guid identifier which tells Office what your app is. This binds the app to the document or mailbox item its associated with. This Id is also the service point for upgrading the apps in the future.
- Version – the version of this app
- ProviderName – The name of the organisation who built the app
- DefaultLocale – The language for the default. This MUST be set if you want Office store validation to pass
- DisplayName – The name of the app
- Description – The description of the app
- AppDomains – ??
- Capabilities – Allows you to specifiy which set of functionality it depends upon within the host
- Default Settings
- SourceLocation – VERY IMPORTANT as it tells the Office Runtime which url it should load when the app loads within Office
- Permissions – The collection of permissions this document requires to be granted to run its functionality
Office stores the catalog information
In registry: Computer\HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Wef\Developer key can have a string key set for the manifest of the demo app
This helps during development without a catalogue location
App for Office Manifest
There are four pieces of information when building an app for Office are covered:
- Consumption Declaration – Means you need to make sure the capabilities your app depends upon, and that you have identified the type of app you want deployed. You can’t change the shape of an app once its been associated with an app.
- Capability Consumption – Defining which Office capabilities the app needs/
- Service Consumption – Identify the services your app needs to consume. Assert the client endpoints the app is going to consume. This is part of the ‘AppDomain’ definitions.
- Aesthetic Design – Make this an important piece, two things to make your app is installed. Make sure the first this is that the icon is a really good one. Then also consider how it sits alongside the Office branding.
Looking at an excel app for election tracker
Inside the OpenXML the app is referenced but not embedded
Open the ‘xl’ folder
Open the ‘webextensions’ folder
Open the webextensions.xml file
The xml contains some interesting nodes.
WebExtension Id – is the unique ID of that app
- StoreType, OMEX is the public store, Registry would be a developer app, insternal would be internal app
Bindings – Shows the apps bindings to the content
Another interesting fact is that the last state of the app visually gets stored as an image in the document should the app not be available. This occurs when a save of the document is made.
Note: It would be interesting to see what the behaviour is around Versioning and Co-Auth in SharePoint hosted docs for this.
Open the ‘_rels’ folder
Open the webextensions.xml.rels file
This file binds the app instance and the image together within the document
Note: nothing is being installed to the local machine
Demo of this Excel app within the WOPI client which was pretty neat.
App For Office User Experience
App for Office execution is different on Client and WOPI.
Think this info was a little bit to deep and possibly to hardcore.
Apps are isolated, secure and performance boxed
Web client basically runs in an iFrame sandbox
Target capabilities by discovering your host – these become key to design. The developer should have intimate knowledge of what the target Office client can provide. So if it has been targeted to say Excel and Word that if a user opens it in Project that it detects this and gracefully exits.
Avoid the common pitfalls – JS Alerts are not fired. Apps for Office have governors in outlook which prevent you impacting the performance of Outlook.
Resource awareness – You don’t have all the resources from the host machine. The governors limit this. These will close the app if you breach the thresholds. In Outlook apps you can use REGEX but these have fixed time and CPUs before they are taken offline.
Crossing AppDomains – Sometimes this is needed, use AppDomains to tell the web extensions framework you will be doing this. If you don’t the resource will load in a new browser window, which isn’t probably what you want.
Resource sharing leverage Oauth – Make this default auth model. Identity is the responsibility of your app to require, acquire and maintain.
Give your app some style – Make it easy to follow, look nice and be creative.
Outlook VOIP Mail app
Demo’d the rules for a mailbox item
Apps for Office Scenarios
SharePoint Centric – Deployed as part of your SharePoint app as document templates so that they light up when you use that document
- Business Process – Start a workflow from the document
- Team Collaboration – As the user moves around the document supplementary information is brought back from SharePoint.
Document Centric –
- Data visualisation / Analysis & Mashups
- Reference Tools
- Contextual Content & Services
- Content Authoring
Apps > (require) > Capabilities > (that target) > Hosts
One app can run across multiple clients and the cloud.
Mailbox centric apps for email and appointment features.
Task pane and Content apps for document centric apps.
Resource Usage Settings
Apps for Office XML Manifest
Apps for Office Training
Apps for Office Samples
Useful overview session. The different niche information to other Apps for Office sessions made this one worth seeing.