My Windows 8 App Dev Week – Keeping the Source Safe

Apps are all about the code behind them…  Every line of code written is like another stroke of an artist’s brush.  Well thought out and designed code is like art and once you lay it down you don’t want to lose it.  That’s why I never write a single line of code without being connected to some sort of source control system.  I used to be a Build Engineer and my dad is a Configuration Management (CM) guru so I guess you could say it’s just in my blood.

This article is from a short series “My Windows 8 App Dev Week” so you may want to checkout the others as well.

TFS in the Cloud

Good CM and dev practices are about more than just source control and build process.  It’s about integrated planning, development, test, etc.  Having great infrastructure to support development, even in very small teams, is critical to DevOps.  The more developers can just focus on building and designing systems the more amazing their creations can become.

One of the main promises of cloud is that an organization can focus on it’s core competencies instead of investing in the acquisition and maintenance of infrastructure.  DevOps is no different which is why we’re building a cloud version of Team Foundation Server called Team Foundation Service.


This is built on top of Windows Azure and is integrated deeply with Visual Studio.  You can also use Team Foundation Service with Eclipse and your programming language of choice.

Setting it Up

First thing to do is to sign up for a trial account.  I did this months ago so I don’t have any detailed screenshots I can share right now.

Once have an account setup you need to create a new project.


Within seconds you will have a full blown enterprise-class Application Lifecycle Management (ALM) system up and running which is AWESOME!


Once you’re setup, as long as you already Visual Studio installed, the easiest way to get connected is launching Visual Studio right from the Team Foundation Service portal.


From there just make sure login with the same Microsoft Account that you used to setup Team Foundation Service.


That will automatically connect Team Explorer within Visual Studio up to Team Foundation Service.  From there just launch the Source Control Explorer.


Now map a local path on your machine where you want to store your source code on your machine.


Now you’re good to go!  You can use Source Control Explorer to manage code check ins and outs or you can bind your solution to Team Foundation Service and Visual Studio will prompt you.

Now Go Write Some Damn Code!

So…  I guess I am a bit of CM geek.  I never even do tutorials or write sample code without being connected to some sort of source control system.  Now I can work from any of my machines and be confident that if my hard drive dies, I drop my laptop or spill carrot juice on the keyboard (all of which I’ve done in the past few months) my precious art (code) will be safe.

In this article I’ve only scratched the surface of the power of Team Foundation Service.  I’ve used it on a couple of projects using Scrum over the past 9 months and it did exactly what it should which is just get out of the way of the development team being productive and help the team move fast and build great products.

My Windows 8 App Dev Week – The Idea

One of the core things the division I work for at Microsoft does is help developers build apps for Windows 8.  It’s a dirty little secret but I’ve never actually been a .NET developer…  Shhhh, don’t tell anyone.  As a developer I’ve always written code for web applications mostly using PHP, Java and ColdFusion for the backend services and I’ve been building standards-based interfaces with HTML, JavaScript and CSS since the 90’s.  Now that Windows supports the ability to write Windows 8 apps using JavaScript, CSS and HTML I feel like the world of Windows development is finally opened up to me!

This article is from a short series “My Windows 8 App Dev Week” so you may want to checkout the others as well.

My Surface

Last Thursday night at midnight I was one of the first people in the world to buy a Surface RT device and I LOVE IT!!!


After having used my Surface non-stop over the weekend there’s no doubt in my mind that Windows 8 will be a total hit.  There are some things that need to be improved (which I’m confident we will do) but all-in-all it is an amazing device and an amazing OS.  So, I’m convinced…  Now it’s time to build an app and publish it to the Windows Store.

My App Idea

A lot of great startups and inventions are created because the founder was trying to create a solution for something in their own life.  For me, leading a team of Technical Evangelists in China creates some interesting challenges.  At the core of those challenges is communication.  There are lots of facets of communication but the most obvious for me is language.  I continue working hard at learning Chinese and can communicate verbally fairly well.  Most of the meetings in Microsoft China are in Chinese and I can usually follow most of the conversation and sometimes respond in Chinese.  My Chinese character reading and writing though has a VERY LONG way to go.  Now here’s the problem…

