Sean’s Stuff

11 April, 2014

BUILD 2014 – Developing Apps Using the Common XAML UI Framework

Filed under: BUILD 2014 — Sean @ 3:55 pm
Tags: , ,

BUILD 2014, San Francisco
Developing Apps Using the Common XAML UI Framework (2-507) – Tim Heuer

Day 1, 2 Apr 2014, 1:00PM-2:00PM

Disclaimer: This post contains my own thoughts and notes based on watching BUILD 2014 keynotes and presentations. Some content maps directly to what was originally presented. Other content is paraphrased or represents my own thoughts and opinions and should not be construed as reflecting the opinion of Microsoft or of the presenters or speakers.

Tim Heuer – Program Manager, Windows Developer Experience Team, Microsoft

Focused on “native UI”–XAML is the public native UI surface area that we expose

Universal Windows apps, built on common Modern platform

  • Now about evolution of existing Silverlight apps for Windows Phone
  • Session also not about WPF
  • Tomorrow—panel discussion on WPF

“Marketecture” slide:

For Phone 8.1, common model allows you to create apps that span all devices

  • Platform & tooling

Present in Visual Studio 2013 Update 2 (currently RC)

Old world:

  • Custom build camps, share just code files
  • Maybe Portable Class Library (but didn’t support XAML)


  • Can share any asset from your project, across devices
  • E.g. Images, XML, resources, localized resources, shared UI (XAML)

Share your XAML UI

Other sessions: 3-591 – Using Visual Studio to build XAML Universal Apps (Saxena)

Goal is to maximize reuse of code

  • 3″ device to 40″ device

But you also need/want to tailor the GUI to each device

  • What should be common? What should be tailored?

Demo – Shared Projects in Visual Studio

Visual Studio Express also supports this


SportsLeague app in demo

Multiple projects in solution

  • Windows 8.1 project
  • Windows Phone 8.1 project
  • Shared project
    • Doesn’t output anything
    • Place to declare shared assets
    • Merged into other projects in solution

Sharing various assets, e.g. ViewModels

“Project heads”—e.g. “Windows Phone head”—the project that builds the final Windows Phone target

Start from scratch—various templates

If you have existing app

  • Rt-click existing Windows Phone project, then Add Windows Phone 8.1
  • Converts your project to Universal App
  • Doesn’t add any files—no assumptions about what you will want to share
  • Some assumptions when you start with new project

(demo ends)

Old world:

Goal was completely merged platform

  • We got close

What’s common and what’s not?

  • Windows Phone unique stuff are controls like unique picker controls, etc. (e.g. DatePicker with flyout)
  • Here’s raw data, gotten by doing diff

Three main areas to cover today:

We’ll focus only on Windows.UI.Xaml namespace today

Two main categories:

  • Controls – what controls can I use
  • Framework – e.g. data binding, input, etc.


  • Also: 2-516: Building Great UI in XAML (Oster)

‘Primitives’ – same (on both devices)

  • Layout: Panel, StackPanel, Grid, Border
  • Buttons, Slider, ToggleSwitch, CheckBox, RadioButton, ProgressBar
  • TextBox, TextBlock
  • Shapes, Path

Demo – Same API/Behavior

Start with existing app, add Win Phone 8.1 project

  • Move App.xaml, MainPage.xaml, etc. to Shared
  • Open XAML from Shared project
  • Can switch between views—different devices

E.g. StackPanel with Button

Intellisense works, same re-factoring works in editor

APIs that are the same, but where experience/behavior is slightly different

Fairly primitive—just three ComboBoxes

API is exactly the same on these devices

‘Primitives’ – same API, but with tailored behavior

  • Hub – “hero image” on Win 8, but experience on phone wraps
    • API identical, but experience tailors/adapts to device
  • AppBar/CommandBar
    • Can’t use AppBar on Win Phone 8.1
  • Date/Time Pickers and List Pickers
    • List Pickers—6+ items, you go to second screen
  • ListView
    • Multi-select; containers, swipe selection
    • Multi-select works differently on phone—checkboxes appear at left
    • But API is same, e.g. how you enable multi-select
  • Flyouts
    • Available on both devices
    • Phone—full screen; desktop—”full windows” is more like 70% of window
  • Media
  • Ads SDK*
    • Not really in XAML platform, but worth mentioning
    • Ad units is different, depending on platform

Demo – Same API, tailored behavior

Use of user controls lets you to create composite UI chunks

Sports app

  • Uses Hub control

Hub on Windows 8, when you get to the right, you’re done, can’t move further to the right

Run on Win Phone 8.1 emulator

  • Hint: use low memory profiler

Can swipe right, because Hub wraps on phone

Parallax effect, image slowly slides

Looking at code, Hub page is shared

  • <Hub> element
  • <HubSection>
  • XAML the same for both devices
  • Actual content of section
    • Composite user control
    • E.g. DataTemplate is <views:CoverStoryView>
    • User control CoverStoryView
    • Creating this view in both device-specific projects
  • This allows tailoring for each device in the user control
    • E.g. some textual changes, styling
    • Or in “points table”, show different # columns
  • User control allows you to break out pieces of GUI and tailor them

CommandBar in main page, shared XAML

  • Add AppBarButton
  • Then SecondaryCommands with some more AppBarButtons

Windows 8.1

  • Primary commands on right, secondary on left
  • Right-click or edge slide to invoke

Windows Phone 8.1

  • CommandBar is up by default, don’t need to do anything to make it appear
  • Secondary—list after clicking ellipsis, no visual

So the AppBar tailors itself for the device

  • And gracefully ignore things that don’t apply (e.g. icons for secondary buttons)

E.g. What if you have 20 commands, what happens on Phone?

  • Ignores the ones that won’t fit, beyond phone maximum

Can also add UI via code, but do it as shared

  • E.g. Ads, first add Ad SDK to both platform-specific projects
  • Ads team has controls for both platforms, but currently in different namespaces
  • So can’t add them in XAML, but need to do it in code
  • Can go into shared code-behind
  • Add #if WINDOWS_APP / #else
    • using ads = Microsoft.Advertising.WinRT.UI
    • or: using ads = Microsoft.Advertising.Mobile.UI
  • In Loaded event
    • Also #if
    • Set ad dimensions
    • Placeholder.Child = ads (new AdControl), where PlaceHolder is maybe a StackPanel defined in markup
  • Or could have done ads in user control

Using localization for tailoring experience

Device-specific APIs – things that aren’t common between the platforms

  • Windows
    • SearchBox
    • SettingsFlyout (these things don’t exist on phone, so not exposed from API on phone)
  • Windows Phone
    • Pivot – control on phone, doesn’t exist on Windows
    • AutoSuggestBox – new control for Phone 8.1
      • Similar to SearchBox on Windows, but not associated with contract
    • ContentDialog
      • Dialog with arbitrary XAML
    • Maps
      • Can tap into maps platform on phone
      • Part of XAML platform on Phone
      • Desktop does have maps, but via Bing SDK
      • Probably do platform-specific user control to do map stuff
    • System Chrome
      • Progress area, in-call UI
      • Not a lot of system chrome on desktop/tablet

System chrome

  • Blue at top – system chrome (system tray); contains in-call progress, notifications
    • Your page’s background
  • Green/red in middle—your UI
  • Bottom app bar is rendered as system UI, not part of your app
    • On desktop, it is part of your app

By default, render your app content in “visible bounds area”

  • E.g. in red rectangle in this picture
  • But you should set page background to the same as your app background color
  • E.g. in this example, you’d set Page.Background to red

Or you can opt out by setting desired bound mode

  • If you have game and want content to go edge to edge
  • Now you’re responsible for all of it

2-516: Building Great UI in XAML (Oster)building controls

Framework Areas

  • Animation, text, navigation, background, scaling, styling
  • (Data binding—identical across platforms)

Navigation Model

  • Navigation APIs same
  • Phone
    • Hardware Back button
  • Windows
    • In-app Back button
  • Project templates for Universal apps handle this already
  • 2-537: Navigation Model for XAML Apps (Karman)


  • API same
    • But device-specific on phone
  • ThemeAnimations
  • ThemeTransitions
  • Navigation
  • “ReaderBoard”
  • But they expose basic phone animations and you can now use in your apps
    • E.g. Mail list flyouts
    • I.e. system level animations
    • ReaderBoard

Text – new features for phone developers; same APIs

  • Typography.Caps
  • OpticalMarginAlignment
  • TextureBounds
  • TextWrapping
  • TextClipping
  • MaxLines
  • “Header” (Label) on input text controls

Text Enlargement

  • Accessibility
  • IsTextScaleFactorEnabled property


  • Phone
    • Delay character reveal
    • Show password checkbox
  • Tablet
    • Just TextBox with password hide

Custom Tiles

  • Something like 65 custom tiles that you can use
  • Tiles rendered as background task
  • Now: XamlRenderingBackgroundTask – so that you can do custom tile
  • 2-253: Hidinger

Scale Factors and Effective Resolution

  • You really need to think about it
  • 3-541: From 4 to 40 Inches (Torr)

Styling and Theming

  • Accent Color
    • SystemColorControlAccentColor/Brush (exposed)
  • Text Styling
    • PhoneText
  • Focus visuals
    • Do not exist on phone (because no keyboard)
    • These just don’t show up on phone
  • Theme overrides and High Contrast—same!
    • Part of common platform
    • Override the theme that the user has picked

Other UI areas for XAML developers

  • Control developers
    • Needing 2 SDKs, what approach should you take
    • How to think about ‘adaptive’ in your own controls
    • 3-591: Saxena
  • Interaction areas with shell (share/settings)
    • File pickers (Continuation Model)
    • Share – entry point difference
    • Settings – entry point differences, no SettingsFlyout on Phone
    • E.g. Reserved spaces for these things on tablet

Other sessions that relate to this topic:

9 April, 2014

BUILD 2014 – Experience at the Intersection of Design and Development

Filed under: BUILD 2014 — Sean @ 7:58 pm
Tags: , ,

BUILD 2014, San Francisco
Experience at the Intersection of Design and Development (9-003) – Charles Torre, Michael Neuman, Shane Ginsberg, Rick Barraza, Nathan Moody

Day 1, 2 Apr 2014, 12:20PM-1:00PM

Disclaimer: This post contains my own thoughts and notes based on watching BUILD 2014 keynotes and presentations. Some content maps directly to what was originally presented. Other content is paraphrased or represents my own thoughts and opinions and should not be construed as reflecting the opinion of Microsoft or of the presenters or speakers.

Let’s talk about importance of design and user experience.

(left-right) Rick Barraza, Michael Neuman, Shane Ginsberg, Nathan Moody, Charles Torre

Charles Torre – Exec Producer – App Experience

Rick Barraza – Lead Design Evangelist, Microsoft

Michael Neuman – Senior UX Designer, Obscura Digital

Shane Ginsberg – President, Evolution Bureau

Nathan Moody – Design Director, Stimulant

Q: Keep hearing about mobile-first, cloud-first, ubiquitous computing, etc. What does that mean for people who design for people?

  • (Nathan) Convergence—need holistic approach to both technology and design; make sure everything is well integrated
  • (Shane) Internet of Things is about people, not things—figure out how to create magical experiences for people
  • (Michael) Create experiences where technology is invisible, seamless
  • (Rick) Need to make interface transparent, not invisible. It’s within context that’s appropriate. How do we enhance people’s lifestyle
  • (Shane) Our job is to make stuff disappear, but then it appears and surprises/delights

Q: How can developers improve our design skills, or improve designs?

  • (Michael) Can solve 80% of what user needs by ??
  • (Rick) Traditional development is design-first; for consumers, “minimum delightful product”, have strategists/designers/developers involved together from the very beginning
    • We’re talking about consumer-based stuff
  • (Shane) Design frames the problem; if you have eyes and some empathy, you can design something
    • Need to see it thru the eyes of the user
    • Framing the problem is 80%, solving the problem is 20%
  • (Rick) Design is not just what something looks like
    • But—are you solving the right problem the right way?
    • Visual Studio gives you intelligent defaults; good place to start, if you don’t know what you doing
    • But this isn’t the most that you can do; but then do brand differentiation
    • To differentiate, you often do need to be a bit different

Q: What design considerations should we have when thinking about Cortana?

  • (Nathan) We normally create mental models of how users think
    • But seeing a trend where we create personas for our devices
    • It’s about natural conversation and natural languages
    • The key is empathy—will give you heuristics for framing decisions about natural languages
  • (Shane) Voice is (maybe) interface of future (?)
    • 20 yrs of investment in building voice-based UIs
    • But if you use voice as principal interface on some devices, it’s still not great
    • E.g. “Silly accents” mess it up
    • Full of promise; a while to go before users feel comfortable with it
  • (Rick) I need to spend some time and think about it (voice)
    • Can be powerful
    • One guidance—for new technologies, e.g. voice/gestures, “form follows fiction”
    • People have seen these interactions already in fiction (e.g. Tony Stark, Master Chief)
    • Technologies will becomes something that we’re not expecting
    • But users will expect it to act a certain way

Q: As designers, how do you feel about Metro (Modern)? Did Microsoft go too far? Is iOS removal of skeumorphism a validation?

  • (Nathan) Have done a lot of work with Metro
    • Metro has made Microsoft better
    • “Authentically digital”
    • But many brands are very skeumorphic—how do you bridge the gaps? Need to be clever
    • Since Metro, has been big shift at Microsoft. Metro is starting point, but need to go where the brand leads you
    • Metro concepts work really well in touch-first environment
    • Bold move
    • Starting to see major ripple effects
  • (Shane) Skeumorphism vs. flat is a side point, not critical
    • Did Metro go far enough?
    • Metro “flattened”, but not just about flatness
    • Rather, need to think about context, humanity, what’s the problem?
  • (Michael) Superficial, would rather see UI where people aren’t also looking down at their hands
    • It really is all about interactivity, rather than about what it looks like
    • How are the displays touching you, rather than you touching the displays?
    • E.g. directional microphones
    • Old-school to think about what handset looks like
  • (Rick) Windows Design Language—apps are somewhere from transactional to immersive
    • I joined Microsoft because of trajectory of Metro and design language
    • Design is about solving problems
    • For transactional app (most apps), Metro forces you to think about how to solve the problem
    • Became two things
    • Prescriptive—people took it to be too prescriptive, even for immersive experience
    • Operating system shouldn’t be defining what immersive apps should look like
    • You don’t have to strip things down
    • This is Microsoft’s visual identity, for Microsoft apps and for traditional transactional apps
    • But customer’s apps should bring their own design look to it

Q: Charles – if you create design language, is it a base for everything? Why can’t I create my own visual experience (e.g. 3D gel)?

  • (Rick) That’s not the visual identity that Microsoft uses
    • There’s just “good design”, regardless of platform
    • Our visual design language is for Microsoft “first party” apps
    • So if you want to do something different, visually, you should do that and can do that
  • (Charles) So I can make a skeumorphic app; it’s “not scripture”
  • (Michael) Skeumorphic is less relevant as we do augmented reality
  • (Shane) Design is also subject to fashion
    • 20 yrs ago—flat, then skeumorphic, now flat again
    • Ultimate testament is how people use it; if consumers “dig it”
    • Very short cycle now to learn how users respond to stuff

Q: What advice for devs to improve UI skills?

  • (Shane) Go to favorite UI and ask “why” about everything
  • (Rick) Try to rebuild something
  • (Michael) Use case not predicate on software, e.g. animate a dream

