Windows 8 Ranger Summit Notes – Day 1

August 22, 2012

This week I’m fortunate enough to be in Redmond, WA at Microsoft HQ attending a Windows 8 deep dive summit with 25 other partners. While I can’t share everything we cover on a day-to-day basis, partly due to NDA’s and partly due to my brain and note taking capacities, I did want to share some of the highlights from each day.

For the most part these are taken directly out of my OneNote notebook, which means they’re pretty raw. Some of them might not make the most sense, but I’ll try to add context where I can. After the summit, possibly next week, I plan to take some the key pieces of information learned this week and expand on them in separate posts.

Below are my notes from day one of the summit.

Building Windows 8 Apps for the Enterprise: Part 1

Building Windows Store Apps for the Enterprise

“Great experience across hardware”

  • Not a laptop, not a desktop, not a tablet OS, any OS for all devices
  • 500,000,000 copies of Windows 7 sold, which can run Windows 8 (iOS and Android far behind)
  • Surfii (plural of surfaces)

Scenarios

  • Productivity with tablet
  • Portable workspace
  • Work anywhere
  • Secure device & data
  • Secure environment
  • BYOD
  • Support mobile workforce

Win Store Apps Types

  • Consumer
    • Facebook, Angry Birds, Pandora, etc. (examples)
    • Win store (distro)
    • Tech company (built by)
    • Consume (user)
  • B2C (easier to spend money with biz)
    • Fidelity, Home Depot, British Airways, Century 21 (examples)
    • Win store (distro)
    • Enterprise (built by)
    • Consumer (user)
  • LOB ISV
    • CRM, Jeppesen, BOARD Vantage, SAP (examples)
    • Windows store or side loaded (distro)
    • Tech company (built by)
    • Biz (user)
  • Custom LOB
    • Headtrax, Expense Approval, PLM, Company news (examples)
    • Side loaded (distro)
    • Enterprise (built by)
    • Biz (user)

LOB App Scenarios

  • PoS Systems
  • Dashboards
  • Product Catalogs
  • Monitoring and Action
  • Workflow Management
  • Field Apps

Windows Store Apps (Why?)

  • Mobility – suited for modern form factors and longer battery life
  • Increase productivity – touch first, fast and fluid xp w/live tiles, notifications and built in contacts (saves $$)
  • Performance – quick startup and designed to be async
  • Security – reduced sys vulnerability with isolated app containers
  • Use What You Know – same tools, languages and back-end infrastructure you already have
  • Deployment – easier, faster deployment with side-loading and zero-install

When Desktop and Web Apps Should Remain

  • Desktop Apps
    • Pixel accuracy apps like the CAD/CAM
    • Need chrome like Visual Studio, PowerPoint, Word, etc.
    • Need sys access like IT Helpdesk app
  • Web Apps
    • Does not need platform richness
    • Accessible across various platforms (i.e. non MSFT)
    • Need zero foot print

User Experience – Increased productivity

  • Designed for touch
  • Fast and fluid
  • Snap and scale beautifully
  • Use the right contracts
  • Invest in a great tile
  • Feel connected & alive
  • Roam to the cloud
  • Embrace modern ui principles

Biz app examples currently in the marketplace

  • Mobizy (productivity)
  • Rooms to Go – used by sales associates
  • Beer Ranger – sales reps
  • SAP – sales pipeline simulation

Auth & security

  • Auth
    • Integrated windows auth
    • App certificate my and root stores
    • Multi-factor auth
    • Federated adfs auth
    • SSO with live, facbook, etc.
  • Security
    • Isolated app containers
    • Robust capabilities fx
    • Support for ssl/tls
    • Crypto apis
    • App signing
  • Check out WebAuthenticationBroker info by Vittorio

Working with Data

  • Storage
    • Local store with db support
    • Local file sys and network shares
    • Your backend systems
    • Windows azure
    • 3rd party services
  • Synchronization
    • Roaming storage
    • Skydrive
    • Database sync

Building Windows 8 Apps for the Enterprise: Part 2

Where do windows store apps come from?

  • It direct distribution
    • Certified by corp
    • Installed and updated via it supplied processes
    • Built in house or purchased directly from ISV
  • Windows store
    • Certified by windows
    • Installed and updated by end users
    • ISV built business apps

Why put a biz app in the store?

  • Best of both worlds
    • default demo mode – free advert
    • switch over to real data via settings