One of the important things that my team does is blogging.  This year, in particular, our whole division has really stepped up the amount of blogging we are doing which has been fun and is showing results.  Since the Technical Evangelists on my team all blog in Chinese it’s pretty difficult for me to follow.  The best solution currently for me is to use Bing Translator or Chrome with Google Translator (which is integrated better that Bing Translator and IE in my opinion).


What I want to build is an app that’s basically a blog reader/content aggregator but also has integrated translation through the Bing Translator API.  Instead of it being a generic content aggregator I want it to be specific for my team…  Something like “The Pulse of Microsoft China Cloud Evangelism”.

Live to Code Hackathon

Not only am I picking this week to build this app because I’m stoked about Windows 8 and my new Surface, but this weekend is set to be one of the biggest (maybe the biggest) hackathons in the world!  These 36 hour code fueled events will be taking place in 6 cities across China starting at 9:00am on Saturday and wrapping up 9:00pm Sunday evening.  There are a lot of developers who are hoping to get their apps submitted to the Windows Store over the course of that weekend and I’m one of them!


This hackathon is part of our Live to Code campaign which we launched last May when Steve Ballmer was in China.  Live to Code is all about loving to be a developer and being proud of it.

Jarod “Baozi” Bao was the main speaker at the event.  He’s not your traditional Microsoft keynote speaker…  He’s a young guy who writes and tests code at Microsoft.  He’s a geek, he’s a developer and he loves it.


We then went on to talk about how being a developer is like being an artist.  You start with a blank canvas, which for developers is their favorite IDE whether it’s vi, Visual Studio, Notepad; pick your poison.  You work with your friends cranking code, plugging in, forgetting to eat or sleep.

The problem is that too many developers aspire to go into management and be some fat guy in a suit.


And as developers, we are mad…  We want a change.

We love to code.

We live to code!


Jarod did a great job bringing tons of energy to the event.  It wasn’t your typical Microsoft keynote…  At the unveiling of the Live to Code logo the who audience was on their feet cheering with the DJ’s rocking out music, Jarod and a bunch of students on stage dancing and getting the crowd fired up.





It was representation of a new face of Microsoft which I was proud to be a part of.

Now What?

I’ve got Visual Studio 2012 on my machine, a Windows Store Developer License and plenty of Shangrila Farms coffee at my house.  I may blog about some things on and off this week but I may also need to just put my head down and focus.

I think I will start by getting a “Beyond Yoda” blog reader app out to warm up on Windows 8 development.  Hopefully I can enroll some talent at the hackathon this weekend to help with some of the heavier lifting and if I’m lucky I’ll be able to convince a designer to help make it pretty.

If you have any ideas or want to help writing the app just let me know 🙂

Wish me luck!

If you’re interested in following my Windows 8 app dev journey checkout Keeping the Source Safe.

Opportunities for companies in China to run Azure in their own datacenters

In my job I get to see and experience a lot of technology and today I got to get my hands on one of the most exciting things I’ve seen in a while.  It was a proof of concept deployment of the Windows Azure Services for Windows Server which we did within the datacenter of one of China’s top enterprises.


I’ve known that Microsoft has been building this for quite some time but this was the first time I was able to really dig in deep to see how impressive it is.  In case you aren’t familiar with it, at the Microsoft’s Worldwide Partner Conference in July we released the first CTP of a set of Windows Azure Services which can be run on top of Windows Server and System Center.  It provides anyone with at least a couple of servers the ability to run a portal which looks just like the Windows Azure portal and provide Web Sites, VMs, SQL and MySQL just like Windows Azure. 