Q: Universal App and impact on design?

  • (Charles) Shared experience across different devices? How do you design for this? Maintain empathy for customers..
  • (Rick) Hire a professional
    • If doing transactional app, you’re fine
    • But for immersive, need professional; no “magic pill”
  • (Shane) Responsive design
    • Design in context of its use; playing Halo is very different context to sitting at home
    • This is a challenge—universal, but with context awareness, design applicability
    • It’s hard
  • (Nathan) It’s hard, yes
    • Think about what service you’re providing—and think about what you want in the context in which you’re in
    • Context changes this a lot
  • (Rick) There’s range of software that won’t be apps
    • E.g. Obscura Digital, amazing experiences—e.g. sound, projection mapping
    • Shouldn’t just funnel it down to apps in Windows Store
  • (Michael) What excites us is things like luminescent paint on roads that shows that snow is coming
    • Not just about computers
    • User-centered experience
  • (Shane) World beyond the screen is what’s important
  • (Charles) Just be empathetic—think about who is using the software
  • (Rick) Commenting code, e.g.

Rick’s Kinect demo

Showing Kinect V2 sensor in Windows Store app

We need to encourage “play” on our platform. That’s how we get Natural User Interfaces

Channel 9 video

BUILD 2014 – Developing for Windows Phone and Windows

Filed under: BUILD 2014 — Sean @ 7:01 pm
Tags: ,

BUILD 2014, San Francisco
Developing for Windows Phone and Windows (9-002) – Charles Torre, David Treadwell

Day 1, 2 Apr 2014, 12:00PM-12:20PM

Disclaimer: This post contains my own thoughts and notes based on watching BUILD 2014 keynotes and presentations. Some content maps directly to what was originally presented. Other content is paraphrased or represents my own thoughts and opinions and should not be construed as reflecting the opinion of Microsoft or of the presenters or speakers.

Charles Torre – Exec Producer – App Experience

David Treadwell – Corp Vice President, ISS Engineering

Story of Dave Cutler stopping in to ask Treadwell about afd.sys

Q: What goes through your mind, seeing how Windows has evolved over the years?

  • Back in the 1990s, more constrained, not nearly as robust (e.g. secure)
  • Runs on a great variety of devices


  • Win32 was beautiful, in terms of how much power it has—maximum control
  • But “we need to modernize the platform”
  • Prevent application from negatively impacting the system
  • Viruses and malware are just not possible on the WinRT platform
  • “Safer, more appropriate”

WinRT running on Win32

  • Yes, runs in Win32
  • Win32 infrastructure supports WinRT
  • And can run modern apps on desktop (will support in future)

Q: Does Win Phone 8 support C++ AMP?

  • Don’t know

Q: Is Internet of Things a later update this year? (E.g. start screen in start button)

  • Many IoT things are headless
  • Start Screen UI thing that Terry showed is different from IoT

Q: Is graphical diagnostic tool available for all versions of VS 2013? (Kevin’s demo)

  • Don’t know

Q: When will dev preview for Win Phone 8.1 be available?

  • Mid-April
  • Includes Cortana

Q: Do Universal Windows app have same app lifecycle on all devices?

  • We’re working to make sure that it’s the same
  • Right now, some minor differences

Q: How is new C++14 standard being adopted?

  • Don’t know

Q: When you buy app on phone, will you also get it on tablet? Or separate purchases?

  • As dev, you can choose—use “shared app identity”, so user gets app on phone, PC, tablet

Q: What does ubiquitous computing mean for Windows?

  • Azure/cloud is all based on Windows
  • On devices, Windows is an “amazingly good” client platform

Q: Win XP ending soon

  • XP was where NT kernel became real/mainstream
  • But it’s time to advance (13 yrs old)
  • It’s in everyone’s interest that we move forward

Q: Will you keep doing minor upgrades to Win Phone 8?

  • For XBox 360, there’s just one version
  • For Windows, we want to think of it the same way—just one version; so always up to date
  • IE is example of why this is tough—a pile of different versions out there
  • Treat Windows infrastructure like services

Q: Install Phone app on tablet?

  • No, separate binaries

Q: Anything new on packaging front?

  • Shared app identities for Store—customer just buys single app

Note: XBox One based on Windows operating system

  • Different shell, but it’s really just Windows

Q: Is afd.sys on all these platforms?

  • Yes, still there; but different from original

Q: Will certification processes be unified?

  • Yes, working towards that
  • E.g. XBox “triple A games” go through very different process

Talk about hypervisor on XBox One

  • Early in design cycle, realized we need to support Windows apps
  • Also support triple A games—need to know exactly the resources they can have (i.e. more of a real-time OS)
  • “Game side” of OS—one game at a time, gets sole access to fixed set of resources
  • Other side is Windows side—traditional Windows environment
  • Games OS, Windows OS, then Hypervisor below these two, light runtime that switches
  • Dave Cutler still cutting code—XBox One Hypervisor

Q: Will Start Screen tiles be integrated into new Start button

  • Still working on this

Q: Can retail XBox One be used for app dev?

  • Working on this; intent is that this will be true
  • I.e. You’ll be able to use retail XBox One for dev

Q: Can you elaborate on relationship between BCL(?)/PCK(?) and Universal Apps?

  • Universal App can invoke anything in BCL

Q: Possible to integrate Action Center in 8.1?

  • Thinking about that

Q: When can we start building XAML apps for XBox One?

  • XBox One shell actually written in XAML
  • Not yet available, but we’re now looking at how to make this available

Q: How will apps be published on XBox One?

  • We’ll use Windows Store


8 April, 2014

BUILD 2014 – What’s New for Windows and Windows Phone Developers

Filed under: BUILD 2014 — Sean @ 7:50 pm
Tags: , , , ,

BUILD 2014, San Francisco
What’s New for Windows and Windows Phone Developers (9-001) – Charles Torre, Kevin Gallo

Day 1, 2 Apr 2014, 11:30AM-12:00PM

Disclaimer: This post contains my own thoughts and notes based on watching BUILD 2014 keynotes and presentations. Some content maps directly to what was originally presented. Other content is paraphrased or represents my own thoughts and opinions and should not be construed as reflecting the opinion of Microsoft or of the presenters or speakers.

Charles Torre – Exec Producer – App Experience


Kevin Gallo – Director of Windows Developer Platform
(Partner Director Program Management)

What is Universal app?

  • Write once, run on multiple devices
  • Tuned to each device

Common set of APIs

  • Work across all devices
  • 90-95% of APIs are shared
  • Small number are appropriate to only certain devices (e.g. SMS)
  • Basically the same API that we’ve had in the past

All languages—C#, VB, Javascript, et al

Two major new things

  • Larger subset of API on Windows Phone (90-95%)
  • Project system in Visual Studio supports cross-platform projects (shared template)

For existing Windows Phone apps

  • Written in Silverlight 8.0, doesn’t have access to new APIs
  • But latest version of Silverlight does

How to migrate old apps

  • Upgrade project from 8.0 to 8.1
  • Then have access to all APIs
  • Or use Light Up
    • Keep as 8.0
    • Use reflection to detect 8.1, take advantage of some features
    • App “lights up” when running on 8.1 phone

Q: What’s difference between PCL-based application and Universal app?

  • PCL – subset of APIs that work across libraries; can share just code
  • Universal app – can share XAML, localization, etc.
    • Share more than just code
    • Natural evolution of PCL

Q: Can I make apps by using only HTML5/Javascript?

  • Choices
    • C#/XAML
    • DirectX / XAML
    • HTML5 / JavaScript
  • Flexibility
  • Can mix/match

Q: How to ensure quality apps on Windows devices?

  • Microsoft is providing tools for diagnostics & performances
  • Diagnostics help find bottlenecks
  • Reduces developer time for making great app

Q: Possible to create Universal App from existing WP8 app?

  • Some changes have been made to XAML
  • XAML is more “predictable”
  • Little bit of work to port, but not too bad

Q: Why choose Windows 8 platform over Android/iOS?

  • Not really about choosing
  • Rather, about reaching customer

Q: Do I need to know multiple languages to create a WP app?

  • No

Q: Full .NET on Win RT?

  • No

Q: Upgrade XNA to 8.1?

  • No, we haven’t done that much. Still need to port to DirectX

Q: DirectX 12 on phone?

  • Have not yet announced

Q: Universal App – separate app packages?

  • Yes, because they are different binaries
  • But Project system makes seamless
  • Two targets

Q: Option for devs to use 3rd party Javascript frameworks?

  • Yes, fully support 3rd party libraries
  • Goal is to help devs do cross-platform
  • Contributing WinJS to open source
  • Interop works (very important)

Q: When will SDK be available?

  • RC being released now, RTM later

Q: Some APIs that can’t be shared?

  • Not really
  • Mainly: SMS, printing
  • 90-95% of code will be shared

Q: Universal Apps support DirectX with C#?

  • No, just C or C++

Q: When will XBox One apps use this model?

  • Coming in the future

Q: What device are you using right now?

  • Nokia 1020 as Phone; Surface Pro as development for Windows

Shared Core, Shared Kernel, drivers?

  • We’ve merged Windows, Windows Phone, XBox kernels
  • From APIs down to drivers and kernel

Optimizations for power & memory management?

  • Have tuned for phone, and then every device is faster, due to shared codebase
  • E.g. Shared libs between different apps—they’ll just exist in one place on the phone

Q: Why no VB support for Universal Apps?

  • We do support VB.NET

Q: C++ and managed C++/CLI support for Universal Apps?

  • Same interface for C++ on Windows and Phone

Q: Will Universal App work on Win 7?

  • No. Just Win 8.1, Windows Phone 8.1
  • Stuff replaced is down at the OS level

Q: Can you use JavaScript code for Universal Apps?

  • Yes

Q: Support for 3rd party devs to write kernel drivers?

  • No comment

Q: Use C?

  • Yes

Q: New Live Tile APIs?

  • Can do updating from background a bit better
  • Better experience on tile

Background computing on power-constrained platform is challenging

  • Triggers—in background, CPU can run just a little bit of code when code wakes up
  • Makes app much more interactive
  • Conserves power, but gives user good experience

How granular can toast be? Can we drill down into app after clicking on toast

  • I think so

Action Center

  • Developer can access to see events that have happened in the past

Q: Traditional desktop apps being phased out?

  • Absolutely not
  • Not “phasing out” anybody’s code
  • Leverage investment that you’ve made in these apps
  • Maybe a bit tough to transition to use new technologies
  • Coming—more info on how we’ll stitch these two worlds together
  • Maybe a bit too hard to leverage new stuff in existing apps
  • WinRT Broker is first installment in this set of things to bridge worlds


3 April, 2014

BUILD 2014 – Day 2 Keynote

Filed under: BUILD 2014 — Sean @ 3:39 pm
Tags: , ,

BUILD 2014, San Francisco
Keynote 2 – Scott Guthrie, Rick Cordella (NBC), Mark Russinovich, Luke Kanies (Puppet), Daniel Spurling (Getty), Mads Kristensen, Yavor Georgiev, Grant Peterson (DocuSign), Anders Hejlsberg, Miguel de Icaza (Xamarin), Bill Staples, Steve Guggenheimer, John Shewchuk

Day 2, 3 Apr 2014, 8:30AM-11:30AM

Disclaimer: This post contains my own thoughts and notes based on watching BUILD 2014 keynotes and presentations. Some content maps directly to what was originally presented. Other content is paraphrased or represents my own thoughts and opinions and should not be construed as reflecting the opinion of Microsoft or of the presenters or speakers.

Scott Guthrie – EVP, Cloud + Enterprise


  • IaaS and PaaS
  • Windows & Linux
  • Developer productivity
  • Tons of new features in 2013
  • Lots more new features for 2014

Expanding Azure around world (green circles are Azure regions):

Run apps closer to your customers

Some stats:

Did he just say 1,000,000 SQL Server databases? Wow

Great experiences that use Azure

  • Titanfall
    • Powered by Azure

Video of Titanfall / Azure

  • Data centers all over
  • Spins up dedicated server for you when you play
  • “Throw ‘em a server” – constantly available set of servers
  • AI & NPCs powered by server


  • Titanfall had >100,000 VMs deployed/running on launch day

Olympics NBC Sports (Sochi)

  • NBC used Azure to stream games
  • 100 million viewers
  • Streaming/encoding done w/Azure
  • Live-encode across multiple Azure regions
  • >2.1 million concurrent viewers (online HD streaming)

Olympics video:

Generic happy Olympics video here

Rick Cordella – NBC Sports (comes out to chat with Scott)


  • All the way from lowest demand event—curling (poor Curling)
  • Like that Scott has to prompt this guy—”how important is this to NBC”?
  • Scott—”I’m glad it went well”

Just Scott again

Virtual Machines

  • Can run both Windows and Linux machines
  • Visual Studio integration
    • Create, manage, destroy VMs from VS (smattering of applause)
  • Capture VM images with multiple storage drives
    • Then create VM instances from that capture
  • VM configuration
    • Use frameworks like Puppet, Chef, Powershell
    • Use modules to set various settings
    • Deploy to Puppet Master or Chef Server
    • Spin up server farm and deploy/manage using this master server

Mark Russinovich – Technical Fellow

Demo of creating VM from Visual Studio

  • Create VM
    • Deploy into existing cloud service
    • Pick storage account
    • Configure network ports
  • Debug VMs from Visual Studio on desktop
    • E.g. Client & web service
    • Switch to VM running web service
    • Set breakpoint in web service
    • Connect VS to machine in cloud
    • Enable debugging on VM
    • Rt-click on VM, Attach Debugger, pick process
    • Hit breakpoint, on running (live) service
  • This is great stuff..
  • Create copy of VM with multiple data disks
    • Save-AzureVMImage cmdlet => capture to VM image
    • Then provision new instance from previous VM image
    • Very fast to provision new VM—based on simple Powershell cmd
  • Integration with CM, e.g. Puppet
    • Create Puppet Masters from VM
    • Puppet Labs | Puppet Enterprise server template when creating VM
    • Create client and install Puppet Enterprise Agent into new client VM; point it to puppet master
  • Deploying code into VMs from Puppet Master – Luke Kanies (Puppet Labs)

Luke Kanies – CEO, Puppet Labs

Puppet works on virtually any type of device

  • Tens of millions of machines managed by Puppet
  • Clients: NASA, GitHub, Intel, MBNA, et al

Example of how Puppet works

Puppet demo

  • Puppet module, attach to machines from enterprise console
  • Deploy using this module
  • Goal is to get speed of configuration as fast as creation of VMs

Daniel Spurling – Getty Images

How is this (Azure) being used at Getty?

  • New way for consumer market to use images for non-commercial use
  • The technology has to scale, to support “massive content flow”
  • They uses Azure & Puppet
  • Puppet – automation & configuration management
  • Burst from their data center to external cloud (Azure only for extra traffic)?

Back to Scott Guthrie

Summary of IaaS stuff:

Also provide pre-built services and runtime environments (PaaS)

  • Focus on application and not infrastructure
  • Azure handles patching, load balancing, autoscale

Web functionality

  • Azure Web Sites

  • Push any type of application into web site
  • AutoScale—as load increases, Azure automatically scales
    • Handle large spikes
    • When traffic drops, it automatically scales back down
    • You save money
  • Staging support
    • Don’t want site in intermediate state, i.e. always available
    • Create Staging version of web app
    • Used for testing
    • Once tested, you push single command (Swap), rotate Production/Staging
    • Old Production still there, in case something went wrong
  • WebJobs
    • Run background tasks that aren’t HTTP response threads
    • Common thing—queue processing
    • So user response better because you just submit task to queue, then later process it
    • WebJobs—in same VM as web site
  • Traffic Manager
    • Intelligent customer routing
    • Spin up multiple instances of site across multiple regions
    • Single DNS entry
    • Automatically route to appropriate geographic location
    • If there’s a problem with one region, it automatically fails over to other regions
    • For VMs, Cloud Services, and Web Sites

