TechEd NA 2014 – Keynote

TechEd North America 2014, Houston
Keynote – Brad Anderson, Josh Twist, Matt McSpirit, Adam Hall, Brian Harry, Richard White, Eron Kelly, Julia White

Day 1, 12 May 2014, 9:00AM-10:30AM

Disclaimer: This post contains my own thoughts and notes based on attending TechEd North America 2014 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 either Microsoft, the presenters or the speakers.

Executive Summary—Sean’s takeaways

  • Mobile-First, Cloud-First
  • Focusing on Mobile Apps + Cloud Services is critical
  • For Cloud, Azure is a great solution
    • Highly scalable
    • Supports lots of hybrid (on premise + cloud) scenarios
    • Good support for analytics
    • Resilient—e.g. automatic failover
  • Mobile Apps
    • Must support iOS and Android
    • Microsoft supports identity and app management on these devices
    • IT control of apps and data
  • Story for Developers
    • Easier and easier to create cross-platform solutions (Visual Studio + Xamarin)
    • Native apps for best experience and for leveraging existing .NET skills
    • Hybrid apps, HTML5 + Cordova, if your devs have HTML5 experience
  • Story for Users
    • Touchy-feely video—things basically getting cooler for users all of the time
  • Office 365
    • Very cool, running on a variety of platforms
    • Multiple users
    • IT management

Full video

Brad Anderson – Corporate Vice President, Windows Server and System Center Program Management

On Satya—no better leader, no better human

Reflecting on past 10 years

Connected devices

  • 2008 – more connected devices than humans
  • Now hyperscale

Growing number of users, growing # of connect devices

  • Lots of data
  • High dependent on cloud

]:05 video – Mobile cloud, video]

Video – mobile cloud – various speakers

  • Costs very little to store all this data
  • Devices can access this data
  • Lots of compute power + lots of connectivity


  • Two loops
    • Device – data
    • Device – human
  • Detecting Parkinsons by detecting micro tremors
  • Guthrie – important to engage customers
  • Data lets you engage and collaborate
  • “Start dreaming” – If you don’t dream, you won’t go anywhere

Mobile-first and cloud-first

  • Must have both
  • Cloud with devices is untapped potential
  • Devices without cloud is the same—untapped potential

Bring together – IT Pros, Devs, End Users

  • Want all these groups to get value from the cloud
  • Public cloud can bring value to everything you do

IT Pros – Cloud

  • Stop thinking as private/public clouds as separate
  • The cloud is integral to your datacenter
    • Will let you deliver new things to your customers
  • Think about—the organization you choose for public cloud

Three attributes for public cloud provider

  • Scale – hyperscale – only three organizations doing this right now
    • Willing to back SLA financially
  • Enterprise proven
  • Hybrid
    • Build application on any cloud, deploy on any cloud

I submit..

  • If you use these attributes to pick provider, Microsoft stands alone

Example of organizations using Azure

  • Walsh, Paul Smith, NBC Olympics, Blink Box, TitanFall

What could you do with unlimited computing power?

  • TitanFall – Respawn

TitanFall vide

  • Figures out nearest data center
  • Spins up dedicated server
  • More consistent experience – no host advantage
  • “throw ’em a server”
  • Constantly available set of servers
  • AI powered by server – wouldn’t be feasible if it was client-hosted

Day one – 100,000 VMs running around the world

  • Controlled by <150 employees

Infrastructure of Azure

  • 16 different regions
  • Azure Active Directory – 2B authentications per day
  • Cloud is your design point
  • Foundation of data centers is Windows Server
  • Network of compatible clouds

Embrace cloud culture thru hybrid


  • Identity – AAD, rights management, Cloud App Discovery
  • Compute – IaaS, compute intensive VMs
  • Networking – dedicated high-speed link, ExpressRoute, redundancy
  • Storage – Analytics Platform System, Azure Files preview


  • Applications always require database
  • SQL Server 2014 – 30x increase in performance, w/o rewriting application (3000%)
  • Azure Redis Cache Preview
  • API Management Preview
    • Build API for your customers, share