Windows store

  • Apps certified by windows
    • Validation of the ISV
    • Technical certification
    • Content certification
  • Apps are managed by the user
    • Installation and update by user
    • Available to the user on other pcs (up to 5, roaming settings)
    • Rated and reviewed by the user
  • Payment/authorization
    • Can be done directly with the ISV
    • ISV can provide seat based licensing/discounts using windows store receipts

Sideloading

  • Can be done directly (Intel)
  • Use PS scripts (Intel)
  • Self-service portal (SSP) (Intel and ARM)
    • Actually an app
    • Think enterprise store
    • IT Manages
  • Can’t push apps to ARM devices

IT Direct Distribution

  • Apps certified by enterprise
  • Apps managed by the enterprise
  • Machines must be preconfigured by enterprise

Tips for Certifying Windows Store Apps

  • What capabilities are they requesting? Request only what you need
  • Are they providing a consistent Windows store experience?
  • Will they continue to run as expected on future versions of Windows?

Preparing Apps for IT Direct Distribution

  • Sign with trusted certificate
  • Run the windows app cert kit
  • Something else

Preparing machines for IT direct distribution

  • Group policy set for install all trusted apps
  • App signing certificates are trusted (can be self-signed)
  • Machine must be enabled for sideloading to launch apps
    • Win 8 enterprise or server and domain joined
    • Win 8 pro, Win rt, non-domain joined enterprise activate a secondary product key

Deploying windows Store Apps

  • As part of your Windows 8 base image
  • At runtime

PowerShell Deployment

  • Detect apps
  • Install/Update apps
  • Remove apps

Configuration Manager SP1

  • Deploy Windows Store Apps natively
  • Deploy Deep Links to apps in Windows Store
  • Inventory Windows Store Apps
  • Enable side-loading for machines

Deployment: Self Service Portal

  • Users can browse for LOB apps made available by IT
  • Four types of apps
    • Internally developed
    • Licensed by isv’s
    • Web links that launch websites and web apps in the browser
    • Links to app listings in the store (deep links)

AppLocker for Windows Store Apps

  • Restricts which apps can be installed
  • Allow/deny lists
  • Manage for users/machines

Managing the Windows Store

  • Disable access to the Windows Store
  • Disable automatic download of app updates (cannot prohibit users from downloading)
  • Configuration Manager SP1

Creating LOB Metro Style Apps in XAML Using Blend and Visual Studio

What is a lob app

  • Domain specific
  • Data driven
  • Existing patterns & frameworks
  • For the enterprise (common computing platform desktop/laptop)

Design Principles

  • Pride in craftsmanship
  • Be fast and fluid
  • Authentically digital
  • Do more with less
  • Win as one – no matter what device you’re working on, it just works

Blend and VS

  • Blend is optimized for visual design tasks
  • VS is optimized for coding and debugging
  • XAML designer is the same in both

Templates – evolution

  • WPF no template – blank slate
  • Silverlight Navigation App template
  • Windows Phone metro templates with margins, fonts, etc.
  • Windows 8 grid and split templates (master/detail, groups/items, etc.)
    • Full screen
    • Snapped
    • Filled
    • Landscape
    • Portrait
    • High contrast

Layout aware pages

  • Support orientation (portrait or landscape)
  • Default view model (just a dictionary)
  • Process lifetime management
  • Navigation & Keyboard bindings

AppScope

  • Apps can be launched, via search, tile, secondary tile, contracts, etc.
  • State management and back stack handled by templates – developer needs to override LoadState in layout aware pages

Windows Live Tile & Notifications

Why tiles?

  • Make your app alive with activity using tiles and notifications
  • Your app appears to be running/active even when it’s not
  • Give users a window into your so they’ll want to engage with it more

Carefully consider what your tile represents and how users will get value out of it. Creating a tile that simply contains your application’s logo does not provide value to the user.

Think about the type of data you want on the different sizes (square, wide) of tiles

Basic tile

  • Tap on to launch or switch to the application
  • Static default tile specified in the application manifest
  • Two sizes
    • Square (1 x 1)
    • Wide (2 x 1)
  • Both sizes can have live updates
  • Basic tile content does not link into app, but the content should be made readily available once the user in the app.

Live tiles

  • Updated using pre-defined templates
  • Provide rich rending options
  • Text-only, image-only, or combination
  • Jpeg, gif, or png, max size 200 KB
  • Optional peek animation
  • Local, scheduled, periodic, and push updates
  • Badges are updated separately from text, glyph and image in tile
  • Won’t be shown if there is an issue with the image