Going through the proof of concept this morning I was really impressed with how elegant the solution is.  It leverages the power of Virtual Machine Manager (VMM) within System Center 2012 for all of the infrastructure management and uses the VMM APIs for deploying Web Sites, VMs, etc.

Now, back to how this could be huge for Chinese companies. 

Currently there are no cloud service providers that have established themselves as the leaders in China.  The companies that are dominating cloud outside of China (Amazon, Microsoft & Google) don’t offer services from a China mainland datacenter.  Even if a company is willing to deploy their services in one of these company’s datacenters outside of China the complexity of the Chinese network topology make it impractical from a performance perspective to deploy services targeting end users in China.  Of course there are some workloads which are an exception to this but for many of the cloud’s most useful workloads like media and entertainment, backend services for mobile apps, etc. datacenters outside of China are not an option. 

Even if these cloud providers launches a public cloud service from a China mainland datacenter there will still be a lot of opportunity.  After all, there are over 1 billion mobile subscribers and apps like Tencent’s Weixin/WeChata with over 100 million users, you see the opportunity.  Cloud is also one of the three technology focus area’s in China’s 12th 5-year plan along with Internet of Things and 3 Network Convergence, which is attracting a lot of investment from the Chinese government and Chinese entrepreneurs.

There have been attempts by local players like Alibaba, Baidu and Shanda to provide a cloud service but none have really taken off for a number of reasons which is a topic for another blog post or over drinks.  There aren’t any dominant players in hosting like Rackspace or Media Temple in China.  Instead there a lot of smaller companies offering hosting or colo’d within telco datacenters of China Mobile, China Unicom and China Telecom.

All of this combined with many Chinese companies’ preference for keeping data and services within their own organizations’ control makes the timing of this release of these Windows Azure Services perfect. 

For large companies and government organizations that already have a large datacenter footprint/ownership they could deploy a world-class public cloud solution based on the Windows Azure Services.

For smaller companies they could quickly come up to speed on deployment and operation of these Windows Azure Services and specialize in implementing private cloud deployments within enterprises, government organizations, etc.

For ISVs they could build out a billing solution which is integrated with Chinese payment systems and local business practices.

These are exciting times and I’m glad to be a part of it!  If you want to discuss these opportunities more just let me know.

Migrating My WordPress Blog to Windows and SQL Server

I recently wrote an article over at about my experience migrating my blog over to WordPress on Windows and SQL Server which went pretty smoothly. 


In the next couple of days I’ll go ahead and switch the DNS to my new server at Discount ASP.

Although I’ve been running web site and apps on LAMP since the late 90’s, I’ve really been enjoying PHP on Windows and SQL Server for a number of reasons.

  1. I can develop and test on my own Windows 7 machine or Virtual Machines using SQL Server Express R2 which is FREE.
  2. IIS is really easy to administer.
  3. The Web Platform Installer makes getting up and running simple.
  4. Connecting to SQL Server on my host via SQL Server Management Studio makes developing and managing my database really productive.
  5. Advanced SQL Server features like Spatial and Reporting Services give me a platform for building even more powerful apps.

Some of the things I really like about running on LAMP and miss on Windows include.

  1. SSH access for moving files.
  2. Wealth of information online related to issues when working with LAMP.

There are some tradeoffs but I’ve found the benefits outweigh the downside.  I’ve worked at Microsoft for three years without switching my site so it’s not just because they pay me although it does help :)  All in all, this has been a really good experience and I’d encourage you to give it a try.

Win $10k for Building a Rad PHP App on SQL Server or SQL Azure

Whether you have an established business or have a great startup idea this is an awesome opportunity to win some cash.  The SQL Server team is running a contest for PHP developers building apps on top of SQL Server or SQL Azure with a $10,000 prize.  This includes sites built on top of WordPress or Drupal.


I’ve actually been working with WordPress on SQL and SQL Azure a lot lately and wrote an article about this contest at which has a bunch of details of how everything works along with some ideas for building the winning app.

Good luck!