Josh Twist – Demo on API Management

Story about Wellmark (health care provider), using Azure API Management

  • Partner-facing dev portal
  • Document that tells devs how to use API, dynamically generated
  • Can generate code samples, platform-specific

Publisher experience

  • Dashboard for API
  • Enable caching
  • Policy configuration –
    • Rate limit on API
    • Quotas

Back to developer portal

  • Developer console, generated by API platform
  • Can exercise API in real-time
  • Demo rate limit – hit several times, then get 429 Too Many Requests response

Insight into trends, usage, health of API – Analytics

  • Summary of API
  • Geographical distribution, can drill in, see state by state


  • Protect API, get insight
  • Available today in the Azure portal

Brad Anderson back

Business continuity

  • SQL Server 2014 AlwaysOn
  • Anti-malware added to Azure
  • w/TrendMicro, additional security options
  • Encrypted Storage for Office 365 – every file encrypted with its own key
  • Site Recovery Preview – (HyperV Replication Manager) – disaster recovery
    • Azure can be location where you store copy for disaster recovery
    • Seamlessly failover to Azure
    • Simple, can apply to all services in data center
    • Azure can monitor health of your VMs, auto launch failover stuff

Matt McSpirit – Senior Product Marketing Manager, Microsoft – Failover Demo

Site Recovery – secondary location can be Azure

  • Replication and recovery of your on-premises data centers
  • Number of protected clouds, all on-premises, managed by Systems Center
  • Configured for Replication and Recovery

Configuring cloud

  • Replication interval down to 30 secs
  • # recovery points
  • Encryption at rest

On premises networks mapped to Azure networks

How VMs failover in controlled way

  • Should be automatic
  • Recovery plans – series of steps that executed in event of a failover
  • Done in groups of services
  • Can be manual action – asks someone to do something, waits for OK

Initiating failover

  • Can test failover, prior to initiation
  • “Planned failover” – primary site still online
  • Just click

Brad Anderson back

Telemetry data

  • 100% success with failovers

Mobile side (mobile-first)

  • The cloud is integral your enterprise mobility
  • Devices are lit up with various apps, become extension of who we are

Enterprise mobile needs

  • How do you enable users to be productive on their devices, while keeping company secure
  • Three big categories for things that you need
    • Identity management
    • Device/application management
    • Information protection

Identity management

  • Leverage your investment in Active Directory
    • Common identity across all SaaS apps
  • First app to bring under management – e-mail
    • E.g. Outlook on iPad/Android
  • Will be bringing set of app wrappers on iOS/Android that will let you bring your apps to those platforms
  • Layered approach for protection
    • Protect device
    • Protect application
  • Protection that travels with file – Azure Rights Management service
    • Access rights travel with file

Enterprise Mobility Suite

  • $4/user/mon – independent of # devices

Azure Remote App

  • Remote desktop services that run in Azure
  • Remote app down to devices
  • 4,000,000 downloads of RDS apps on devices

Adam Hall – Senior Product Marketing Manager, Microsoft – Azure Remote App Demo

Hey, this is the third British guy that we’ve seen. Rule Britannia!

Users logs onto SaaS app, e.g. Office 365

Page

  • User goes to sign-in page, enters AAD creds, connects to Outlook
  • AAD administration portal
  • Security reports – 2B authentications / day
  • Sign-in from multiple geographical regions – users who have logged in from 2 geographies that you can’t travel between
    • Likely compromised account
    • Administrator can reset password or enforce multi-factor authentication
  • User list
  • Can look at which applications each user is accessing
    • 80% of users admit using non-approved applications

Cloud App Discovery tool – Azure RemoteApp

  • See what apps users are accessing
  • Can control which applications a user can use

Azure Remote App (new)

  • Can publish access to applications that users can access