Notification extensions library ships with the SDK sample

Notification Queuing

  • By default only last notification shown
  • Opt-in automatically cycle tile through last five notifications
  • Notifications have tags
    • Tag matching used to replace notifications
    • No tags = FIFO ordering

Secondary tiles

  • Created by pinning content from app
  • Pin initiated by app via simple runtime call
  • User confirms pin operation via system ui
  • Exposes a personalized surface for app
  • Same capabilities as app tiles
  • Can be roamed from install to install (machine to machine), default is to roam, can be turned off
  • Need to query to determine if tile has been pinned/unpinned
  • Tiles can’t be pinned without asking user first

Toast notifications

  • Deliver transient messages outside the context of the app
  • Use to get the user’s attention immediately
  • User is in control and can permanently turn off toast notifications from your app
  • Allows quick navigation to a contextually relevant location in your app
  • Best are personally relevant and time sensitive
  • Give on/off switches within the apps for different types of messages
  • Do not use for advertisements
  • Provides a contextual launch point into the app (similar to secondary tiles)
  • If sending toast from cloud, consider when toast is not delivered (i.e. notifications turned off)…deliver a tile update in its place
  • Desktop apps can send toast)

Toast templates

  • Same architecture as live tiles
  • Numerous rendering options available (not as many as tiles)
  • Will be shown if there is an issue with the image

Notification delivery mechanisms

  • Local – send while your app is running
  • Scheduled – schedule in advance at the precise time you specify
  • Periodic – update tiles and badges at fixed time intervals by polling a cloud service
  • Push

Images

  • Can be placed on the web (publicly accessible)
  • Installed as part of app
  • Downloaded from web
  • Tile images can be localized

Push Notifications Service

  • Enables delivery of tile and toast notifications over the internet
  • Updates and notifications show to the user even if your app is not running
  • Wns handles communication with your app
  • Scales to millions of users
  • Wns is a free service
  • Provides create power savings for devices
  • Channel Uri’s are time limited (30 days)
  • Consider single user with multiple devices and multiple uri’s
  • http://manage.dev.live.com/build (get a temp key for wns)
  • Sideloaded apps can’t have push notifications
  • Wns must be used, no on-premises story at the moment, currently being worked on

When should I update my tile or toast?

  • Personalized, real-time status (push)
    • A friend achieves a new high score within a game we share
  • Subscribed tailored content updates (push)
    • Ongoing sporting event scores or breaking news
  • Application launch/usage (local/push)
    • Update app tile to match more recent app content
    • Clearing the unread mail count when mail is opened
  • Periodically for non-personalized content (periodic)
    • Every 20 minutes for stock or weather updates
  • Missed toast notifications

When should you not update tile

  • High frequency, streaming updates
  • Do not clear the tile when the app launches/exits
  • Do not update to explicitly replace ‘old content’
    • Set the optional expiration on the tile at the time it is sent
    • Only send new updates if there is new data to show the user
    • Default expiration for wns push notifications is 3 days (local notifications don’t have default expiration)
  • Do not depend on tile ordering
    • Notification queue tile order is not guaranteed
    • Use tags to replace specific tile updates

Raw notifications

  • Notifications without UI content
  • Delivered directly to app
  • Same uri and push mechanism
  • Can be used to trigger background application actions

Moving Web Applications to Windows 8

Why take web apps native?

  • Take advantage of advanced features and controls
  • It’s easier to monetize native apps compared to web apps
  • Reach new audiences
  • Be where your customers are (everyone is in an app store these days)
  • Discoverability – it’s easier to find an app in a store than on the web
  • Manage the update process

Why web technology for native apps?

  • BYOL – Bring your own language. Allows developers to code in languages they are most comfortable with
  • Services a broader developer community
  • HTML5 has inertia and is maturing quickly
  • Share assets with web based apps

Skills required

  • JavaScript
  • HTML5
  • CSS
  • MVC (Model View Controller)

Advantages of JavaScript Windows 8 Applications

  • Not a web view (on iOS web views have resource constraints that often cause performance issues
  • Full features and functionality as IE
  • Full memory allocation as IE
  • Just an additional library (WinJS) is required
  • Access to WinRT API’s (camera, notifications, compass, accelerometer, etc.)
  • All web standard code runs inside of the application
  • Performance meets or exceeds what is in the browser