Working in the Developer and Platform Evangelism (DPE) team is a lot of fun, we get to do all kinds of cool things like TechEd, Imagine Cup and TechDays. We travel the country talking to techie folks and communities about the latest Microsoft technology on offer. But the irony is that it’s sometimes hard to find time to fire up Visual Studio and actually write some code!
So over the last Christmas break I took the opportunity to refresh (some would say resurrect) my developer credentials by taking a closer look at some of our great developer offerings – up close and personal. Here’s a roundup of what I discovered – or what I did in my holidays…:
First the Concept
I wanted a project that touched web, cloud, mobile and social media – so I could play with all those cool things – and I had an idea bubbling away around instant crowdsourcing, asking questions and getting instant results through social media. It’s called Zoospeak and you can find out more about the concept here. But for my purposes, it seemed like good excuse to test drive the latest tools and technologies.
Prototyping with WebMatrix
What’s the best way to test a new idea? Throw a quick prototype together. This is where WebMatrix came in. WebMatrix is a free web development tool that includes everything you need for website development. Using built in templates you can quickly build a working site with full membership/authentication functionality, database (SQL Compact or IIS Express), mobile rendering and social media integration (for authentication with Facebook, Twitter etc.).
It’s all Razor syntax so even an old ASP hack like me could get things humming, with all the power and performance of the .NET framework, strong typing, IntelliSense…and some really helpful…er helper libraries. It’s aimed at the hobbyist/non-pro developer but don’t be put off by that, especially if your app is CMS based, as WebMatrix has built in support for Joomla, Wordpress and other open source solutions. So it’s an entry level tool but still has the big iron underneath when you need it.
For instance, as an app becomes more complex you’ll need to do some serious debugging. WebMatrix anticipates this and provides a button to launch your app in Visual Studio, and switch between environments if need be. To ensure that my concept could scale, I needed an industrial strength database behind it and WebMatrix provided a really simple migration path – simply clicking the “Migrate” button ported my schema and data to a gleaming new SQL Server instance, and my app kept running without a hitch.
To the Cloud
Stage two of achieving (potentially!) global scale was to take my WebMatrix app to Windows Azure, and my database to SQL Azure. I’d last played around with Windows Azure over a year ago and that was just a “Hello, cloud” app. Being a typical developer I just waded on in sans-manual and managed to get it up and running pretty much unaided – though a couple of blog posts from Saranya Sriram and Steve Marx were useful along the way.
The new Azure management portal is a dream to use, and nicely ties together all the various features of Azure (compute, storage, database, cache etc.) in one place. There are a few ways to get started on Azure, including a 90 day free trial or, if you have an MSDN subscription, there are a whole bunch of Azure benefits (up to 1,500 hours of a small compute instance per month in some cases), so you can really put it through its paces without worrying about incurring unexpected charges. Our resident Azure specialist, Thiago Almeida, wrote this blog post about the new streamlined registration process - it covers both signing up for the trial, and activating your MSDN Azure benefits.
So what do I have now? A cool little app that could scale to meet almost any demand through Windows Azure. It has built-in Facebook and Twitter integration, renders to both desktop and mobile devices, and was really simple to put together – from proof of concept, to cloud production. Go ahead and give these technologies a try… and why not ask a question or two on Zoospeak? :)
Scott WylieDirector, Developer & Platform EvangelismMicrosoft New Zealandmsdnnz@microsoft.com