Brad Anderson back again


  • What can cloud bring to developers
  • E.g. company that has 10,000 apps that users use
  • End user experience – based on apps that users use
  • Cloud is integral to accelerating application innovation


  • Multi device
  • Iterate quickly
  • Rapid development


  • Universal Windows Applications
    • Single project in Visual Studio, 90% of code applies across all Windows platforms

Cortana demo

  • First and only personal digital assistant in cloud
  • Powered by cloud – watches what I do
  • Surfaces up the things that are relevant to me
  • Search example
    • Shows things that are important
  • “What’s on my calendar for Thursday”
  • “Go see Godzilla Friday the 17th at 7PM”
    • “Just so you no..” you have – calendar conflict
  • “Find me the best barbecue in Houston”
    • Good reviews – interact with Yelp
  • It knows who I am
  • “Next time I speak with Chris, remind me to congratulate him on his daughter’s graduation”
  • Don’t have to speak, can interact with keyboard
  • “email from Chris”
    • Reminders show up
  • Speak name of app and then request
    • “Contoso find jobs near me”
    • Can enable your apps with Cortana

Mobile device management also works on phones

  • Historically – Rich experiences vs. Breadth of devices
  • .NET for Android and iOS
    • Through partnership with Xamarin
    • 60-70% of code in common

Hybrid Apps

  • Multi-device hybrid apps
  • HTML, but with much richer experience
  • Cordova partnership


  • Agile, Fast, Open

Brian Harry – Corporate Vice President, Microsoft – Application Lifecycle Management

Application Lifecycle Management

  • Key ingredient is integration

Visual Studio Online

  • Bring ALM value to cloud
  • >1 million users
  • SLA of 99.9%

Need to integrate tools with Visual Studio

  • New open APIs for Visual Studio online – allow integrating apps with VS Online

Richard White – CEO, Founder, UserVoice

Make user feedback actionable

Have done integration with Visual Studio

  • Prod Mgr & Eng Mgr
  • Looking at public portal
  • Product Manager – admin console
  • Can send item to Engineering team
  • Create Work Item – synchs to Visual Studio
  • On VS side, shows up on Backlog items

CanBan board

  • New => Approved
  • Add comment to Bug
  • Updated item in User Voice – see history of item
  • Prod Mgr can then mark item in User Voice as “started”
    • Will send message to users who said they wanted feature

Brad Anderson back again


  • How can users get value in Mobile-First, Cloud-First world
  • The cloud enables your users to do the things they’ve only dreamed of

Users video – What users can do

  • World has become giant network
  • Hyper connected world
  • What if you were connected to everything important
  • Plugged into everything that matters
  • Collaborating
  • Exchanging ideas
  • Listening to employees, customers, partners
  • Adapt quickly
  • Share information in real-time
  • One connected network
  • You understand customers
  • Power of the network
  • “Work like a network”


  • From information to action
    • Must focus
    • Technology must help us
  • Work like a network
    • Don’t lock up communications within organization
    • Share across organizations
    • Much more open environment
  • Responsible empowerment
    • Strike balance between corporate/personal

Information – Action

  • Need comprehensible data platform
  • Analytics engine
    • HDInsight, based on Hadoop
  • Get data to people
    • Using tools/capabilities that customers want to use
    • Surface everything through Excel
    • BI available in Office

Eron Kelly – General Manager, Microsoft

City of Barcelona – hosting festival

  • Bicing – Rent bike
  • Where are the bikes?
  • Measure social sentiment – what do users think?


  • Search from Excel
  • Look at “social sentiment data” up in cloud
  • Merge data set with existing analytics
  • Now, with map, can view various data

Q&A, asking question in natural language

  • “Total bikes available”
  • “Total bikes by street” – bar chart
  • “vs. xxx” – scatter chart
  • “tweet messages for streetname” – lists tweets

Brad Anderson again

Office Graph

  • Runs in cloud, understand individual’s intent
  • Surface data up to Office tools

