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









Hey there! My name is Adam, and I'm a Technical Evangelist at Microsoft where I spend time focusing on Windows, Windows Phone, and Windows Azure.