Demo – Mads Kristensen

Mads Kristensen

ASP.NET application demo

  • PowerShell editor in Visual Studio
  • Example—simple site with some animated GIFs (ClipMeme)
  • One way to do this—from within Browser development tools, change CSS, then replicate in VS
  • Now—do change in Visual Studio
    • It automatically syncs with dev tools in browser
    • BrowserLink
  • Works for any browser
  • If you change in browser tools in one browser, it gets automatically replicated in VS & other tools
  • Put Chrome in design mode
    • As you hover, VS goes to the proper spot in the content
    • Make change in browser and it’s automatically synched back to VS
  • Example of editing some AngularJS
  • Publish – to Staging
    • Publishes just changes
    • “-staging” as part of URL (is this configurable? Or can external users hit staging version of site)
  • Then Swap when you’re ready to officially publish
    • Staging stuff over to production
  • WebJobs
    • Run background task in same context as web site
    • Section in Azure listing them
    • Build as simple C# console app
    • Associate this WebJob with a web site
    • In Web app in VS, associate to WebJob
    • Dashboard shows invocation of WebJob, with return values (input, output, call stack)
    • (No applause??)
  • Traffic Manager
    • Performance / Round Robin / Failover
    • Failover—primary node and secondary node
    • Pick endpoints
    • Web site says “you are being served from West US”—shows that we hit appropriate region

Back to Scott

Summary of Web stuff:


  • Including SSL cert with every web site instance (don’t have to pay Verisign)


Every Azure customer gets 10 free web sites

Mobile Services

  • Develop backends with .NET or Node.js
  • Can connect to any type of device
  • Data stores supported: Table Storage, SQL Database, Mongo DB (No SQL)
  • Can push messages to devices
    • Notification hubs – single message to notification hub, then broadcast to devices
  • Authentication options
    • Facebook, Google, now Active Directory
    • Uses standard OAuth token – use to authenticate on your service
    • Can use same token to access Office 365 APIs
    • Works with any device (iOS, Windows, Android)

Yavor Georgiev

Demo – Mobile Services

Mobile Service demo

  • New template for Mobile Service (any .NET language)
  • Built on Web API
  • E.g. ToDoItem and ToDoItemController
  • Supports local development
  • Test client in browser
  • Local / Remote debugging work with Mobile Services

Demo – building app to report problem with Facilities

  • FacilityRequest app
  • Using Entity Framework code-first with SQL database
  • Mobile Services Table Controller
  • Derives from TableController<T>
  • Add authentication to API by adding attribute to controller (assume service already supports Active Directory)
  • Publish – deploy to service
  • App logic put in portable class library – can use on a variety of platforms
  • Authentication
    • Use Active Directory authent library—gives you standard login user experience
    • After login, pulls Active Directory assets into client
  • Can integrate to SharePoint
    • Call out to Office 365 via REST API
    • SharePointProvider

Another great Microsoft demo line: “it’s just that easy”

More demo, Xamarin

  • Portable library, reuse with Xamarin
  • iOS project in Visual Studio
  • Run iPhone simulator from iOS
  • Switch to paired Mac
  • Same app on iOS, using portable class library

Yavor has clearly memorized his presentation—nice job, but a bit mechanical

Back to Scott alone

Azure Active Directory service

  • Active Directory in the cloud
  • Can synch with on premises Active Directory
  • Single sign-on with enterprise credentials
  • Then reuse token with Office 365 stuff

Grant Peterson – CTO, DocuSign