Open Communications

  • What if all communications were “open” by default?

Mobile Productivity

  • Natively instrument Office 365 across all platforms
  • Entune
  • E.g. control where users save documents

Julia White – General Manager, Microsoft

Office 365 & Entune

OneDrive for Business

  • Struggling with “rogue” applications
  • 1 TB storage per user
  • Drag/drop content into web portal
  • Sync – syncs to local content in Windows Explorer
  • Share content – sharing icon – can enter people, from Active Directory, or from people outside company
    • Admin can control sharing
  • Collaboration
    • By default, edit in browser, but can edit in desktop app
    • Can see other people currently editing
    • Can see them editing in real-time
  • Go to ribbon, Tell Me, type “insert table”
    • Takes you right to command
  • Share with company – using Yammer – Post


  • Social aspect – how we work with groups of people
  • Future view of Groups, open communication
    • Group that people can find and join
    • Sure looks like Facebook

Outlook – now has Yammer Groups

  • Can attach to same conversation from Outlook
  • Can look at what groups some other guy is part of
  • Can view conversation in a particular group
  • Public vs. Private groups

Oslo app, built on Office Graph

  • Surfaces view of content that’s relevant to this user
  • Real-time stuff based on your actions, personalized
  • Tells you, for each item, what the source is—why it’s showing it to you
  • Some default searches – things “presented to me”
    • Based on meetings you’ve been in
  • Two views of Bill – org chart
    • Also how he’s spending time, who he’s working with
  • Can see what content is trending on that you also have permission for

Working on all devices, iPad demo

  • Open Word, can open document that you were just working on
  • “One source of the truth”
  • Unmistakably Word, but also really natural
  • Balance – familiar app experience, but fits into iOS experience
  • Easy to interact with touch on these devices
  • Context specific Ribbon command
  • Making changes live, will appear on other platforms
  • Always keep file fidelity, across all platforms
  • Co-editing also on iPad

New stuff coming in future

  • Office 365 & InTune
  • Mobile device management on Office 365 on iPad
  • IT can apply policies and controls
  • Outlook demo, open Excel
  • Only shows apps that IT has approved for business purposes
  • Better format, opening in Excel
  • Try sharing from native e-mail app on iPad => can’t paste document into e-mail
  • But can send document from Outlook
  • Business content stays only in managed/approved apps

Brad Anderson back again

Story about three customers using Office 365

  • Mitchells and Butlers – managing 20,000 mobile devices with 2 people
  • British Airways – 11,000 people on Yammer
  • Xx Golf – using InTune to manage laptops and iPads

Enterprise Mobility platform

  • Office 365
  • Mobility Suite
  • “Most comprehensive mobile solution”

The mobile-first cloud-first enterprise

  • We believe deeply in this

BUILD 2014 – Day 2 Keynote

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!








Azure Pricing for Web and Worker Roles

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.


Session – Services Symposium: Enterprise Grade Cloud Applications

PDC 2008, Day #4, Session #2, 1 hr 30 mins

Eugenio Pace

My second session on Thursday was a continuation of the cloud services symposium from the first session.  There was a third part to the symposium, which I did not attend.

The presenter for this session, Eugenio, was not nearly as good a presenter as Gianpaolo from the previous session.  So it was a bit less dynamic, and harder to stay interested.

The session basically consisted of a single demo, which illustrated some of the possible solutions to the Identity, Monitoring, and Integration challenges mentioned in the previous session.


Eugenio pointed out the problems involved in authentication/authorization.  You don’t want to require the enterprise users to have a unique username/password combination for each service that they use.  And pushing out the enterprise (e.g. Active Directory) credential information to the third party service is not secure and creates a management nightmare.

The proposed solution is to use a central (federated) identity system to do the authentication and authorization.  This is the purpose of the Azure Access Control service.