Demo – DocuSign

  • Service built entirely on Microsoft stack (SQL Server, C#, .NET, IIS)
  • Take THAT, iPhone app!
  • 3,000,000 downloads on iPhone so far
  • Can now authenticate with Active Directory

  • Then can send a document, etc.
  • Pull document up from SharePoint, on iPhone, and sign the document
  • He draws signature into document

  • Then saves doc back to     SharePoint
  • His code sample shows that he’s doing Objective C, not C#/Xamarin

Back to Scott

  • Scott confirms—you can use Objective C and have Active Directory API
    • iOS, Android SDK

  • Offline Data Sync !
  • Kindle support

Azure – Data

  • SQL Database – >1,000,000 databases now hosted

SQL Server improvements

  • Increasing DB size to 500GB (from 150GB)
  • New 99.95% SLA
  • Self service restore
    • Oops, if you accidentally delete data
    • Previously, you had to go to your backups
    • Now—automatic backups
    • You can automatically rollback based on clock time
    • 31 days of backups
    • Wow !
    • Built-in feature, just there
  • Active geo replication
    • Run in multiple regions
    • Can automatically replicate
    • Can have multiple secondaries in read-only
    • You can initiate failover to secondary region
    • Multiple regions at least 500 miles away
    • Data hosted in Europe stays in Europe (what happens in Brussels STAYS in Brussels)
  • HDInsight
    • Big data analytics
    • Hadoop 2.2, .NET 4.5
    • I love saying “Hadoop”

Let’s talk now about tools

.NET improvements – Language – Roslyn

Anders Hejlsberg – Technical Fellow


  • Compiler exposed as full API
  • C#/VB compilers now written in C# and VB (huh? VB compiler really written in VB??)

Demo – C# 6.0

  • Static usings
    • You type “using Math”
    • IDE suggests re-factoring to remove type name after we’ve adding using
  • Roslyn helps us see preview of re-factored code
  • Can rename methods, it checks validity of name

Announcement – open-sourcing entire Roslyn project

  • Looking at source code—a portion of the source code for the C# compiler
  • Anders publishes Roslyn live, on stage ! (that’s classy)

Demo – use Roslyn to implement a new language feature

  • E.g. French-quoted string literals
  • Lexer – tokenizing source code
  • ScanStringLiteral implementation, add code for new quote character
  • That’s incredibly slick..
  • Then launch 2nd instance of Visual Studio, running modified compiler
  • Holy crap
  • Re-factoring also automatically picks up new language feature

Can now use Roslyn compilers on other platforms

Miguel de Icaza – CTO, Xamarin

Demo – Xamarin Studio

  • Xamarin Studio can switch to use runtime with Roslyn compiler
  • E.g. pick up compiler change that Anders just submitted to Codeplex

Miguel gives a C# t-shirt to Anders—that’s classic

Back to Scott

Open Source

  • .NET foundation –
  • All the Microsoft stuff that they’ve put out as open source

  • Xamarin contributing various libraries
  • This is good—Microsoft gradually more accepting of the open source movement/community

Two more announcements

New Azure Portal

  • Scott mentions DevOps (a good thing)
  • First look at Azure Management Portal
  • “Bold reimagining”

Bill Staples – Director of PM, Azure Application Platform

Azure start board

Some “parts” on here by default

  • Service health – map
  • Can I make this a bit smaller?
  • Blade – drilldown into selected object – breadcrumb or “journey”

  • Modern navigational structure
  • Number one request—more insight into billing

  • “You’re never going to be surprised by bills again”
  • Creating instances:

  • Browse instances

Demo – Set up DevOps lifecycle

  • Using same services that Visual Studio Online uses
  • Continuous deployment—new web site with project to deploy changes

  • Open in Visual Studio
  • Commit from Visual Studio—to local repository and repository in cloud
  • Drill down into commits and even individual files
  • Looking at source code from portal

  • Can do commits from here, with no locally installed tools
  • Can do diffs between commits
  • Auto build and deploy after commit
  • “Complete DevOps lifecycle in one experience”

DevOps stuff

  • Billing info for the web app
  • Aggregated view of operations for this “resource group”
  • Topology of app
  • Analytics

  • Webtests – measure experience from customer’s point of view

  • “Average response time that the customer is enjoying”
  • Can re-scale up to Medium without re-deploying (finally!)

  • Database monitoring
  • I just have to say, that this monitoring stuff is just fantastic—all of the stuff that I was afraid I’ve have to build myself
  • Check Resource Group into source code – “Azure Resource Manager Preview”

PowerShell – Resource Management Service

  • Various templates that you can browse for various resource groups
  • E.g. Web Site w/SQL Database
  • Basically a JSON file—declarative description of the application
  • Can pass the database connection string from DB to web app
  • Very powerful stuff
  • Can combine these scripts with Puppet stuff

Azure portal on tablet, e.g. Surface

  • Or could put on big screen
  • Here’s the Office Developer site

  • Can see spike in page views, e.g. “what page was that”?

Azure Gallery:

“Amazing DevOps experience”

Back to Scott


  • New portal
  • Resource Manager – single deployment of a resource group
    • Can include IaaS and PaaS pieces
  • Visual Studio Online general availability

Get started –

Steve Guggenheimer – Corp VP & Chief Evangelist, Microsoft

Dialog starts with type of app and devices

Areas of feedback

  • Help me support existing investments
  • Cloud and Mobile first development
  • Maximize business opportunities across platforms

Should at least be very easy to work with “common core”:

“All or none”? — not the case

John Shewchuk – Technical Fellow


Support existing technologies

  • Desktop Apps
    • WinRT, WPF (e.g. Morgan Stanley)
    • Still going to build these apps in WPF

Demo – Typical App, Dental thing

  • Standard WPF app
  • Notice appointments in Office 365 for dentist
  • Active Directory in cloud is one of the big enablers
    • Full access to users’ calendar
    • Set ClientID GUID to hook application to Active Directory
  • WPF app that talks to Office 365 calendar service

New Office 365 APIs:


Demo – VB6 app – Sales Agent

  • VB6 App to Win Forms app
  • WebMap 2 transformation – UI projected out as HTML5
    • Win Forms form running as HTML5
  • Then move same app to phone

Internet of Things:


Demo of Flight app for pilots, running on Surface:

  • Value is—the combination of new devices, connecting to existing system


  • Building complimentary set of services

Flipboard on Windows 8

  • Already had good web properties working with HTML5
  • Created hybrid app, good native experience
  • Brought app to phone (technology preview)

  • Nokia 520, Flipboard fast on cheap/simple phone (uses DirectX)

Foursquare – tablet and Windows Phone app

  • Win Phone Silverlight 8.1
  • Geofences, little program packaged with app
    • Run operation goes to see nearby venues
    • E.g. Person goes to a geo location and live tile for Foursquare app pops up content

App showing pressure on foot – Heapsylon Sensoria socks

John Gruber – Daring Fireball

  • Video – partnership

  • Vesper – Notes app
  • Using Mobile Services on Azure
  • Wow—we’ve got John Gruber evangelizing about Windows? Whoda-thunkit!

Gobbler – service for musicians and other “Creatives”

  • Video

  • Communication between musicians and collaborator
  • DJ/Musician – sending files back and forth without managing data themselves
  • Everything on Azure – “everything that we needed was already there”

Gaming – PC gaming, cloud assistance

  • Destroying building, 3D real-time modeling
  • Frame rate drops
  • Overwhelms local machine (even high-end gaming gear)
  • But then run the same app and use cloud and multiple devices to do cloud computation
  • Keep frame rate high
  • Computation on cloud, rendering on client (PC)

Cloud-assist on wargaming game on PC:

Demo – WebGL in IE, but on phone:

Babylon library (Oculus):

  • Oculus rift, on PC, WebGL
  • Running at 200Hz

Cross-platform, starting in Windows family, then spreading out

  • Fire breathing with a 24 GoPro array
  • Video

  • Not really clear what’s going on here.. Skiing, guy with tiger, etc.
  • What’s the connection to XBox One and Windows 8?
  • Ok, In App purchases ?

Doodle God 2 on XBox:

  • Also running on PC
  • C++ / DirectX
  • Same set of files, running on Phone, XBox, PC
    • Just a couple of minor #ifdefs
  • Take an existing investment and spread it across multiple environments
  • Use cloud to connect various aspects of game together

Partnership with Oracle, Java in Azure

  • Demo in Azure portal
  • Click Java version in web site settings
  • Java “incredibly turnkey”

Accela demo

  • They want to create app powered by Accela data
  • Split out pieces of URL
    • data – from
    • news – elsewhere
    • etc
  • Common identity across many services
  • Code is out on codeplex
  • Application Request Routing (ARR)

Make something in Store available as both web site and app

  • New tool – App Studio – copy web site, expose as App
    • Then drop app into Store
  • App Studio produces Web App template
    • Driven by JSON config file
  • Challenges in wrapping a web site
    • What do you do when there is no network?
    • App just gets big 404 error
    • But you want app responsive both online and offline
  • New feature – offline section in Web App template
    • useSuperCache = true
    • Store data locally
    • Things loaded into local cache
    • THEN unplug from network
    • Then fully offline, but you can still move around in app, locally cached
  • Do the same thing, app on Windows phone
    • Dev has done some responsive layout stuff
  • Then Android device
    • Same web app runs here

Zoopla app on Windows Phone

  • Can easily take web content, bring to mobile app
  • Include offline

Xamarin – Bring Windows app onto iPad

  • Windows Universal project
  • Runs on iPad, looks like Win 8 app with hub, etc.
  • Also running on Android tablet
  • How is this working? HTML5?

Stuff available on iOS and Android:

All done!








2 April, 2014

BUILD 2014 – Day 1 Keynote

Filed under: BUILD 2014 — Sean @ 2:25 pm
Tags: , , , ,

BUILD 2014, San Francisco
Keynote 1 – Joe Belfiore, Nick Hedderman, David Treadwell, Kirk Koenigsbauer, Harry Pierson, Terry Myerson, Stephen Elop, Satya Nadella

Day 1, 2 Apr 2014, 8:30AM-11:30AM

Disclaimer: This post contains my own thoughts and notes based on watching BUILD 2014 keynotes and presentations. Some content maps directly to what was originally presented. Other content is paraphrased or represents my own thoughts and opinions and should not be construed as reflecting the opinion of Microsoft or of the presenters or speakers.

… missing content, due to Livestream being unavailable at start of Keynote …

Belfiore is showing off Cortana

Love that Joe is struggling to get Cortana to recognize his voice.. “Vagaries of a service that’s alive”

Future of Halo game? Cortana says sorry, you don’t have access to that info

Pretty sure that was a canned response

Love that Cortana is being sold as a “she”—competing with Siri, clearly. And targeting young white techie males and guys who enjoyed the movie “Her”

Nice that they talked to “real-world personal assistants”

People reminder

The next time I talk to so-and-so, ask her about her puppy.

  • But will the phone chirp in and say this out loud?

Using Cortana to tell Hulu to add something to his queue

  • Natural language

“What’s up with Terry”?

Cortana was on the Tonight Show?

Cortana is the first truly personal digital assistant


Nick Hedderman – Windows Phone 8.1

Various interesting things ..

Joe Belfiore

Joe is back, joining Nick.. 11:12am


  • Added various abilities
  • Partner ecosystem
  • Windows experience comes to life across variety of devices
  • Windows Phone is the right choice for business

Joe – Features Added to Windows Phone 8.1

Quick sampling of features put in to make you smile

Enhancements to Store experience

  • Happier finding apps

Pan left—”FOR YOU” area with recommendations

Also quick links, e.g. “New and Rising Apps”


Next—new calendar

  • Swipe to right to get to next day

For developers, have reimplemented using the public dev API only


Improve basic performance of Windows Phone

  • WiFi Sense – Suggest “good” WiFi spots

Can automatically sign-in without user intervention

Another scenario

  • Having to give friends your WiFi password
  • You can securely share your WiFi password with your friends
  • WiFi Sense Service lets them sign into hotspot, gives them access only to Internet
  • Don’t have to tell them the password

His sister calls:

Ahh, Cortana says—ask her about her new puppy.

Can elevate to Skype call

Nicely scripted—funny—”your new puppy is beautiful”.

Joe’s favorite feature in Windows Phone 8.1

  • Enhancements to WordFlow keyboard
  • Learns what you type
  • Much better in Win Phone 8.1
  • Addition of shape writing

Wow—incredibly fast

Outrageously fast typing, actually.

Here’s a video showing use of the keyboard, world record for typing on phone keyboard.

  • Beating Galaxy S4

WordFlow keyboard is now world-record holder for fastest typing on a smart phone.


How does Win Phone 8.1 work with Windows?

  • Auto upload to OneDrive (oops—started to say SkyDrive—laughter)


  • Password for WiFi shared
  • Theme color, etc.
  • IE11, now part of Win Phone 8.1
    • New reading mode

“Many, many delighters”

When will people get Win Phone 8.1?

  • Update in next few months to consumers
  • Pre-installed on new phones, starting in late-April
  • Will hear more about new phones later
  • David Treadwell will have something for you (in audience)

Love Joe’s red shoes

Windows 8.1 Update

  • On desktop, focus on mouse/keyboard
  • Boot/resume straight to desktop

Bing showing things that he told Cortana about

Enterprise Mode in IE11

  • Change user agent string et. al. to mimic IE 8, for legacy sites
  • IT managers can set list of sites that should auto-trigger this setting in IE11
  • Mix of modern rendering for new sites, older rendering within enterprise
  • Easier story for deploying on PCs in enterprise

UI improvements for mouse/keyboard

  • Taskbar
    • Have Title bar, Minimize icon in Modern apps (at least he didn’t say “Metro”)
    • Switch between Modern apps and Win 32
    • Same switching model for all apps
    • Polite applause
    • “Work that we did to make touch great is unaffected by these changes”

  • Start screen
    • PC Settings tile
    • Power button (the death of Charms?)
    • Right-click context menu: Unpin from Start, etc. (Microsoft is going back to these familiar paradigms, kicking and screaming)

Pre-pinning Store app to Taskbar

  • Likely because some users never found the Store app

When people search, make your apps more prominent—i.e. apps in Store show up in Search

New apps highlighted now in the All Apps list

Update will be available 8-Apr

“Windows 8.1 Update”

Have a terrific BUILD conference

Cortana introduces David


David Treadwell – Corp VP, Operating Systems Group

What we’re doing for developers in OS, tools, etc.

  • David has been at Microsoft for 25 year

  • Wrote Sockets layer for Windows NT

  • David describer driver architecture to prove he’s got “dev chops”
  • “Another freaking driver” (probably he said something else)
  • WinSock.dll and driver’s name became “AFD” (Another Freaking Driver)
  • Wow, this is going long
  • He named it the “Ancillary Function Driver”
  • To this day, afd.sys
  • Geez, that was a long joke

Three main areas where we’re listening to you as developers

  • Some secondary audio track is kicking in here
  • So I missed this, grr.

We all want same app experiences across all devices

Introducing Universal Windows apps

Use common code across phones, tablets, desktops

  • First in industry to make it easy to build apps across all these devices

User Interface

  • One app running across all form factors; should adapt GUI automatically
  • Adapt one design across devices
  • Tailor experience to the form factor

  • Bulk of the code is the same across all devices

App Model

  • Based on Windows Runtime

  • Use the programming language that you love

Kevin Gallo – Visual Studio

Is “Universal App” taken from iOS? I.e. iPhone/iPad

Visual Studio demo

  • Windows Phone 8.1 target
  • Kevin should talk to Hanselman about how to zoom in on app during a demo

Code moved into shared project, including XAML

Hub control is universal control

  • So you can use it for all devices, e.g. Phone, PC

Ignore warnings, “like most of you probably do as well” – big laugh

Hmm, does Win Phone emulator crash Office 365 for him as well?

Need to now tune app for the device

  • And add device-specific features
  • Different user controls for various views

This is the part where the journalists/bloggers doze off and the devs sit up and take notice


Quickly switch context to another device:

Two key features

  • Build Universal Apps
  • Share some/all code and do tuning per-device


Dave Treadwell is back

Have streamlined the Store experience around Universal Apps

  • Shared App identities
  • Can buy just one app for multiple platforms
  • Universal App badge to indicate that experience is the same across devices
  • “Host of other improvements”
  • Submitting apps to Store is 50x faster (what does this mean? Process?)


Let’s take a look at Cortana in Visual Studio 2013

  • Sorry Dave, I can’t do that
  • Another poor joke


Kirk Koenigsbauer – Corp VP, Office

Bring forward Office experience to Modern platform

Open a file and open a document.

“Unmistakenly Office experience”

  • Touch-first Ribbon

Every document should open flawlessly on any platform

  • Includes Smart Art, text, graphics, etc.
  • Full fidelity of Office experience

Blazingly fast

  • Built on DirectX


  • Touchpoints on Ribbon are big

Automatically constantly saving to OneDrive in cloud

  • Unlimited Undo via unlimited versions

Presentation mode, transition effects:


Inking with finger:


Taking advantage of Windows Runtime

  • Look at same application on Phone (as what was on tablet)

Phones, tablets, PCs, large screens


Dave again

We’ve added hundreds of new features to Win Phone 8.1:

What it means for existing Win Phone apps

  • Silverlight Phone 8.0 apps will continue to run
  • Update to Silverlight Phone 8.1 app to get new features
  • Or migrate to Universal Windows App

App voice commands powered by Cortana:

Love it when the stream stutters: “The power of Cortana, power of Cortana, power of Cortana”

Another speech recognition demo

New tweet, hashtag cortana hashtag awesome

“Well, we were close”

Existing enterprise apps

  • Win 8.1 update, reuse more of your existing code

Harry Pierson – Operating Systems Group

Gosh, he doesn’t look like an Enterprise App developer

Let’s look at old enterprise app:

Windows tablets run Windows

  • This app runs on SQL Compact
  • Can run on x86 compatible tablet
  • But won’t be good user experience—since designed for keyboard/mouse
  • We want a touch-first version
  • But don’t want to throw away code

Brokered Components feature

  • Looking at code that interacts with database
  • New DLL for RT that runs old-style DLL in brokered mode
  • Underlying DLL has full access to Windows
  • For side-loaded apps only
  • Nice way to “cheat” Win RT constraints and get at old-style stuff like local data access, outside of WinRT

Every good Microsoft demo starts with the words “All I had to do”..


Dave Treadwell back

Third major theme of talk

  • How Windows enables cross-platform apps
  • We’re working hard to make cross-platform work better for everyone
  • Critical need in today’s world
  • “We want to help you with that”
  • We want to contribute to that world (of course you do)

Developers using Unity published 3,000 apps in 9 mos in Windows Store

  • ?

HTML/Web is one of the most important cross-platform technologies

  • Brought to phones
  • Access latest HTML5 stuff
  • E.g. WebGL – hardware-accelerated 3D graphics (no applause)
  • Media Source extensions, adaptive bit-rate streaming
  • As he said “streaming”, he stuttered
  • “Huge” for your productivity

HTML will continue to be big way to do cross-platform

Is he saying all of this to assure us that Miguel isn’t the complete king-of-the-hill now?

Web-based fish aquarium demo

  • 3D graphics benchmark
  • WebGL using hardware acceleration

Inline video playback:


  • Infrastructure for high-quality modern apps
  • Works alongside other Javascript libraries
  • Going cross-platform and open source

  • Open source under Apache 2.0 license
  • Is this Microsoft throwing WinJS into the recycling bin?

I showed you three things

  • Reach customers across multiple devices
  • You need to deliver apps/services on other platforms


  • Win 8.1 update available today
  • Visual Studio 2013 update 2 RC available today
  • Win Phone 8.1 Dev preview – registered Win Phone app devs can download/install on their existing Win Phone 8 devices


Terry Myerson is back

Main feedback at BUILD—share your roadmap

  • What’s coming?

Here’s some stuff that’s coming in the future (not available today)

Universal apps on all Windows devices

  • What about TV?
  • Xbox is the best TV experience
  • Used on 80,000,000 televisions
  • XBox One – avg user is using 5 hrs/day (I know this guy)
  • We’ll do Universal Apps running on Xbox

Demo – educational content videos – Khan Academy

  • Have shown tablet and Win Phone
  • Now—XBox

Hmm, it just looks like the tablet (which is the point):

Shared code in shared part of project

I can use Visual Studio—just look at my hands!

Do these 5-hrs-a-day guys really want to run the Khan Academy app? Doubtful.

“One interaction model across platforms”


  • At first, “hey pretty neat”
  • Took home, played games with kids
  • Whole new way of interacting with computer
  • Important to bring Kinect to PC—Kinect for Windows a while back
  • 400,000 active devs with Kinect (really?)

Today—Kinect v2 for Windows

  • Uses new sensor included in XBox One
  • Skeletal tracking, facial tracking, gesture recognition
  • Good in low light
  • Not just games

Two companies in video, using Kinect

  • Physical Therapy
  • “Freakin’ Genius”—bring art of animation to everyone

Umm, is this what we want?

To be honest, I don’t want my doctor using Kinect

Terry is back

  • “I really think you should explore this”
  • These cameras are going to become pervasive


  • XBox One graphics are phenomenal

  • XBox has low-level control that allows access to this graphics technology

Make this technology available on every platform

  • Bring into DirectX 12 and bring DX12 onto every device
  • Same graphics platform on every device (he has to beg for applause at this point)

Looks like somebody just discovered parallel algorithms.

Asked Turn 10 Studios (Forza) to look at DX12 on PC

Forza on PC


Internet of Things

  • Oh crap, here it comes.
  • Intel’s Galileo board, with full x86 system-on-chip
  • “PC runs on something the size of an eraser”

Built step-on-floor piano using Galileo

  • “Piano that runs Windows”
  • See? This is why we don’t want/need the Internet of Things
  • Telnet into Piano (yikes)
  • Playing Heart and Soul by running an app

Attach debugger to piano

Joe B. dances on piano as debugger spits out Trace statements (so WHY did we do this)?

Things are connected to the Internet

  • Piano is feeding data back to Azure data service
  • Hey, Joe knows Heart and Soul. And he saw “Big”

“The devices that we are programming to are going to change”


(Isn’t he 10 mins over at this point?)


Windows Desktop

  • “All in with this Desktop experience”
  • Universal Apps can run in a window

New Start Menu

Available to all Windows 8.1 users, as an update (audience actually GASPS)

When Windows for Internet of Things is available, it will be FREE

We’re officially watching an Infommercial


Free XBox One to everyone in the audience

BIG cheers. Oh wait, every geek in the audience already has one.

And a $500 g.c. for a new device.

Beliefs that guide as

  • We believe in natural user interface (gestures, voice)
  • We believe in Internet of Things
    • As screens get smaller, the cloud gets bigger
  • We believe in all of you (starting to feel like a Gary Cooper film)


Stephen Elop – Exec VP Nokia

“In just a few days or weeks”.. (joining Microsoft)

Spark is lit by Windows Phone 8.1

  • Nokia Lumia devices are best way to light up that experience
  • Existing Lumia devices get better with 8.1

I.e., All existing Win Phone 8 devices

  • E.g. Lumia 520 running Win Phone 8.1
    • Best phone at its price point
  • Lumia 1520 fully loaded with 8.1
  • Adding some extra colors in coming days

Introduce next generation of Lumia devices

  • Lumia 930

  • Build on/for Win Phone 8.1
  • Elegant
  • Vibrant new colors
  • 5″ full HD display, amazing readability

  • 20MP PureView camera; optical image stabilization
  • Zeiss optics
  • Creative Studio
    • Filters, sharing

  • Living Images, storyteller – video
    • Music in background
    • Mix of images and video
    • Share to social networks
  • Cinematic video experiences
    • 4 high-perf digital microphones
    • Surround sound capture
    • Or focus sound with directional stereo recording
  • Microsoft services well integrated into Lumia
    • OneDrive (Stephen’s a pro—he didn’t even come close to saying SkyDrive)
  • 2.2GHz SnapDragon 800 quad-core
    • “Just rocks”
  • Avail in June, in Europe, Asia
  • In US, focused on continuing with Icon
    • And 1520
    • Sad face, no US availability?!
  • Around $599 before subsidies

Lumia 630, 635

  • Uncompromised, lower price points
  • Five colors, changeable shells
  • 3G single SIM or 3G dual-SIM
  • 3 column, even on smaller screen


  • Separate call history (or you can merge them)
  • In Contacts, can specify which SIM to use for calling that person

Cortana available on all Win Phone 8.1 devices

  • Bringing Cortana to all price points

Equivalent of fitness band

  • Sensor Core – tracks motion/location

Nokia stuff

  • Nokia MixRadio
  • HERE Maps

Lumia 630, 635

  • QuadCore
  • First devices with Win Phone 8.1 – in May
  • Lots of operator support
  • In US by July
  • 640 3G single SIM: $159 ($169 dual-SIM) ($189 4G)

Two new SDKs

  • Imaging SDK 1.2
  • SensorCore SDK (motion-based apps)



Satya Nadella – New CEO

Major applause

Where’s my Keynote?

Mobile-First, Cloud-First

Satya answering developer questions, gathered by Evangelism group

  • Will play and Satya will respond

Q: Android dev, wondering why he should build for Windows

A: We’re going to innovate with a challenger mindset

  • Every dimension—hardware, software
  • Bring IT, users, and devs together
  • Create “developer opportunity”
  • Opportunity for developers is expanding
  • Microsoft betting on this platform


Q: How will apps developed on MS platforms port to other platforms?

A: Make is possible for every dev to bring assets to other platforms

  • That’s the principle
  • APIs with language bindings across native/managed/web
  • Can build core libraries in language of choice and then move to other platforms
  • PhoneGap, Xamarin, Unity (this is key—not just Miguel, but this is the full set of partners)


Q: Stanford CS Major – What are you doing to compete against Apple and Google in tablets?

A: Apps as well as great price points

  • 8.1 update is big milestone
  • Tablets across full price range
  • Surface—continue to innovate the most productive tablet out there
  • Competitiveness—what is role of tablet in user’s “device family”
  • Consistency for user and consistency for developer, across devices
  • Want users to think about “Windows family of devices”


Q: UX Designer – Where do you see UX Design in 5 years?

A: Have come a long way with design and User Experience

  • Great team, doing awesome work (live tiles)!
  • Mentions Bill Buxton
  • Natural user interfaces—context—who/what/where/when defines UI
  • E.g. Speech is best interface for car

Q: Architect – How will MS support vendors in designing for Cloud?

A: Stay tuned, the Gu speaks tomorrow

  • What does it mean to build native Cloud app?
  • E.g. Back-end for Titanfall
  • Plan for Scale Out from Day 1
  • Middle-tier stateless
  • Hey, Cloud is what Satya knows best!
  • Message passing between public/private clouds
  • Important to understand the platform
  • Tooling, samples, etc.

Q: Avoid having to relearn for each product?

A: For sure

  • Universal App is first step in this direction
  • 90% of the APIs are now consistent between phone/tablet/PC
  • We’re fixing it
  • Pretty big focus for us

Q: What is the plan to deal with latency in the cloud?

A: It’s a big issue

  • Speed-of-light issues
  • Need to design your apps for it
  • We’re doing a lot in this area
  • Data Centers
  • 1 Billion users on any given day
  • Caching storage
  • Improve latency
  • Lots of networking infrastructure
  • Geo-distributed apps

Q: How can Microsoft help startups?

A: Important to us

  • Look at BizSpark
  • Accelerators
  • Great to be engaged with startups from early point

Q: What is Microsoft’s main Vision, going forward?

A: Thrive in this word of mobile-first, cloud-first

  • Ubiquitous computing
  • Machine learning, HCI, etc.
  • Goal is to build platforms, create best end-user experience
  • And IT infrastructure

Cortana asks: will you become “Master Chief Executive Officer”?

Cortana: Would you like exit music?

23 January, 2013

Why I Turned Off WordAds

Filed under: Miscellaneous — Sean @ 2:26 pm
Tags: , ,

Below is a letter that I recently sent to WordPress support, on the occasion of my turning off WordAds on two of my blogs.  The attachments that I mention, examples of ads on my blogs, appear after the content of the letter.


23 Jan 2013

I host two blogs on WordPress for which I signed up in the WordAds program.

I’m going to disable WordAds in both cases, based on the type and style of ads that are being shown.  But I thought it fair to share some thoughts with you, related to why I’m turning off WordAds.

The blogs are: and

Both of these blogs are quite small, in terms of traffic.  The first blog gets around 10,000 hits/mon, with just under 12,000 impressions in the most recent month.  The second blog is around 20,000 hits/mon, with just under 20,000 impressions in Nov, 2012.

Given how tiny these blogs are, in terms of traffic, I realize that WordPress won’t care all that much whether or not I host ads.  But I’d still like to share some quick thoughts on the ads being served, since this applies to any of your blogs serving WordAds.

My main complaints with the ads being served are:

  • They don’t look like ads  (e.g. ad consists solely of embedded YouTube video)
  • Ads are not separated from my blog content in any way, e.g. with a border
  • Ads aren’t relevant to my readers
  • Multiple ads leads to the web page being cluttered
  • The visual style of the ads cheapens my blog / brand

What I’d hope for with ads are ads that follow the more traditional design guidelines of print ads a little more closely.  I.e. They are clearly offset by a border and marked as an ad and they clearly contain a brand image for the item or service being advertised.  Ads that contain other content, like images from YouTube videos and giant Download buttons, overpower the content of my blog and also confuse the reader by appearing to be part of my content, rather than an ad.  (See attached images for examples, from my blog).

There are all sorts of ads served on the web.  Some are very tasteful and elegant, some less so.  I’m disappointed that the ads served up via WordAds are consistently in the latter category.  An ad should not actively try to pull the reader’s attention from the content and it should definitely not try to “trick” the reader into doing so (e.g. large download buttons).  Rather, professional ads should respect the reader by being clearly marked as an ad, displaying the relevant brand, and trusting that the reader will read the ad if they are interested in the product or service.

As a blog author, my main request in the area of ads is that they appear to be at least as professional and tasteful as my blog itself.  Since the ads served by WordAds are failing to live up to that expectation, I’m going to turn them off.  WordPress does host many blogs that I would consider to be well-designed and tasteful.  Your themes are also beautifully designed, with a very professional look.  But the ads that you’re currently serving don’t rise to that standard.  They cheapen not only the individual blogs that serve the ads, but the WordPress brand itself.

I realize that serving web-based ads is a tricky business to be in.  Wordpress needs to make money, as do the vendors serving the ads.  And given the state of web-based ads, it’s easy to serve up the same sort of ads that the other guys serve.  But given the strength and respectability of the WordPress brand, I would hope that you’d set the bar a little bit higher.  WordPress is already a leader when it comes to hosting blogs.  With some changes to the ads that you serve, you could also be a leader in the area of served ads, setting an example for other content producers on the web.

Thanks for taking the time to read this and to consider my thoughts.

Sean Sexton

130123 - Ad Complaint  130123-Ad2

8 November, 2012

BUILD 2012 Notes – The Microsoft Design Language – Tschumy

BUILD 2012, Redmond, Day 1, 30 Oct 2012, 2:15PM – 3:15PM

Will Tschumy

Principal user Experience Advisor




Why I joined Microsoft

  • In 2003, Microsoft made strategic investment in design
  • User experience thinking, re-design of Microsoft Word
  • Results: Office 2007 was fastest selling, most critically acclaimed version of Office
  • $20 billion / year bet on design


Next: Launch of Windows Phone 7


In 2007, same design language on XBox

  • Single consistent design language across all screens: phone, desktop, XBox


For Microsoft, our design principles are the language for our experiences

  • For customers–confidence, comfort & familiarity
  • Brings us together


Windows 8 start screen:


Weather app:


No chrome, edge to edge, all about content


The core idea

  • Content before chrome


Windows 8, did a lot of research

  • Asked Windows & OS X users what they remembered about using Windows
  • They drew the chrome
  • Then play with Win 8 prototype
    • Drew content in rectangles
  • With Windows 8, main thing users remembered was the content
  • Get OS out of the way of the users so that content can come through


Edges are important


Easy to get to edges, so we put controls there (charm bar, application bar)

  • Helps get chrome out of the way


Started thinking about monitors being sold

  • Most are widescreen
  • So flow content horizontally
  • Semantic zoom–no extra navigation for user


Five principles of Microsoft design

  • Pride in craftsmanship
  • Be fast and fluid
  • Authentically digital
  • Do more with less
  • Win as one


Pride in craftsmanship

  • Attention to detail: Every pixel counts
  • Safe/reliable – behave properly on other devices
  • Balance, symmetry, hierarchy
    • Built on 20×20 pixel grid
    • Skeleton on which to hang content
    • Placement on grid shows hierarchy
    • App will scale properly, no sub-pixel rendering
  • Tiles don’t need to be uniform
  • Doesn’t have to be rectangles
  • Can cheat margins, but do it deliberately
  • Sample apps  (Hulu Plus pushes off margins)



Be fast and fluid

  • Design for touch – touch first
  • Responsive – important when touching, must be responsive
  • Intuitive interaction – because of touch
    • Drag things in, drag things out
  • Immersive and compelling
  • Delight with motion
  • Life is mobile


Demo – Start experience, Netflix, Photos


  • Start Screen is very responsive; stuck to finger



  • Animation library – lots of little subtle gestures
  • Arrow drops down menu


Photos app

  • Very responsive
  • Pinch out, get to larger view, see more photos
  • Ghost effect
  • Sense of quality, elegance


Authentically digital

  • Embrace the medium
    • What is the role of design?
    • What is the role of the designer?
    • Is design inherent, or surface?
  • Modern
    • High Modernism, or International Style
    • Bauhaus
    • Designer should be offered no refuge in the past but should be equipped for modern world in its various aspects, artistic, technical, social, …
    • Icons – what value is there in having icons look like real objects, or shaded
    • E.g. Windows Explorer – most stuff in there is chrome
    • Semantic zoom in file explorer in Modern
    • Genesis of live tiles & semantic zoom
  • Cloud connected
  • Bold, vibrant colors
  • Motion


Do more with less

  • Be great at something
    • App fantastic at one specific thing
  • Focused and direct
    • Help users focus on what matters
  • Content before chrome
    • Only show secondary stuff (e.g. photo info) on swipe
    • E.g. Web browser, everything other than content is off screen
    • You see a bunch of widgets on each element, for discoverability.  Remove them and only show when relevant
  • Inspire confidence


Win as one

  • Work together to complete scenarios
    • ~45 separate contracts
  • Fit into the user experience model
  • Leverage the platform


Demo – Search, All recipes and People, IE and Wikipedia



  • Don’t need search charm; just start typing
  • Good example of contracts
  • Allows: surfacing your app in other contexts
  • App that you search most often will bubble up to the top



  • E.g. allrecipes
  • Share, People app, Facebook (from allrecipes app)
  • You avoid APIs to all these other services (e.g. Facebook)
  • “Catching” application worries about its API



  • From News app, select text, Share to Wikipedia–looks up that topic in Wikipedia


Think about how your app gets embedded in the user’s broader workflow


Windows reimagined

  • “The beginning is a delicate time…” –David Lynch, Dune, 1984
  • Asking us to reimagine our apps


How will your apps be reimagined?

How can you be authentic to the medium

Where will your app become alive?

What do your users need to focus on?

Integrate with the ecosystem?



  • (9 hrs of training)


Q&A  (33:47)


Wikipedia–Share vs. Search

  • Share: lets data get looked up from within the other apps
  • Even within Wikipedia, just start typing to search


How complex is sharing?  Data models passed between apps?

  • Yes, you can pass structured data, data types (e.g. URL, picture, etc)
  • The more esoteric the data, the more reliant you are on the catching app to interpret


Sharing text, interpret as URL, if not URL it fails and have to display to user

  • Probably a better result if you just accept URLs


How should devs refer to “Metro style”?

  • Won’t get into details of why no longer “Metro”
  • “Windows 8 Store Applications”


In what users remembered from Windows 8, were they remembering content?

  • Yes, they remembered images–rectangles were the content


This design language works great for content consumption.  What about creation, wouldn’t we want chrome like toolbars to be there?

  • Take a look at painting apps
  • Evernote Sketch – quick annotations
    • App bars pinned open
    • Users typically doing a lot of interactions
  • At other end of the spectrum, e.g. Sketchbook
    • Almost all canvas
    • Only need app bar when you change tool, which is less often
  • So think about the goal that you’re trying to solve
  • If user will spend a lot of time on the content, then worth focusing on content and get the rest of the stuff out of the way
  • But be very careful about pinning app bars open


Snap and fill view–design rationale for being able to snap out, but not snap in?

  • Keep user in control–risk in going into snap of having it snap unexpectedly
  • Coming out of snap–they know they are already in snap view


Interaction design pattern library for Windows 8?

  • Look at
  • Navigation styles, app bars, commanding
  • Human interface guideline document (280 pgs)
  • Photoshop templates for mocking up
  • Visual Studio 2012 Ultimate installs some prototyping tools in Powerpoint


For HTML, should sites be designed the same way?  Any guidelines?

  • You can use HTML5/JavaScript to build app or to build web experience
  • You’re starting to see tile-like interfaces on web sites


Discoverability–is it a tradeoff, where users don’t know how to do something?  E.g. Mom/Dad

  • We have looked at that
  • Devs should follow patterns that Microsoft is establishing
  • Following these patterns leads to consistency
  • Then users learn this stuff faster


Font size – 42 pts for headlines.  How do you decide how big to make font on various devices?  For largest display, when you’re further away, the font doesn’t look large enough

  • You can use brand fonts, but you should follow “type ramp”
  • Various ratios between font sizes and screen
  • Scaling–two strategies for an app
    • Everything gets bigger proportionately  (e.g. Photos)
    • OR You show more content  (e.g. Maps)
  • Depends on your scenario
  • With bitmap images, you should provide multiple images
    • 140%, 180%
    • Windows 8 will automatically pick appropriate resolution


Recommendations for designing app that does a lot of data input?

  • There are relatively few apps right now that do this
    • E.g. Credit card terminal apps
  • What’s important?  Quick, vs. entering data correctly


What kind of impact will design principles have on desktop applications?

  • You’ll already see this, e.g. Office 2013 preview, animations
  • The animations let you know where on screen to focus
    • Biologically, we notice motion / movement
  • Reader experience in Word–fast/fluid
  • Powerpoint, slide transition
  • Entire company (Microsoft) is behind this, pushing these principles


Difference between Microsoft design principles and Windows store apps?

  • Same thing


6 November, 2012

BUILD 2012 Notes – Developing a Windows Store App – Sheehan / Mockford

Filed under: BUILD 2012 — Sean @ 8:31 pm
Tags: , ,

Build 2012, 30 Oct 2012, 11:45AM – 12:45PM


John Sheehan, Kieran Mockford

Building sample app in JavaScript/HTML


Windows 8 platform & changes made for Windows Store apps

  • Kernel – security, etc.
  • WinRT APIs
  • MVC layers
    • Can now do XAML with C++
    • For super high perf with C++, using DirectX
    • For JavaScript, use HTML for presentation layer
  • This new stack is for Windows Store apps



Desktop apps still possible

  • HTML in IE
  • C++ on Win32
  • C#/VB on .NET


Upgrade Win 7 box to Win 8

  • Better performance
  • All desktop apps will continue to run


Win RT

  • Old dev experience was kind of dated (programming to Win32 API)
  • Needed to rethink how devs built apps
  • New modern API surface, used for building Windows Store apps
  • LOTS of APIs in Win RT
  • Supports all sorts of languages (C++, C#, VB, JavaScript)



Developing Windows Store app

  • Code and markup – All starts with your code
  • Make it an app – Your app has unique value and identity
    • Publish to store
    • Needs tile
    • Splash screen
  • User expectations
    • Live tile – show latest info on the tile
    • Search – search within your app
    • Capabilities
      • Apps need to be trustworthy
    • PLM


Demo – From code to app



Weather app

  • Service up in Azure – returns blob of JSON with weather info
  • App will be JavaScript / HTML
  • Concept of “promise” in WinJS
    • Being standardized
    • xhr – change results into a promise, asynchronous
  • He gets object back with his data, can drill down into the data in debugger
  • Can take data, bind to HTML template
    • data-win-control=”WinJS.Binding.Template” (on <div>)
    • Assigning data to HTML elements, e.g. data-win-bind attribute to assign data to text element
    • template.render
  • Drop in CSS to format the page


Displaying additional weather data, in list

  • Will display it in a tile-based UI
  • Adding new elements to the namespace that we bind to
  • Now create template to render the list
  • Open app in Blend
  • App actually running within designer
  • Live DOM shown as you move around in designer
  • Assets panel, get ListView
  • Drag into Live DOM view
  • Set itemDataSource on ListView


Video in background

  • <video> element
  • Add video and play



  • No tile, no splash screen
  • In Visual Studio, you have logo.png, smalllogo.png, splashscreen.png, etc.
  • Replace these with your own logos and images
  • Two images for tile–logo and wide logo
  • In .appxmanifest, can specify that you have wide logo
  • Can turn off showing name on tile
  • Also set background color for app


Need to make tile live

  • Several different ways to do live tiles
  • createTileUpdaterForApplication
  • Call startperiodicUpdate method
  • Periodic service, returns XML document with some basic data
  • Can pass in argument to your service (e.g. for location)
  • E.g. Ping service each hour to update tile
  • Can make tile re-poll by turning tile off and then on again



  • Windows has Geo-Location API that lets you ask where user is located
    • If device has GPS, it’s accurate
    • Otherwise, it can use IP address to estimate location
    • Fairly close, e.g. town but not building
  • You need to specific that your app will use geo-location
    • Check Location on Capabilities tab
  • System then asks user if it’s okay for the app to use location
  • Strange error–where they are (Redmond), geo-location says they are in Texas


Search contract, so user can use Search charm

  • Declarations tab in manifest, you declare to Windows that you support Search
  • Write code to respond to Search request
  • Search is a “contract”




App Execution Environment

  • App Container – container where your app runs
    • You do everything by calling WinRT APIs
    • Most calls are direct API calls
    • Some calls, e.g. user location, are sensitive
      • Brokered API calls
      • Runtime Broker – makes sure you have access to what you’re calling
      • Uses your AppXManifest
      • So app needs capability in manifest AND user having granted permission


Process State transitions

  • Running
  • Suspended
    • When user is not using app, app is suspended
  • Terminated



As developer, you need to

  • Save things at suspension time, so you can remember where you were


Demo – Giving your app a memory


oncheckpoint event

  • WinJS.Application.sessionSate["lastQuery"] = lastQuery
  • E.g. store last query done by user
  • Debugger has mechanism for triggering suspend/shutdown
  • Add code when app is reactivated after suspension


Be Better Together (work well w/other apps)

  • Pickers
  • Sharing
  • Protocols





  • Allows picking from places other than just a file system
  • Add to filters (FileTypeFilter.Add)
  • async on Button Click handler
  • await on call to PickSingleFileAsync within handler method
  • async/await – allows you to write code that behaves asynchronously, but looks synchronous
  • Can have multiple await decorated calls within the same method
  • Can pick data from files on SkyDrive


Demo – manipulate image and re-save to SkyDrive

  • Browsing samples
  • New Project – Online – Samples – Language
  • Can search for stuff within samples
  • E.g. WIC Image editor
  • Creates new WicImage object
    • Wic = technology for reading/writing different image formats
  • ImageEditor object, instantiated with WicImage
    • BeginDraw/EndDraw pair
    • DrawText, etc.
  • Their library contains these classes–WicImage, ImageEditor
  • Using Direct2D to do image stuff
  • C++/CLI => Cx
    • Still native code, but Cx controls object lifetime, memory
    • ComPtr<> – smart pointer
    • Need this for classic COM code
  • E.g. Use ComPtr for Wic interface APIs
  • In memory representation of Wic image doesn’t map exactly to Direct2D image
    • ID2D1Bitmap.CreateBitmapFromWicBitmap


To share something from your app

  • DataTransferManager.GetForCurrentView().DataRequested += (yourmethodhere)
  • Data packet that you send via data transfer manager
  • App can say–yes, I support sharing, but no data available yet
  • E.g.
    • Request.Data.SetBitmap(RandomAccessStreamReference.CreateFromStream(shareStream))



  • Starts with your code
  • Add character
  • Support user expectations
  • Sharing with other apps

3 November, 2012

Using Microsoft Surface in the Real World, part II – The Hardware

Filed under: Surface — Sean @ 3:29 pm
Tags: , ,

In part I, I rambled on about how I think the Surface with Windows RT tablet fits into the PC/laptop/tablet ecosystem.  Now let’s talk a little bit about the hardware.

Note: This review is about the Surface with Windows RT, released on 26 Oct, 2012.  Throughout the review, I’ll just refer to it as the “Surface”.

In a word, the Surface is gorgeous.  At 1.5 lbs and 9.4 mm thick, it feels great to hold and evokes the same kind of satisfied joy that I felt after unboxing and holding my first iPod.  The black metal case on the Surface–the “VaporMg” case made out of molded Magnesium–is the first thing that you notice.  So far, after a week of use, I haven’t seen any scratches on it.  This is a nice change from the scratch-magnet aluminum back of my iPad.

(Note: Click to see larger versions of all photos in this post).

The image above shows the left edge of the Surface, which includes one of the speakers, an audio jack, volume rocker switch control and a view of the kickstand at the bottom on the device.

The top edge includes a couple more tiny speakers and the power switch.  The right edge, shown below, includes the receptacle for the magnetic power connector, a USB 2.0 port, a micro connector for an HDMI cable and another speaker.

On the bottom edge you’ll find the magnetic connectors for the Touch/Type Cover attached keyboards.

My only concern with the various ports is that they’ll attract dirt or other particles, since none of them have covers.  For example, when you have the display turned on and you peer into the audio jack, you can see the back of the display.  The makes me worry a little bit about junk finding its way into the interior of the case.

You can use the Surface without a cover, interacting with it using only touch gestures and typing using the onscreen keyboard.  But you’ll more likely want to attach one of the combo covers/keyboards.  The Touch Cover is thinner and fuzzier than the Type Cover, which has mechanical keys.  (I only got the Touch Cover).

Attaching the Touch Cover to the Surface is the most delightful part of the hardware experience.  You only need to get the cover’s connector somewhere within the vicinity of the edge of the Surface and the magnet pulls it the rest of the way, until it snaps in place with a satisfying click.  There is no fiddling with the cover, trying to get it to align properly.  It just works.  More importantly, pulling the cover off or snapping it back on is extremely quick.

With the cover attached, you’ll have the Surface in one of three different configurations: 1) cover closed over display when you’re not using it, 2) cover unfolded, keyboard out and kickstand open, or 3) cover folded backwards over the case so that you can touch/type directly on the screen.

With the Touch Cover open, you’ll almost certainly want the kickstand on the back of the case opened and the Surface sitting on a flat surface.  The way that the cover attaches, it doesn’t work to have both the cover and case of the Surface both lying on a flat surface.

If you’re sitting somewhere and you want the Surface on your lap, you’ll either want to fold the keyboard out of the way completely, or end up folding out the kickstand and balancing the Surface on your lap so that you can use the keyboard.  This is a little precarious, so you’ll really end up using the keyboard only when the Surface is on a flat, stable surface.

When you do place the Surface on a table or desk, the kickstand on the back snaps out easily and feels quite solid.

The power supply that comes with the surface attaches to the case with a magnetic connector that is surprisingly hard to connect.  Unlike the Touch Cover, which easily snaps into place, the power connector for some reason requires a lot of attention to get the pins to line up correctly.  It doesn’t just snap into place.

The USB connector works as you’d expect.  You can attach any USB 2.0 compliant hardware to the port and it just works.  I’ve tried basic keyboards and mice, as well as a couple of USB memory sticks, and everything worked without a hitch.

Just under the kickstand on the back of the case is a slot for a microSDXC memory card.  You can currently pick up a 64GB card for about $60.  Plugging in a card works just like a USB-based memory stick–the card shows up in Windows as a removable disk.  (More in a future post on how to use content on the card).