The next part of the demo showed how Azure supports remote management, on the part of IT staff at an individual customer site, of their instance of your application.  The basic things that you can do remotely include:

  • Active real-time monitoring of application health
  • Trigger administrative actions, based on the current state

The end result (and goal) is that you have the same scope of control over your application as you’d have if it were on premises.

Application Integration

Finally, Eugenio did some demos related to “process integration”—allowing your service to be called from a legacy service or system.  This demo actually woke everyone up, because Eugenio brought an archaic green-screen AS400 system up in an emulator and proceeded to have it talk to his Azure service.


The conclusions were recommendations to both IT organizations and ISVs:

  • Enterprise IT organization
    • Don’t settle for sub-optimal solutions
    • Tap into the benefits of Software+Services
  • ISV
    • Don’t give them an excuse to reject your solution
    • Make use of better tools, frameworks, and services

Session – Services Symposium: Expanding Applications to the Cloud

PDC 2008, Day #4, Session #1, 1 hr 30 mins

Gianpaolo Carraro

As the last day of PDC starts, I’m down to four sessions to go.  I’ll continue doing a quick blog post on each session, where I share my notes, as well as some miscellaneous thoughts.

The Idea of a Symposium

Gianpaolo started out by explaining that they were finishing PDC by doing a pair of symposiums, each a series of three different sessions.  One symposium focused on parallel computing and the other on cloud-based services.  This particular session was the first in the set of three that addressed cloud services.

The idea of a symposium, explained Gianpaolo, is to take all of the various individual technologies and try to sort of fit the puzzle pieces together, providing a basic context.

The goal was also present some of the experience that Microsoft has gained in early usage of the Azure platform over the past 6-12 months.  He said that he himself has spent the last 6-12 months using the new Services, so he had some thoughts to share.

This first session in the symposium focused on taking existing business applications and expanding them to “the cloud”.  When should an ISV do this?  Why?  How?

Build vs. Buy and On-Premises vs. Cloud

Gianpaolo presented a nice matrix showing the two basic independent decisions that you face when looking for software to fulfill a need.

  • Build vs. Buy – Can I buy a packaged off-the-shelf product that does what I need?  Or are my needs specialized enough that I need to build my own stuff?
  • On-Premises vs. Cloud – Should I run this software on my own servers?  Or host everything up in “the cloud”?

There are, of course, tradeoffs on both sides of each decision.  These have been discussed ad infinitum elsewhere, but the basic tradeoffs are:

  • Build vs. Buy – Features vs. Cost
  • On-Premises vs. Cloud – Control vs. Economy of Scale

Here’s the graph that Gianpaolo presented, showing six different classes of software, based on how you answer these questions.  Note that on the On-Premises vs. Cloud scale, there is a middle column that represents taking applications that you essentially control and moving them to co-located servers.

This is a nice way to look at things.  It shows that, for each individual software function, it can live anywhere on this graph.  In fact, Gianpaolo’s main point is that you can deploy different pieces of your solution at different spots on the graph.

So the idea is that while you might start off on-premises, you can push your solution out to either a co-located hosting server or to the cloud in general.  This is true of both packaged apps as well as custom-developed software.


The main challenge in moving things out of the enterprise is dealing with the various issues that show up now when your data needs to cross the corporate/internet boundary.

There are several separate types of challenges that show up:

  • Identify challenges – as you move across various boundaries, how does the software know who you are and what you’re allowed to access?
  • Monitoring and Management challenges – how do you know if your application is healthy, if it’s running out in the cloud?
  • Application Integration challenge – how do various applications communicate with each other, across the various boundaries?

Solutions to the Identity Problem

Gianpaolo proposed the following possible solutions to this problem of identity moving across the different boundaries:

  • Federated ID
  • Claim-based access control
  • Geneva identity system, or Cardspace

The basic idea was that Microsoft has various assets that can help with this problem.

Solutions to the Monitoring and Management Problem

Next, the possible solutions to the monitoring and management problem included:

  • Programmatic access to a “Health” model
  • Various management APIs
  • Firewall-friendly protocols
  • Powershell support