Typing on the Touch Cover was surprisingly pleasant.  It’s not meant to be equivalent to typing on a laptop keyboard, but is actually quite a bit easier to use than the chiclet keyboards that you find on Netbooks.  The individual keys have fairly large touch targets, are slightly raised and the inside surface of the keyboard has a nice satisfying fuzzy feel to it.

Many of us have gotten used to using on-screen keyboards on tablets, typing on glass.  This is workable, but never quite feels like a real keyboard.  The Touch Type keyboard is meant as an alternative to typing “on the glass” and gives you a much better experience.  I’m a touch typist who types pretty fast and I was able to be a lot more productive with the Touch Type keyboard with its taller keys.

The picture below shows the on-screen keyboard as well as the Touch Type keyboard, so you can see the relative size of both.  (You’d never see this configuration in real life, though–when you start typing on the Touch Type keyboard, the on-screen keyboard automatically disappears).

One thing about the keyboard that was not at all obvious as I first started using it is that it actually has “keys” for the left and right mouse buttons.  Immediately below the touchpad, which you use to move the mouse pointer, is a little vertical divider.  You can click on either side of the divider to get a left or right mouse button click.  It made my day to discover this–one week into using the Surface.

The other half of the experience with the Touch Type keyboard is that it becomes the cover for the Surface, folding over the display.  It works well as a cover, keeping the screen protected.  Its fuzzy surface gives the Surface a nice friendly personality when it’s just sitting on a desk, waiting to be used.

With the keyboard folded over to cover the display, the connector is at an angle that prevents it from becoming disconnected, which is nice.  You have to fully open the keyboard cover in order to disconnect it.

Another nice touch, really a requirement, is that when the keyboard folds backwards under the display, it disables keystrokes. This means that you can’t accidentally enter keystrokes with your fingers curled around the back of the Surface while you’re interacting with it using touch gestures on the front.

The display is very crisp and bright.  It feels much more crisp and readable than you’d guess, given that the resolution is 1366 x 768.  The resolution is in the same ballpark as my iPad 2, whose resolution is 1024 x 768.  But the content on the screen of the Surface seems much more crisp and readable.  This likely has to do with the fonts used on the Surface and the fact that the Surface is using ClearType technology to improve the resolution of the fonts.  Microsoft devotes a lot of resources to typography and the results are stunning.  At an equivalent pixel density, the Surface looks a great deal better than the competing displays.

This doesn’t mean, of course, that ClearType is going to make a 1366 x 768 display look as sharp as the iPad’s retina display at 2048 x 1536.  But the clarity of the display on the Surface will likely look quite good when compared directly to the retina display.  The Surface with Windows 8 Pro will have an even better resolution when it shows up in January of 2013, at 1920 x 1080.  It will also use ClearType.

(Click on the image below and then use the zoom function in your browser to see the following screenshot at its original size).

The default brightness setting for the display is a little dimmer than I would like, but is a compromise for the sake of battery life.  The colors really pop out and everything becomes much more vivid, however, when you turn the brightness up a bit.

The display also looks great when watching videos–one of the main use cases for the Surface.  Even though the display isn’t a full HD resolution screen (1920 x 1080), HD videos look great–with crisp detail and very smooth playback.

Power management makes use of the standard Power Options settings in Windows 8.  Note that you can change the brightness settings independently for when the Surface is running on battery vs. plugged in.  Also worth noting–the Surface turns off the display shortly after you close the Touch Type cover.

The touch screen is very responsive, across all the apps that I’ve tried using so far.  The Surface has a 5 point multi touch display, which means that you get the now standard pinch-to-zoom behavior that we’ve come to expect on these devices.

The screen show below is from an app that shows you all the spots on the screen where the Surface is currently detecting a touch.

The Surface doesn’t have a physical orientation lock button, like the iPad.  You can presumably lock the orientation using a little display lock widget on the Charms bar.  But I’ve had no luck in getting this to actually prevent auto-orientation of the screen.  It’s likely just operator ignorance, but this doesn’t appear to be very easy for the average user.

The battery performance has been excellent.  Microsoft touts a 10 hr battery life.  While I haven’t tested it, I’ve been using the Surface off an on throughout a full day and never even came close to fully draining the battery.


At the end of the day, the Surface is a beautiful piece of hardware.  This is absolutely how a tablet should work.  It powers up and down instantly, has a responsive touch screen, and a gorgeous display.  The addition of the USB port and the Touch Type keyboard/cover, however, put it over the top.  You can plug in an external mouse or keyboard and even connect a HDMI cable to a larger display.  The Touch Type cover works perfectly in its role as both a keyboard and a cover and detaches/attaches effortlessly.  With the attached keyboard, the Surface suddenly becomes less like a tablet and more like a mini laptop.

That’s all I have for now on the hardware.  Next time, I’ll talk about the basics of using Windows RT on the Surface.

2 November, 2012

BUILD 2012 Notes – Keynote Day 1 – Ballmer

Filed under: BUILD 2012 — Sean @ 4:56 am
Tags: , , ,

BUILD 2012, Redmond

Keynote Day 1 – Ballmer

30 Oct 2012, 9AM – 11AM


Nice Windows Phone commercial, showing Steve’s phone

Steve Ballmer, Chief Executive Officer



  • Sold conference out in 53 mins
  • “Bigger venue next year”
  • Perfect time to get together
    • Windows 8
    • Windows Phone 8
    • Microsoft Surface
  • “How are they doing”?
    • 4 days after 1st day of sale for Win 8, Surface RT
    • Not huge amount of data, but..
    • Over 3 days, sold 4 million Windows 8 upgrades–individual users
    • Additionally, 10s of millions of units to corporate customers
    • Staples, Dixons – customers excited
    • Long lines at stores
  • What people are saying
    • Microsoft Surface is hot  (CNET)
    • 10 reasons to embrace Windows 8 now (
    • Windows 8 to bridge gap between PC, mobile devices
    • Boldest phone and software design  (Joshua Topolsky)
  • 3 big events since 1980
    • IBM PC
    • Windows 95  (mainstream, Internet)
    • Windows 8 / Windows Phone 8
  • Opportunity has never been better than today


Key Points for Windows 8

  • Best PCs ever made – hardware and software
    • ARM, x86
    • Desktops, laptops, tablets
  • PC and tablet; work and play; keyboard and touch
    • As much innovation in HW form factor as there is individuality in customer base
  • Alive with activity
    • Have built the experience that is essential for this generation
  • Phone is 1st class member of Windows family
    • The phone you want to own, if you own a Windows 8 system
    • 100s of millions of Windows 8 systems sold in next year
    • If you want the best experience with Windows 8, you’ll own Windows Phone 8
    • Killer hardware




These launches kick off the golden age of opportunity for Windows developers

  • Opportunity to build great applications is tremendous
  • Build across form factors–write one modern UI app across all
  • Easy to share code across form factors
  • Same cloud infrastructure across all devices  (SkyDrive w/Microsoft account)
  • Apps you build on Windows platform will be better than any you build elsewhere
  • Application experience is personalized to match each user
  • App is easier to use from discoverability perspective  — users find your app




IE 10 in Windows 8

  • Fast / fluid / touch-optimized
  • Build better web experiences


Demo – Windows 8 on new generation of hardware  (18:10)

  • Steve is doing the demo himself, using his personal account


Giant touchscreen – Perceptive Pixel – 82″ Windows 8 Slate

  • Eventually we’ll have these at reasonable price point


  • SkyDrive allows roaming data across all of your devices
  • Ink annotations in OneNote
  • SEAN: Sure, touch targets in Office are reasonably sized, when you run on an 80″ monitor.  :O)


Dell All in One – XPS One

  • With Intel Core i7
  • Search – no apps results
  • Click on various search targets to see results in each target
  • One search, results across multiple apps
  • Your apps can do this too
  • New Bing app
    • Can do search
    • Can drag to side of screen and tab through various pages, each page opened in IE
  • OOPS: Steve can’t quite grab touch target to move Bing app off screen–takes him 4-5 tries
  • News app
    • Any search term => newspaper format, with multiple stories
    • Can Share from news article, to various apps
    • Send e-mail via sharing, never left News app
  • Change lock screen on All in One; lock screen on large screen automatically updates (roaming)  (28:57)


Windows Phone devices

  • 4.8″ Samsung device
  • HTC phone
  • Nokia phone
    • We see ink annotations on OneNote doc, roamed from SkyDrive
    • Real-time, automatic roaming
  • Asus Vivo, 1.15 lbs detached
  • Screen detaches
  • Can ping something from within app out to Start Screen (e.g. Team in Sports app)
    • Any app can do this–deep links, ability to pin to Start Screen, with live info
    • (34:19)
  • Microsoft Surface
    • PC meets the tablet
    • Office apps built-in
    • Also good for play
    • Built-in: XBox Music
    • With every Windows 8 device, you get free streaming of music
    • Steve asks for song suggestions
    • Someone shouts out “Freebird” and Steve is baffled.  Hasn’t heard of it??
  • Tablet, notebook, or freestanding tablet


  • Lenovo ThinkPad Tablet 2, Intel Atom processor
    • Runs all Win32 apps
    • “Runs absolutely everything”


  • Acer Aspire S7-191
    • Most surprising to people
    • 2.38 lbs, i5 or i7
    • Touch laptops — cool
    • Likely this is what Software Developers will want
    • (42:27)
    • Develop and test on the same machine
  • Showing MSN for Windows 8, web site, optimized for Touch


“We’re all-in with Windows 8″

  • Every group at Microsoft has contributed something
  • E.g. XBox group


Video - XBox control from Windows 8 (44:44)






Steve Guggenheim – Corp Vice President & DPE


  • Spent last 5 years working on Hardware ecosystem
  • HW doesn’t come to life until SW is available
  • Will show some apps that show HW + SW, running on Surface


  • Agent P game
    • Disney brought app to Windows 8 using HTML5 / JavaScript
    • Can plug all kinds of peripherals into hardware
    • E.g. Game controller plugged in via USB
    • Can hook to TV via HDMI out, use game controller
  • Skype demo
    • HTML on front-end, C++ on back-end
    • Dock Skype to side, bring game back up on side screen
    • SEAN: Showing off using Windows to do 2 things at once?  For Windows users, what’s the big deal??


Running on all-in-one, Autodesk application

  • HP Workstation
  • Can lay down, open up case (?!)
  • All existing Win 7 apps just run
  • Autodesk built complementary app
  • Running Autodesk on Sony Vaio
    • Store files on SkyDrive
    • Switch to Sketch application
    • Use pen


  • Back to Phineas/Ferb game, on Windows Phone 8
    • Easy to move between devices


Economics & montenization

  • Use Windows Store engine
  • 70% of revenue goes to you
  • At $25k, you get 80% of revenue
  • In-app advertising and sales


Bing Travel app

  • Ad right in app


Fish with Attitude game

  • Real money, buy treasure in game
  • Payment: Microsoft, PayPal  (commerce engines)
  • Ability to monetize


ESPN app demo – Michael Bayle



ESPN app for Windows 8

  • Today – user access assets via web site
  • ESPN app aggregates all this extra content into one app
  • With pinning, semantic zoom, etc. — personal experience
  • First look at ESPN app



Back to Ballmer


Lots of apps:

  • E.g. SAP (ouch), DropBox
  • Twitter announced that they’ll build Twitter app for Win 8
    • SEAN: Only now??
  • With built-in People app, you can connect directly into certain apps
    • E.g. Facebook, Twitter


Unprecedented market

  • 670 million potential upgrades  (current Win 7 users)
  • 400 million new devices
  • Windows Phone rising
  • Marketing investment


Why write apps for Windows 8?

  • Key: Lot of people will use the app
    • Win 8 takes less resources than Windows 7
  • Predict we’ll see lots of growth & vitality in PC market
    • But even if PC market stays flat, will still be 400 million new devices you can target
  • Windows Phone
    • Small volume player today
    • Most differentiated approach to market
    • Killer hardware
    • Excellent opportunity
    • We will do more marketing and better marketing for Win 8
    • * applause *
  • This is a market (Win 8) that will explode
    • Can do your best work here
    • Can make money
    • Best opportunity for software developers today
  • “We need your support, we need your commitment”
  • For those of you in the room
    • Every BUILD attendee gets
      • 100GB SkyDrive storage for free
      • (Audience lukewarm reaction)
      • Surface RT 32GB with Touch Cover
      • SEAN: For drama, he should have taped a Surface to the bottom of each chair
    • Make me two promises
      • Go out and write lots of apps
      • Don’t run out and try to get them right now


Commercial for Windows Phone running



Kevin Gallo – Director of Program Management, Windows Phone



Four topics

  • Introduction to Windows Phone 8
  • How to develop apps
  • New features in Windows Phone 8
  • Advancements in native games


Most personal phone on the market

  • Kevin’s phone
  • What you care about most is front and center on the phone
  • Kid’s Corner
    • Special place for kids
    • You configure it for just the apps that you want them to use
    • “Phone inside of a phone”
    • Customized for the kid
  • Rooms
    • Groups of people, sharing notes, calendar, photos
    • Ideals for families


Windows 8 Developer Platform

  • Reimagined Windows platform
  • The Right platform at the right time
  • New hardware, new UI, common cloud services


New era

  • Ubiquitous mobile devices
  • Experiences transition across many devices
  • (1:18:09)


Announcing the release of the Windows Phone 8 SDK


Build apps that work on both Windows and Windows Phone

  • Shared Windows Core
  • Common API Set on top of that



Demo – Visual Studio

  • App – Picture Sharing
  • 3 projects
    • Win Phone 8
    • Win 8
    • Shared Code – C#, runs on both
  • Old C++ code, wrapped in .NET, with photo filters
  • HyperV-based Windows Phone 8 emulator


  • Easy to integrate code from other sources, e.g. C++


New features on Windows Phone platform

  • You asked, we delivered
  • Lots of new features


New features

  • Easy-to-build fast, fluid, UI
    • Better performance for existing controls
  • Live tiles, lock screen, wallpaper
  • Improved dev center and Store
  • Deeper integration w/phone experiences
    • E.g. lenses
  • Better multitasking
    • Location-based apps in background
  • Advanced networking
    • Bluetooth data transfer
    • Peer networking
    • Proximity connect (NFC)
  • TOTAL: 90% of top dev requests done



Demo – AR drone quad copter

  • Built phone app to control the drone


75% of top grossing apps are games

  • Common gaming platform for Windows
  • High-perf C++ code (e.g. Direct3D)
  • Store is global
  • In-app purchase of consumables (currency) and durables (game levels)
  • More ways to make money
  • Over half of all games using gaming middleware
    • E.g. Unity, Havok, Ogre, etc.



Demo – Unity – Tony Garcia



Unity on Windows Phone 8

  • Scripting engine for building game logic
  • Building game for Win Phone inside of Unity
  • Run scene inside Unity Preview window, for debugging
  • Deploy to Windows Phone
    • Build, creates Windows Phone 8 project
    • Creates Visual Studio project
  • Then run on device
  • Works on Windows 8 tablets as well



Back to Kevin


One more guest on stage – Richard Kerris from Nokia – VP, Global Head of Developer Relations

  • Lumia 920
  • Developers should get this phone first
    • We’ll give you a Nokia Lumia 920
    • Everyone gets one


Reduce registration from $99 to $8, for next 8 days



31 October, 2012

Using Microsoft Surface in the Real World, part I

Filed under: Surface — Sean @ 4:34 am
Tags: ,

When the new Microsoft Surface device was announced, I decided to dive in and become an early adopter.  I promptly ordered a Surface (with Windows RT) and was pleased to get a confirmation e-mail indicating that I would receive my surface on 26 Oct, 2012–the same day that the Surface RT launched.

I’ve had the chance to start using the Surface RT over the past few days, so I thought I’d share some of my first impressions.  In this first post, I’ll offer up my thoughts about where the Surface fits into the mobile devices ecosystem and who the target market is.  In future posts, I’ll dive more into using the Surface for a variety of tasks.

(Note: “Surface RT” is my shorthand for Microsoft’s official name of “Surface with Windows RT”.  This is to contrast with “Surface with Windows 8 Pro”, which will ship in January, 2013).

In for A Penny

The three main Surface SKUs are as follows:

  • 32GB, tablet only – $499
  • 32GB, with Touch Cover – $599
  • 64GB, with Touch Cover – $699

I opted to go “all in” and got the 64GB model with the Touch Cover.

Touch Cover or Type Cover?

The Touch Cover is one of the two available add-on keyboard covers, which both snap in to the side of the Surface and also fold over the screen to act as a cover.  Comparing the two keyboards:

  • Touch Cover – $119.99 (if bought separately), pressure-sensitive keys, 3.25 mm thick,  0.46 lbs, comes in Cyan, White, Magenta, Black, Red.  Spill resistant.
  • Type Cover – $129.99, mechanical keys, 6 mm thick, 0.55 lbs, comes in black.  Includes function keys.

So you want the Type Cover if you want a keyboard with keys that actually move.  You want the Touch Cover if you want your Surface to be 3 mm thinner, you need a stylish color for a keyboard cover, or you expect to spill a hot cup of coffee all over the keyboard.  I drink a lot of coffee, so I went with the Touch Cover.

Both keyboards also include a trackpad.

It’s also worth mentioning that since the Surface has a USB port, you can plug in an external keyboard or mouse.  Since you only get one USB port, it’s a Sophie’s Choice situation and you have to pick which one you’d rather use.  In all honesty, this makes complete sense–I can see plugging in an external mouse, making it easier to work with the desktop-based Office applications.  But I’m less convinced that you’d want to plug in a full-size keyboard.

Those Other Guys

Since I haven’t yet talked about using the Surface, it’s perhaps premature to compare it to that other tablet.  And Microsoft may tell you that they are not competing directly against the iPad or targeting the same market.  Still, plenty of buyers will be making a buying decision between these devices, based mostly on the bullet item list.  So it’s worth considering how the Surface looks on the showroom floor, as compared to the iPad.

There are even more SKUs for the iPad than the Surface–I counted 14 different iPad SKUs.  Let’s just line up at least one of the iPad models to see how it compares to the Surface.

32GB WiFi Retina iPad vs. 32GB Surface (w/no Touch Cover)

  • iPad - $599 buys you a 32GB Wi-Fi only iPad with
    • 9.7″ display with 264 PPI (pixels per inch), 2048 x 1536
    • 1.44 lbs, 9.4 mm thick
    • 69-1/2 sq in of device
    • Dual-core A6X chip with quad-core graphics (1GB RAM)
    • Cameras: 1.2MP front-facing (720p HD video), 5MP rear-facing (1080p HD video)
    • 802.11 a/b/g/n Wi-Fi
    • Bluetooth 4.0
    • Battery: 10 hrs of use, 42.5 W-h
    • App store with 700,000 apps
  • Surface RT - $499 buys you a 32GB Wi-Fi only Surface with
    • 10.6″ display with with 148 PPI, 1366 x 768
    • 1.5 lbs, 9.4 mm thick
    • 73-1/4 sq in of device
    • Quad-core NVIDIA Tegra 3 (2GB RAM)
    • Cameras: Front and rear 1.2MP (720p HD video)
    • 802.11 a/b/g/n Wi-Fi
    • Bluetooth 4.0
    • Battery: 10 hrs of use, 31.5 W-h
    • App store with 10,000 apps  (growing by 500 apps/day)
    • microSD slot
    • USB 2.0 port
    • Port for Touch/Type Cover keyboards

So $100 more for the iPad gets you a higher resolution screen, better camera, and a lot more apps–while giving up the extra microSD and USB ports, as well as the ability to attach a Touch/Type cover.

We might also compare the $499 Surface RT against the $399 Wi-Fi iPad 2.  The differences between the two are then:

  • iPad 2 $100 less than Surface RT
  • iPad 2 has 16GB memory, vs. 32GB for Surface RT
  • iPad 2 with 132 PPI display vs. 148 PPI for Surface RT
  • Similar cameras
  • microSD slot, USB 2.0 port and Touch/Type Cover ports for Surface RT

Why a Tablet?

I’ve grown up knowing Microsoft as a software company.  They’ve had a few forays into hardware markets, some of which worked out well (e.g. XBox, the $1+B warranty costs notwithstanding) and some that didn’t (e.g. Zune).  But other than XBox, they still make most of their money off of software–Windows on the desktop, Windows Server, and Office.  At roughly $18 billion a quarter, they’re doing pretty well–until you consider that Apple’s revenue is nearly double that of Microsoft’s and that most of it comes from selling mobile devices to consumers.

The mobile device market has exploded in the past couple of years and iOS has mostly dominated the market, with Android now making serious inroads.  Given the size of the mobile market, and the fact that it’s still growing, Microsoft absolutely needs to be a player in this space.  They will continue to make lots of money off of software for many years to come.  But to remain relevant, they need to grab a piece of the mobile devices market.

Windows 8 is Microsoft’s bid for a touch-centric mobile operating system, competing against Android and iOS.  But having a great software offering for mobile won’t do any good unless people start actually buying devices that are running Windows 8.

This is the point where Microsoft is going all-in.  It’s not enough for them to create a great touch-based operating system and then just hand it off to their hardware partners and pray that the partners get some traction in the market.  This market is too important for Microsoft to entrust  it entirely to their partners.  They can’t afford not to build their own hardware device–one that showcases what they’ve done with Windows 8.  Like Apple, they can then take a no compromises approach to the device, developing both the hardware and the software and controlling the entire user experience.  Case in point: there is no third-party crapware on the Surface.

Microsoft is, of course, hoping that their partners also do well in getting Windows 8 mobile devices into users’ hands.  But building the Surface lets them stand out in front of the partners and show them what the user experience should be for these devices.  That’s why the Surface RT and Surface Pro devices exist.

Who Is This Thing For?

The tablet market is an outgrowth of the smartphone market, both of which are mobile devices with a persistent connection to the Internet and enough horsepower to deliver a rich user experience.

Smartphones and tablets are both targeted at a wide variety of users (which is why the market is so huge).  This covers younger users, using smartphones for communication and social, all the way up to the 60+ crowd, using tablets for e-mail and web browsing.

In my mind, the tablet is primarily a device for the couch.  It’s mainly targeted at consumers using it while at home, for things like:

  • Browsing the web  (e.g. the Pinterest addiction)
  • Social  (Facebook, Twitter, Google+)
  • E-mail
  • Games
  • Entertainment  (Netflix, Hulu, YouTube)
  • News

While the tablet is seen as more of a media and entertainment device, the smartphone is seen as a device for communication and social.  It’s easy to make the case that many users will regularly use both devices.  During the day, they carry their phone, using it for texting, voice and checking social networks.  In the evening, they plop down on the couch, pull out their tablet and use it to check e-mail, play a game, or watch a show (TV or movies).

The tablet is therefore primarily a consumer-targeted device used for content consumption.  This is our “post PC” era, where the devices that we use have evolved to better fit our model of using them mostly for consumption.

To a lesser degree, tablets have also begun to be seen as a productivity device.  As people start using these devices for content consumption and the devices become ubiquitous, it’s only natural that we’ll want to start using them at work, or using them to do work.  There are a variety of productivity use cases, including:

  • Checking work e-mail from home
  • Contact management
  • Creating/editing/sharing documents
  • Running custom enterprise apps for consuming and sharing business data

People have been talking at length about the BYOD (Bring Your Own Device) phenomenon, with people bringing their tablets to work and expecting them to integrate seamlessly into the enterprise ecosystem.  But iOS and Android devices have not yet made serious inroads into the enterprise.  There are still many challenges, including: security, authentication and easy sharing of data.  There’s also potentially a high development cost, as employees expect someone to port existing Windows-based enterprise applications to the tablet platforms.

This is Microsoft’s big gamble and where they really hope to make inroads into the enterprise with Windows 8 tablets.  A tablet based on Windows can bypass many of the typical issues with BYOD.  File sharing becomes easier, Remote Desktop allows connecting to your desktop from home, and support for Active Directory makes authentication trivial.

The gotcha for Microsoft is that BYOD doesn’t work unless users actually have the device to bring to work in the first place.  There might be some cases where an enterprise will proactively acquire Windows 8 devices.  But the more natural progression is that users will start out with a Windows 8 tablet as a content consumption device at home and then bring the tablet to work, where they’ll begin to use it as a productivity device.

Surface for Windows RT is the first step along this path.  It’s meant to be the consumer-focused device for content consumption.  It’s the device for the couch.  It’s big brother, Surface with Windows 8 Pro, is the next step along the path.  It will be the device that you’ll want to bring to work, adding support for Outlook, Sharepoint, desktop applications and Active Directory.  (Find Surface with Windows RT vs. Surface with Windows 8 Pro comparison here).

At least that’s the idea.  For the vision to work, Microsot first needs users to buy Windows 8 tablets.

Next Time

That’s enough for now.  Next time, I’ll start diving into examples of specific things that I’ve tried using the Surface for.

27 October, 2012

Microsoft Surface Unboxing

Filed under: Surface — Sean @ 6:05 am
Tags: , , ,