Solutions to the Application Integration Problem

Finally, some of the proposed solutions to the application integration problem included:

  • ServiceBus
  • Oslo
  • Azure storage
  • Sync framework

The ISV Perspective

The above issues were all from an IT perspective.  But you can look at the same landscape from the perspective of an independent software vendor, trying to sell solutions to the enterprise.

To start with, there are two fundamentally different ways that the ISV can make use of “the cloud”:

  • As a service mechanism, for delivering your services via the cloud
    • You make your application’s basic services available over the internet, no matter where it is hosted
    • This is mostly a customer choice, based on where they want to deploy
  • As a platform
    • Treating the cloud as a platform, where your app runs
    • Benefits are the economy of scale
    • Mostly an ISV choice
    • E.g. you could use Azure without your customer even being aware of it

When delivering your software as a service, you need to consider things like:

  • Is the feature set available via cloud sufficient?
  • Firewall issues
  • Need a management interface for your customers

Some Patterns

Gianpaolo presented some miscellaneous design considerations and patterns that might apply to applications deployed in the cloud.


  • Design for average load, handling the ‘peak’ as an exception
  • I.e. only go to the cloud for scalability when you need to

Worker / Queue / Blob Pattern

Let’s say that you have a task like encoding and publishing of video.  You can push the data out to the cloud, where the encoding work happens.  (Raw data places in a “blob” in cloud storage).  You then add an entry to a queue, indicating that there is work to be done, and a separate worker process eventually does the encoding work.

This is a nice pattern for supporting flexible scaling—both the queues and the worker processes could be scaled out separately.

CAP: Pick 2 out of 3

  • Consistency
  • Availability
  • Tolerance to network Partitioning

Eventual Consistency (ACID – BASE)

The idea here is that we are all used to the ACID characteristics listed below.  We need to guarantee that the data is consistent and correct—which means that performance likely will suffer.  As an example, we have a process submit data synchronously because we need to guarantee that the data gets to its destination.

But Gianpaolo talked about the idea of “eventual consistency”.  For most applications, while it’s important for your data to be correct and consistent, it’s not necessarily for it to be consistent right now.  This leads to a model that he referred to as BASE, with the characteristics listed below.

  • ACID
    • Atomicity
    • Consistency
    • Isolation
    • Durability
  • BASE
    • Basically Available
    • Soft state
    • Eventually consistent

Fundamental Lesson

Basically the main takeaway is:

  • Put the software components in the place that makes the most sense, given their use

Session – Building Mesh-Enabled Web Applications Using the Live Framework

PDC 2008, Day #3, Session #5, 1 hr 15 mins

Arash Ghanaie-Sichanie

Throughout the conference, I bounced back and forth between Azure and Live Mesh sessions.  I was trying to make sense of the difference between them and understand when you might use one vs. the other.

I understand that Azure Services is the underlying platform that Live Services, and Live Mesh, are built on.  But at the outset, it still wasn’t quite clear what class of applications Live Services were targeted at.  Which apps would want to use Live Services and which would need to drop down and use Azure?

I think that after Arash’s talk, I have a working stab at answering this question.  This is sort of my current understanding, that I’ll update as things become more clear.

Question: When should I use Live Services / Live Mesh ?


  • Create a Live Mesh application (Mesh-enabled) if your customers are currently, or will become, customers.
  • Otherwise, use Azure cloud-based services outside of Live, or the other services built on top of Azure:
    • Azure storage services
    • Sync Framework
    • Service Bus
    • SQL Data Services

Unless I’m missing something, you can’t make use of features of the Live Operating Environment, either as a web application or a local desktop client, unless your application is registered with, and your user has added your application to his account.

The one possible loophole that I can see is that you might just have your app always authorize, for all users, using a central account.  That account could be pre-created and pre-configured.  Your application would then use the same account for all users, enabling some of the synchronization and other options.  But even this approach might not work—it’s possible that any device where local Mesh data is to be stored needs to be registered with that Live account and so your users wouldn’t normally have the authorization to join their devices to your central mesh.

Three Takeaways

Arash listed three main takeaways from this talk:

  • Live Services add value to different types of applications
  • Mesh-enabled web apps extend web sites to the desktop
  • The Live Framework is a standards-based API, available to all types of apps

How It All Works

The basic idea is to start with a “Mesh-enabled” web site.  This is a web site that delivers content from the user’s Mesh, including things like contacts and files.  Additionally, the web application could store all of its data in the Mesh, rather than on the web server where it is hosted.

Once a web application is Mesh-enabled, you have the ability to run it on various devices.  You basically create a local client, targeted at a particular platform, and have it work with data through the Live Framework API.  It typically ends up working with a cached local copy of the data, and the data is automatically synchronized to the cloud and then to other devices that are running the same application.

This basically implements the Mesh vision that Ray Ozzie presented first at Mix 2008 in Las Vegas and then again at PDC 2008 in Los Angeles.  The idea is that we move a user’s data into the cloud and then the data follows them around, no matter what device they’re currently working on.  The Mesh knows about a user’s:

  • Devices
  • Data, including special data like Contacts
  • Applications
  • Social graph  (friends)

The User’s Perspective

The user must do a few things to get your application or web site pointing at his data.  As a developer, you send him a link that lets him go sign up for a account and then register your application in his Mesh.  Registration, from the user’s perspective, is a way for him to authorize your application to access his Mesh-based data.

Again, it’s required that the user has, or get, a account.  That’s sort of the whole idea—we’re talking about developing applications that run on the Live platform.

Run Anywhere

There is still work to be done, on the part of the developer, to be able to run the application on various devices, but the basic choices are:

  • Locally, on a client PC or Mac
  • In a web browser, anywhere
  • From the Live Desktop itself, which is hosted in a browser

(In the future, with Silverlight adding support for running Silverlight-sandboxed apps outside of the browser, we can imagine that as a fourth option for Mesh-enabled applications).

The Developer’s Perspective

In addition to building the mesh application, the developer must also register his application, using the Azure Services Portal.  Under the covers, the application is just an Azure-based service.  And so you can leverage the Azure standard goodies, like running your service in a test mode and then deploying/publishing it.

One other feature that is made available to Mesh application authors is the ability to view basic Analytics data for your application.  Because the underlying Mesh service is aware of your application, wherever it is running, it can collect data about usage.    The data is “anonymized”, so you can’t see data about individual users, but can view general metrics.

Arash talked in some detail about the underlying security model, showing how a token is granted to the user/application.


Mesh obviously seems a good fit for some applications.  You can basically run on a platform that gives you a lot of services, as well as access to useful data that may already exist in a particular user’s Mesh environment.  There is also some potential for cross-application sharing of data, once common data models are agreed upon.

But the choice to develop on the Mesh platform implies a decision to sign your users up as part of the Mesh ecosystem.  While the programming APIs are entirely open, using basic HTTP/REST protocols, the platform itself is owned/hosted/run exclusively by Microsoft.

Not all of your users will want to go through the hassle of setting up a Live account in order to use your application.  What makes it a little worse is that the process for them is far from seamless.  It would be easier if you could hide the Live branding and automate some of the configuration.  But the user must actually log into and authorize your application.  This is a pretty high barrier, in terms of usability, for some users.

This also means that your app is betting on the success of the platform itself.  If the platform doesn’t become widely adopted, few users will live (pardon the pun) in that environment.  And the value of hosting your application in that ecosystem becomes less clear.

It remains to be seen where Live as a platform will go.  The tools and the programming models are rich and compelling.  But whether the platform will live up to Ozzie’s vision is still unclear.

Session – Windows Azure Tables: Programming Cloud Table Storage

PDC 2008, Day #3, Session #3, 1 hr 15 mins