Unboxing a new 64GB Surface tablet from Microsoft.  This is the 64GB Surface with black touch cover, $699.  Microsoft was as good as their word and I received the Surface on 26 Oct, 2012–launch day for Windows 8 and for Surface.  No lines, no waiting.

Fairly attractive box.

Simple branding.

The whole she-bang–a simple black outer sleeve with an inner white box for the Surface.

The inner white box, also with simple branding.

Slide the white box to reveal the touch cover in a little compartment below.

A closer view of the touch cover, with a fairly pleasant black material.

Another view of the touch cover.

Touch cover from the side

Keys on touch cover are slightly raised, but do not click or have any travel.

A closeup of the magnetic connector at the back of the touch cover.

The full touch cover keyboard

Instructions are in tiny little booklet.

Simple and elegant instructions on how to use kickstand and touch cover

Finally, opening the main box

In the box is the Surface tablet and a power supply.

Surface is 12-1/2″ diagonal, in total

On edge

Below the device is another little instruction booklet.

Right edge has speaker, HD video out, USB and connector for power cable.

Connecting the touch cover was simple.  And yes, it did result in a satisfying click.

Another view of the right side of the Surface, including a good view of the kickstand flush against the back of the device

The outside surface of the touch cover is sort of fuzzy.

The magnetic connector for the touch cover

Another view of the touch cover connector

Power supply has folding set of prongs.

Power supply connector on the Surface side is another magnetic connector.

Surface now plugged in

Flipping out the kickstand

Standing on the kickstand, with the touch cover folded up

Side view, kickstand out, touch cover up

Small instruction booklet

Warranty and license junk for Windows (both Windows 8 and Windows RT)

Windows RT instruction manual couldn’t be simpler.

Instructions for the Surface itself, showing the location of various ports

Hardware setup consists of clicking the touch cover onto the Surface.

Software setup consists of pressing power button and following instructions.

Badge with model info is behind the kickstand.

microSD port is behind the kickstand.

View of the edge of touch cover with folded over connector strip

Surface is plugged in and charging.

One final view


16 October, 2012

Azure Pricing for Web and Worker Roles

Filed under: Azure — Sean @ 3:02 am
Tags: ,

Here’s a simple chart showing current Azure pricing for web and worker roles.  The chart shows the per-month cost based on the # of instances and a particular instance size.


Instance Size
# instances XS S Med Lg Xlarge
1 $14.40 $86.40 $172.80 $345.60 $691.20
2 $28.80 $172.80 $345.60 $691.20 $1,382.40
3 $43.20 $259.20 $518.40 $1,036.80 $2,073.60
4 $57.60 $345.60 $691.20 $1,382.40 $2,764.80
5 $72.00 $432.00 $864.00 $1,728.00 $3,456.00
6 $86.40 $518.40 $1,036.80 $2,073.60 $4,147.20
7 $100.80 $604.80 $1,209.60 $2,419.20 $4,838.40
8 $115.20 $691.20 $1,382.40 $2,764.80 $5,529.60
9 $129.60 $777.60 $1,555.20 $3,110.40 $6,220.80
10 $144.00 $864.00 $1,728.00 $3,456.00 $6,912.00
11 $158.40 $950.40 $1,900.80 $3,801.60 $7,603.20
12 $172.80 $1,036.80 $2,073.60 $4,147.20 $8,294.40



Here’s a chart that shows the same data.


15 August, 2012

8 Traits of Great Metro Style Apps

Filed under: Windows 8 — Sean @ 5:07 pm
Tags: , ,

Notes from

8 Traits of Great Metro Style Apps

Bonny Lau

1. Metro design style

  • Content before chrome
    • Leave only most relevant stuff on screen
    • Remove gradients
    • Use typography to shore hierarchy
    • Controls can be in app bar (Win-Z or swipe)
    • Use project templates

2. Be fast and fluid

  • Animation illustrates what is happening
  • Many built into controls
  • Animation library–standard animations
  • Touch-first
    • Windows 8 touch language
      • Press/hold to learn
      • Tap for action

3. Snap and scale beautifully

  • Screen sizes: 1024×768 on up
  • Larger screens, show users more content
  • Snap state

4. Use the right contracts

  • Share, Search, File Picker
  • Any app can share data with other apps
    • Source app provides something to share
    • Target app
  • Every app can be share source
  • Search contract
    • Search app from within Windows
    • Results displayed in app
  • File picker contract
    • Pull files from app or push
  • Invest in good tile

5. Invest in a great tile

  • Front door
  • Highlight content & brand personality

6. Feel connected and alive

  • Dynamic/relevant/personal content on tiles

7. Roam to the cloud

  • Every app gets per-user cloud storage for settings, state, etc.

8. Embrace the Metro design principles

  • Do more with less
  • Pride in craftsmanship (typography matters)
  • Be fast and fluid
  • Authentically digital (connected)
  • Win as one – contracts to work w/other apps

15 December, 2011

Some Cute CYA Code in .NET Source

Filed under: .NET — Sean @ 12:50 pm
Tags: ,

I stumbled upon the following comment in the .NET source code for the ItemsControl class.

In effect, the developer is saying–”I could do this a more elegant fashion.  I just want everyone to know that this is ugly because I was told to do it this way”.

        protected virtual void PrepareContainerForItemOverride(DependencyObject element, object item)
            // Each type of "ItemContainer" element may require its own initialization.
            // We use explicit polymorphism via internal methods for this.
            // Another way would be to define an interface IGeneratedItemContainer with
            // corresponding virtual "core" methods.  Base classes (ContentControl,
            // ItemsControl, ContentPresenter) would implement the interface
            // and forward the work to subclasses via the "core" methods.
            // While this is better from an OO point of view, and extends to
            // 3rd-party elements used as containers, it exposes more public API.
            // Management considers this undesirable, hence the following rather
            // inelegant code.

Who can blame him? I’ve written comments like this myself. Source code as confessional.

14 September, 2011

Windows 8 Developer Preview Install Screenshots

Filed under: Windows,Windows 8 — Sean @ 3:13 pm
Tags: , , ,

Microsoft released a Developer Preview version of Windows 8 at the BUILD conference on 13 Sep 2011.

Here are all of the the screenshots from a clean install of this build of Windows 8.  (Windows 8 M3, build 8102 – pre-beta Milestone 3).

When you power up the machine, the process of booting from the DVD begins.

The Developer Preview announces itself.

You get to the first install screen, where you get to select the language. Under the “Language to Install” option, English was the only choice.

After clicking Next, you get a screen giving you the option of doing the install or starting a repair operation.

After clicking the “Install now” button, the install starts.

The first thing you’ll see is the license agreement.

You then get the option to upgrade or do a clean install.  Note that, according to the keynote, you can not upgrade Windows 7 to Windows 8, but must do a clean install.

Clicking on the Custom button to do a clean install gets you to a page where you select a partition to install Windows 8 to.

The install process then starts.

Things proceed quickly, with the “Expanding Windows files” step taking the longest.

Once the basic install steps have completed, Windows tells you that it’s going to reboot before continuing.

Windows 8 now boots from the hard drive for the first time.  It announces itself once again as the Developer Preview and says that it is “Preparing”.

It then says that it is “Getting Devices Ready”.

When this step is complete, we see that Windows is “Getting system ready”.

And Windows will reboot once again.

After the reboot, we do some more “Preparing”.

And finally, we see the first configuration screen and the first appearance of a Metro style user interface.

In the first step, we give the PC a name.

We then see a Settings page, where we can accept the default recommended settings, or choose “Customize” to set things up explicitly.

When you select “Customize”, you’ll first be asked whether to turn on sharing.

You’ll then see some security-related settings (shown below as two separate screen captures).  It’s actually a little disappointing that they’ve made the text so large that you’re required to scroll to see everything on this page.  They should have either split this into two pages, or used a smaller font so that you could read everything without scrolling.

You’ll then be asked questions about what information you’re prepared to share with Microsoft.  It’s nice that they ask our permission for all of this, but you should note that these options are all ON, by default.

You’ll then see a settings page related to updates.

You now see a Log on screen, where you can log into Windows using your Windows Live ID.

You enter your e-mail address and Windows Live password.

Windows goes off and does something will all of these settings.

You get one more “Preparing” screen.

And Windows does a little more work in configuring your settings.

At this point, you’ll get a brief glimpse of the Windows 8 desktop.

Finally, the Metro user interface shows up, listing all of the apps that you can launch from Metro.

As you scroll to the right, you can see the full set of apps that show up in Metro in this developer preview.

At this point, Windows 8 is up and running.

Note that you can switch to the classic Windows desktop by clicking on the “Desktop” app in the Metro interface, or by pressing the Windows key on your keyboard.  You’ll see the familiar Windows desktop.

Clicking on the Windows icon at the lower left will switch you back to the Metro user interface.

13 September, 2011

BUILD Conference Notes #4 – Keynote, part IV – Windows Live

Filed under: BUILD 2011 — Sean @ 6:21 pm
Tags: , , , ,

BUILD conference keynote, part IV.  Windows 8 and Windows Live.  13 Sep 2011.

Chris Jones.

  • InBox, multiple accounts

  • Share calendars

  • Connected address book

  • Photos – photos from various places

  • SkyDrive – accessible to developers
  • Connect devices via Live – e.g. navigate hard drive
  • Tunneling via Live ID
  • Sharing photos via mail

  • Connected contact list

  • SkyDrive via web site, access to all connected devices

  • Windows Phone 7.5, SkyDrive stuff

  • New Acer touch screen PC with Touch

  • Live apps are all written as new HTML5 Metro apps

  • Hundreds of other features in Windows 8 we haven’t yet seen
  • Sample apps

  • Teams built apps in 10 weeks
  • 17 teams, 2-3 devs per team, 10 weeks
  • College interns built all of the sample apps
  • Here are some of the interns

  • Hmm, intern said “turn on their Slate”
  • Steven, with more to say

  • Windows 8 Developer Preview – pre-release – Visual Studio 11 Express, Blend 5
  • Next milestone Beta.  Then RC, RTM, GA (General Availability)
  • Driven by quality, not by a date
  • Developer Preview will also receive updates
  • Customer Feedback will drive fixes that they make
  •, can download preview, 10PM CST
  • No activation

BUILD Conference Notes #3 – Keynote, part III – Windows 8 Hardware Etc

Filed under: BUILD 2011 — Sean @ 5:59 pm
Tags: , , , ,

BUILD conference keynote, part III.  Windows 8 Hardware and other new features in Windows 8.  13 Sep 2011.

  • Michael Angiulo, Corp VP, Windows Planning and Ecosystem

  • Super fast boot times
  • 8-sec bootup on current in-market laptop

  • Service automatically checks for root kits – tons of new security features

  • New power state – Connected Standby – very low power
  • One-click power switch on tablet – instant on/off

  • Killer feature – instant on/off, just like iPad
  • ATOM and ARM-based systems

  • USB 3.0 – much faster than 2.0

  • Windows 8 supports 256TB drives
  • 4.7 TFlops computing power on killer 3-graphics card system.  (2500x original Cray)

  • Unreal engine and DX11

  • All of Windows 8 is built hardware accelerated graphics
  • Only 1 pixel of chrome around the outside of apps
  • Touch working across wide variety of systems
  • If a screen can run Windows 7, it can automatically run Windows 8

  • 1366 x 768 – can do side-by-side in Metro
  • Sensor API in Win 8

  • NFC (Near Field Communication) built-in (sensor), to recognize objects
  • HD web cam app

  • Win 8 tablet with 3G

  • Resume from Sleep as fast as you can open the lid
  • Thin laptops

  • PC is mostly battery

  • Samsung table PC – 5,000 in warehouse

  • Everyone at BUILD gets one of these
  • “Samsung Windows Developer Preview PC”

  • 2nd generation Core i5
  • Dual monitor
  • 11.6″ diagonal
  • Loaded with Developer Preview of Windows 8
  • Comes with tools, apps

  • Win 8 smaller/faster on widest range of hardware
  • Windows 8 on “professional platform”

  • New Task Manager

  • Apps go into Suspended state when you’re not looking at them

  • New Startup mods in Task Manager
  • Services tab
  • Run command line tool to make current set of settings a baseline for restore
  • Standard performance benchmarks; run suites of tests; compare over machines or over time
  • Remote Desktop

  • Touch enabling on remote session
  • Hyper-V, can run on Windows

  • VHDs, can mount as drives
  • New ribbon in Windows Explorer; new Up button

  • Desktop background can span multiple monitors
  • Can customize taskbar for each monitor separately – i.e. show icons only for apps on that monitor

  • Swap monitor, e.g. run Metro on one monitor, app on another
  • Type “cmd” in Metro, search opens automatically, shows you cmd.exe

  • Weather app

  • IE10 in Windows 8

  • All the normal keyboard/mouse works as usual
  • Can open app in either Metro panel or with normal Windows desktop frame
  • Internet Explorer 10 Platform Preview 3
  • Mulit-touch in IE10

  • Magnifier

  • Ease of Access – can make everything bigger
  • Thumb-by-Thumb keyboard layout

  • Ink / Pen

  • All personal settings roam

BUILD Conference Notes #2 – Keynote, part II – Building Applications

Filed under: BUILD 2011 — Sean @ 5:07 pm
Tags: , ,

BUILD conference keynote.  13 Sep 2011, 11:30AM CST.

  • Today

  • Windows 8 platform for Metro apps

  • Windows kernel – brought forward – robust, scalable
  • Windows Runtime – Win RT – APIs
  • WinRT – over 1800 objects
  • Application Model – natively built into Windows; all native code
  • Is .NET Framework gone?  Where does it live in this picture?
  • You pick the language that you want to use
  • Antoine Leblond – building apps

  • New Project, pick language

  • Templates are fully-functioning metro-style apps

  • Adding some HTML5 elements

  • Writing some code (Javascript)

  • Run the app – browser launches

  • Ugh, back to procedural code.  Step backwards, if you talk to a XAML developer

  • Sharing to social network

  • Blend 5 has support for HTML5

  • Using new CSS layout Grid

  • Previewing app at different resolutions and screen orientations

  • 58 lines of code for basic little HTML5 app

  • Packaging app into app store

  • Set price for your app

  • Built-in licensing model, including trialware option
  • App certification process.  Shows you where your app is in the process

  • Technical Compliance – developers can run tests in advance using MS-supplied tools
  • App Store, Spotlight section

  • Games in App Store

  • App Store is itself a metro-style HTML5 app
  • Steven is excited

  • App listing page in App Store

  • What about Win32 apps?
  • Start screen can list Win32 apps as well (e.g. Quicken)

  • Developers are NOT forced to use new Microsoft licensing model
  • Old apps can just be listed in App Store
  • XAML – where does it fit in?
  • Silverlight apps can run in new browser in Windows 8
  • Works the same way as in Windows 7, but not Metro app
  • Converting Silverlight app into Metro-style app
  • Converting from Silverlight environment to Windows 8 – only requires a handful of changes (e.g. namespaces)
  • Ported Silverlight now allows touch, full Metro app.  But it’s still XAML.

  • Change view in XAML to Windows 8 GridView.  Still XAML.
  • And can connect to Search Charm in Windows 8
  • We now can run Silverlight app with new Windows 8 grid view

  • New APIs/tools to build Metro apps
  • Rapid/scalable development
  • Your choice of languages and development tools
  • Apps automatically run on all the hardware that Windows 8 supports
Next Page »

The Rubric Theme Blog at


Get every new post delivered to your Inbox.

Join 434 other followers