Pablo Castro, Niranjan Nilakantan

Pablo and Niranjan did a session that went into some more detail on how the Azure Table objects can be used store data in the cloud.


This talk dealt with the “Scalable Storage” part of the new Azure Services platform.  Scalable Storage is a mechanism by which applications can store data “in the cloud” in a highly scalable manner.

Data Types

There are three fundamental data types available to applications using Azure Storage Services:

  • Blobs
  • Tables
  • Queues

This session focused mainly on Tables.  Specifically, Niranjan and Pablo addressed the different ways that an application might access the storage service programmatically.


Tables are a “massively scalable” data type for cloud-based storage.  They are able to store billions of rows, are highly available, and “durable”.  The Azure platform takes care of scaling out the data automatically to multiple servers, if necessary.  (With some hints on the part of the developer).

Programming Model

Azure Storage Services are accessed through the ADO.NET Data Services (Astoria).  Using ADO.NET Data Sercices, there are basically two ways for an application to access the service.

  • .NET API   (System.Data.Services.Client)
  • REST interface   (using HTTP URIs directly)

Data Model

It’s important to note that Azure knows nothing about your data model.  It does not store data in a relational database or access it via a relational model.  Rather, you specify a Table that you’d like to store data in, along with a simple query expression for the data that you’d like to retrieve.

A Table represents a single Entity and is composed of a collection of rows.  Each row is uniquely defined by a Row Key, which the developer specifies.  Additionally, the developer specifies a Partition Key, which is used by Azure in knowing how to split the data across multiple servers.

Beyond the Record Key and Partition Key, the developer can add any other properties that she likes, up to a total of 255 properties.  While the Record and Partition Keys must be string data types, the other properties support other data types.


Azure storage services are meant to be automatically scalable, meaning that the data will be automatically spread across multiple servers, as needed.

In order to know how to split up the data, Azure uses a developer-specified Partition Key, which is one of the properties of each record.  (Think “field” or “column”).

The developer should pick a partition key that makes sense for his application.  It’s important to remember two things:

  • Querying for all data having a single value for a partition key is cheap
  • Querying for data having multiple partition key values is more expensive

For example, if your application often retrieves data by date and shows data typically for a single day, then it would make sense to have a CurrentData property in your data entity and to make that property the Partition Key.

The way to think of this is that each possible unique value for a Partition Key represent a “bucket” that will contain one or more records.  If you pick a key that results in only one record per bucket, that would be inefficient.  But if you pick a key that results in a set of records in the bucket that you are likely to ask for together, this will be efficient.

Accessing the Data Programmatically

Pablo demonstrated creating the classes required to access data stored in an Azure storage service.

He started by creating a class representing the data entity to be stored in a single table.  He selected and defined properties for the Partition and Record key, as well as other properties to store any other desired data in.

Pablo also recommended that you create a single class to act as an entry point into the system.  This class then acts as a service entry point for all of the data operations that your client application would like to perform.

He also demonstrated using LINQ to run queries against the Azure storage service.  LINQ automatically created to corresponding URI to retrieve, create, update, or delete the data.


Pablo and Niranjan also touched on a few other issues that most applications will deal with:

  • Dealing with concurrent updates  (uses Etag and if-match)
  • Pagination  (using continuation tokens)
  • Using Azure Queues for pseudo-transactional deletion of data


Pablo and Niranjan demonstrated that it was quite straightforward to access Azure storage services from a .NET application.  It’s also the case that non-.NET stacks could make use of the same services using a simple REST protocol.

It was also helpful to see how Pablo used ADO.NET Data Services to construct a service layer on top of the Azure storage services.  This seems to make consuming the data pretty straightforward.

(I still might have this a little confused—it’s possible that Astoria was just being used to wrap Azure services, rather than exposing the data in an Astoria-based service to the client.  I need to look at the examples in a little more detail to figure this out).

Original Materials

You can find the video of the session at: