Dev Pulse

Sounding the pulse of the developer and development manager

  • Dev Pulse

    Code Your Art Out Finale – The Apps and the Winner


    On June 10, we announced the finalists of Code Your Art Out, a “wicked” coding competition, as described on the competition’s home page. Last night, the Code Your Art Out Finale was held at the BizMedia Rooftop in downtown Toronto and was packed with developers, designers, people who are passionate about non-profits, other Code Your Art Out contestants, the finalists, and their close friends and family.

    To kick off the finale, some of the Code Your Art Out contestants had the opportunity to present their submissions. Even though they didn’t make it to the finale, their apps were fantastic, exemplifying the openness and interoperability of the Microsoft stack.

    Here’s a recap of the apps:

    image Booom!!
    Karim Awad, Trevor Dean (of bigtime design)

    Booom!! is the only system which allows you to receive the information you want from your favourite brands and pages on Facebook. No more piles of messages in the "Other" box or constant posts to your wall. Booom!! only sends the stuff you want and drops it right into your personal Booom Box. Booom!! provides a simplified messaging system for both page admins and Facebook users.

    Technologies Used: .NET 3.5, PHP, SQL Server 2008, Windows Azure, Facebook API, jQuery  
    image Care
    Kowasheek Mahmood (of Fersh Co.)

    Care is a secure portal for patients to log in and create reports of symptoms and side effects of their conditions so that they can actively take part in the medical process. Care allows health-care professionals to see data from their respective patients as symptoms are logged. For patients, Care allows them to find information on how to manage their symptoms based on input of professionals. Care is built with extendibility and modularity in mind so that it can be deployed for many other organizations, hopefully benefitting many patients by helping them stay connected with their health-care professionals.

    Technologies Used: .NET 4, ASP.NET MVC 3, Windows Azure, Microsoft SQL Server 2008 R2, jQuery, Ninject, BlueprintCSS CSS Framework, iTextSharp.

    Tony Yang and Team

    ProfessorPedia is both a social and an informational platform for students’ daily academic lives. It captures several main features of students basic academic needs: Professor rating, book trading, student forum, and WikiNote. On the professor rating system, users can have access to professors’ basic information and students’ comments on his/her courses easily by searching for the professor’s name or the course name. ProfessorPedia’s book trading system is designed for both first and second hand textbook trade and exchange between post-secondary students. The student forum is what the name suggests - a place to relax, spread, and gather feeling and warmth. Students can chat and discuss course materials in the forum as well as through the integrated online chatting system.

    Technologies Used: Windows Azure, PHP, jQuery, Data Mining, CakePHP

    image Epilogger (Semi-Finalists)
    Michael Nussbacher, Chris Brooker, Rebecca C-Palacios

    Epilogger is epilogue + blogger and is all about immortalizing all the hottest happenings in your city. It creates a permanent time capsule of the event for you and your friends to enjoy for years to come. It’ll even arrange all your memories into a sweet scrapbook with analytics and content from everyone who took part whether they were at the event in person or in spirit!

    Technologies Used: .NET 4.0, Microsoft SQL Server 2008 RS, Windows Azure, ASP.NET MVC 3, IIS7, Windows Server 2008 R2, jQuery, Twitter API, Foursquare API, Facebook API, TwitPic, YFrog, and Plixi.

    And the winner of Code Your Art Out and the recipient of $10,000 is…

    image Save the Rain
    Mark Laudon

    The Save the Rain Water Productivity Calculator utilizes open data sources to actually make a difference in the world. This creative app strives to deliver a tool for developing worlds and areas suffering from water shortage. This original app also provides an avenue to raise awareness of how high a value rain water can have in the production of crops/hunger resolution. The application is easy to use, and, requires no training. The app determines how much rain you receive in a year and calculates your rainfall savings potential.

    Technologies Used: Windows Azure, Google Maps, ESRI's ArcGIS API for JavaScript, Hosted ArcGIS Server Web Mapping Service

    Congratulations to Epilogger, second place winners of Code Your Art out and the recipients of $5,000.

    The competition was tough and each of the participants put in their all to achieve excellence in the three judging criteria (Interoperability, Creativity, Usage), creating applications that are truly unique and have real world uses. Congratulations to all!

    Stay tuned as we talk to each of the contestants about their applications and the technologies they used.

    This post also appears in the Canadian Developer Connection

  • Dev Pulse

    Microsoft “Positive” in Gartner’s ALM MarketScope


    The long anticipated Gartner Application Lifecycle Management (ALM) MarketScope report has been published.  Gartner rated Microsoft as “Positive”, the second highest rating in the MarketScope report, citing “substantially improving” administration and “filling in the gaps” around testing, lab management, and modeling with release of Visual Studio 2010.

    Here is excerpt from the report by Jim Duggan and Thomas E. Murphy specifically around Visual Studio and ALM:

    Visual Studio 2010 gives Microsoft's ALM offering a new, more-cohesive look, and addresses pricing and administration obstacles that have limited the use and adoption of the ALM offering. Microsoft's strategy is to build from the significant base in the construction IDE core (Visual Studio); from the broad enterprise use of Office and SharePoint for requirements, tasks and workflow; and with its aggressive pricing model. It continues to enhance workflow and metadata handling, as well as expand the tools from which you can use the ALM features.
    With Visual Studio 2010, Microsoft reduced the prices of both the VS client and the Team Foundation Server (TFS) component. Microsoft also incorporated interfaces to leverage its project and PPM offerings, as well as its agile methodology positions, to build awareness and commitments in larger clients. Although gaps remain in some management and execution tool areas, the technical approach is well-suited to support multiple instances of tools from multiple vendors. Because Visual Studio has such broad industry support, many of the gaps are "filled," and clients have the ability to exploit existing investments in products like HP Quality Center. Microsoft's recent contributions to filling in the gaps include testing, lab management and modeling in the Visual Studio 2010 release.

    Visual Studio Team System (VSTS) and TFS had demonstrated scalability, but install setup was complicated and there had been administrative challenges for organizations with large numbers of projects. Substantial improvements to administrative facilities have been delivered in Visual Studio 2010. Another area of improvement is the ability to customize workflows, adding flexibility in supporting both agile and more-formal development processes, as well as enabling support from third parties. Additionally, there are more reporting and analytic capabilities. Microsoft's offering is well-architected for provisioning as a service, and for support of agile and other emerging styles of application delivery. Microsoft's commitment to the development tools market, and its depth of resources, should result in continued broadening of the solution.
    Microsoft improved support for Eclipse and for other non-Microsoft environments with Visual Studio Team Explorer Everywhere 2010. This permits users to store artifacts in TFS. Cross-platform support in other parts of the solution are limited, so a separate Java tool stack is likely needed.

    Another plus for Microsoft is the strength of its Microsoft Developer Network (MSDN) franchise. Relatively low cost and ease of acquisition make MSDN a realistic channel to sell ALM into many accounts.

    Microsoft has a strong reach in the market, and moderate pricing for a large, stable provider. It has a proven, scalable architecture. A large community of supporting vendors helps fill gaps in the tool portfolio.

    Rating: Positive

    To top the great news about the rating, Gartner announced that it will graduate the ALM MarketScope report to Magic Quadrant status effective immediately.

    More information on Visual Studio, Team Foundation Server, and ALM:

  • Dev Pulse

    Take the Plunge into Windows Azure WAPTK – January Edition


    WAPTK January Update

    (Haven’t heard the acronym “WAPTK”? No worries – Windows Azure Platform Training Kit. It’s your one stop to get hands-on labs, presentations, and demos that are designed to help you learn how to use the Windows Azure platform.)

    If you’ve downloaded the WAPTK in the past, that’s great! The Windows Azure Team has just released the January edition of the training kit with new demo scripts, labs for working with Windows Phone 7 and the Cloud, and new and improved code snippets for Visual Studio.

    Some of the specific changes with the January update of the training kit includes:

    Download the January Update to the Windows Azure Platform Training Kit today.

    This article also appears on Canadian Developer Connection

  • Dev Pulse

    Your SaaS Applications and the Windows Azure Marketplace


    imageThere has been lots of buzz about the Windows Azure Marketplace since the announcements at the Worldwide Partner Conference in Los Angeles that the Windows Azure Marketplace has been expanded to feature and sell not only data subscriptions, but application subscriptions. Effectively, you can now use the Marketplace to sell your Windows Azure applications, services, and building block components to a global online market. When your application is published to the Marketplace, you instantly get access to new customers, new markets, and new revenue opportunities all backed by Microsoft to ensure quality and service.

    Read more about the benefits of the Windows Azure Marketplace >>

    Getting Started

    In order to get started selling subscriptions in the Marketplace to your Windows Azure-based SaaS (software-as-a-service) application, your application will need to know how to handle the events of the subscription lifecycle, such as subscribing, registering, accessing, using, and unsubscribing. With the August 2011 refresh of the Windows Azure Platform Training Kit (Download, Online), a new hands-on-lab has been added to walk you through the changes you’ll need to make in order to be able to publish and interact with the Marketplace.


    The lab takes an application through the full provisioning process through 5 exercises. First you’ll learn about SaaS subscription scenarios. You’ll then modify an existing application to support Windows Azure Marketplace subscriptions. Once that’s done, you’ll go through the registration of the application in the Marketplace and test it using the Marketplace’s Dev Playground. When your application can support new subscriptions, you’ll then modify it again to support unsubscribing the subscriptions. With those changes in place, the application is ready to be published to the Marketplace. You’ll walkthrough how to do that as well.

    Download the Windows Azure Platform Training Kit >>
    Go through the Introduction to Windows Azure Marketplace for Applications Hands on Lab >>

    When Your Application is Ready

    After completing the hands-on-lab, you’ll have everything you need in order to make the changes to your application. However, before you get started making changes to your application, head over to the Windows Azure Marketplace Publishing page to get the paperwork that you need to get involved with the Marketplace. Take care of that first and when everything is done on that end, go ahead and make the changes to your application, test them, and publish your application.

    Publish your application to the Marketplace >>

    This article also appears on Musings of a Developer Evangelist from Microsoft Canada.

  • Dev Pulse

    AzureFest is Back!



    On Saturday, December 11, 2010, Canadian MVPs Cory Fowler (@SyntaxC4) and Barry Gervin (@bgervin) met with developers in Mississauga and showed them how developing and deploying applications to Windows Azure is fast and easy. You can read about it on Joey’s post from that Saturday.

    Now, AzureFest is back! If you weren’t able to come out in December, now’s your chance to see how you can leverage the skills you already have (.NET, Java, PHP, or Ruby) and the tools you already know (Visual Studio, Eclipse, etc.) to deploy applications to Windows Azure. You’ll learn everything to you need to know to get up and running with Windows Azure quickly including:

    • Overview of Cloud Computing and Windows Azure
    • Setting up the Windows Azure SDK and Windows Azure Tools for Visual Studio
    • Setting up your Windows Azure account
    • Migrating a traditional on-premise ASP.NET MVC application to the Cloud
    • Deploying solutions to Windows Azure

    AzureFest is a hands-on event. This means that you’ll be following along in your own development environment and actually deploying your solution during the event. In order to get the most out of the experience, you’ll need to bring a laptop with you that is running Windows Vista SP1 or Windows 7 with the Windows Azure Tools for Visual Studio installed. If you don’t have Visual Studio, or are not working with .NET, that’s OK. Use the language and tools of your choice – help will be on hand to assist you.

    You’ll also need to bring a credit card. Windows Azure activations require a credit card even for the trial period, but don’t worry, nothing will be charged to your credit card as the last part of the event shows you how to take down all of your Windows Azure instances.

    We’re taking AzureFest across Canada, and will be coming to a city near you. Check out the listings below to get all the information you need about each of the cities. Don’t see a city that’s near you? Keep checking back as we will be adding more cities and dates as we confirm them. If you’d like to help organize an AzureFest in your city or at your user group, please contact me via email, Twitter, or LinkedIn.

    Where and When

    Downtown Toronto
    Microsoft Canada
    Ernst & Young Tower
    222 Bay Street, 12th floor
    Wednesday, March 30, 2011 6:00PM – 9;00PM
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4), Barry Gervin (@bgervin)

    Microsoft Canada
    1950 Meadowvale Boulevard
    Thursday, March 31, 2011 6:00PM - 9:00PM 
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4), Barry Gervin (@bgervin)

    BCIT, Burnaby Campus
    3700 Willingdon Avenue
    Tuesday, April 5, 2011 6:00PM – 9:00PM
    Click here to register

    Presenters: Jonathan Rozenblit (@jrozenblit)

    Algonquin College Campus
    1385 Woodroffe Avenue, Ottawa
    Saturday, April 16, 2011 12:45PM – 1:30PM
    Click here to register

    Presenters: Christian Beauclair (@cbeauclair)

    University of Calgary, Rm 121 ICT Building
    2500 University Drive NW, Calgary, AB
    Saturday, April 30, 2011 9:00 AM – 5:00 PM
    Click here to register

    Presenters: Michael Diehl (@MikeDiehl_Wpg) and Tyler Doerksen (@Tyler_gd)
    Greater Moncton Chamber of Commerce Board Room – First Floor
    1273 Main Street, Suite 200, Moncton, NB
    Friday, May 6, 2011 6:00 PM - 10:00 PM
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4)

    UNB Campus
    Room 317, ITC
    Saturday, May 7, 2011 9:00 AM – 12:00 PM
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4)

    The Hub
    1673 Barrington St., 2nd Floor, Halifax, NS
    Sunday, May 8, 2011 1:30PM – 4:30 PM
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4)

    Quebec City
    l'École National d'Administration Publique (ENAP), salle 4114
    555, boul.Charest Est, Québec, QC
    Thursday, May 12, 2011 5:00 PM – 8:30 PM
    Click here to register

    Presenters: Frédéric Harper (@fharper)

    Microsoft Canada
    2000 McGill College, Montreal, QC
    Tuesday, May 17, 2011 6:00 PM – 9:00 PM
    Click here to register

    Presenters: Frederic Harper (@fharper)
    Online Business Systems, Assiniboine Room, 2nd Floor
    200-115 Bannatyne Ave., Winnipeg, MB
    Thursday, May 19, 2011 5:30 PM – 9:00 PM
    Click here to register

    Presenters: John Bristowe (@jbristowe)
    Coming Soon!
    Tuesday, May 31, 2011 8:30 AM – 12:00 PM

    Presenters: Jonathan Rozenblit (@jrozenblit)
    Virtual Lunch and Learn Series
    Part 1: Thursday, May 19, 2011 12:00 PM – 1:00 PM EST, CST, MST, PST
    Part 2: Thursday, May 26, 2011 12:00 PM – 1:00 PM EST, CST, MST, PST
    Part 3: Thursday, June 2, 2011 12:00 PM – 1:00 PM EST, CST, MST, PST
    Click here to register

    Presenters: Jonathan Rozenblit (@jrozenblit)

    Make sure you register early as space is limited. Make sure to find me when you’re are the event – it will be an opportunity for us to chat about what you’re working on, possible projects to move to the Cloud, and how I can help extend your skills to the Cloud.

  • Dev Pulse

    Ramp Up on Windows Azure with MSDN Benefits


    How do we, developers, learn cool new things? Do we read some materials, take some notes, and then we’re good to go? Maybe take a class or two and that’s it? No. We read, maybe take some classes, but most importantly, we learn by building apps! With on-premise solutions, that’s relatively easy. Build out a virtual machine, install the required software, and off we go.  How do we do that with Cloud solutions? Just as easy. You use this great 4 letter acronym – MSDN.

    With the benefits that come with your MSDN Professional, Ultimate, or BizSpark subscriptions, you can do a whole lot with Windows Azure for free.  Let’s look at the benefits chart:


    Let’s do some comparisons:

    • 750 compute hours per month allows you to run a simple ASP.NET web application on a single small instance continuously for an entire month and have some hours left over.  Let’s do the math – 24 hours a day x 31 days = 744 hours per month.  You’ll even have 6 left over to experiment with other roles.
    • 7GB in and 14 GB out per month is the equivalent of uploading 1400 mp3 files and downloading 2800 mp3 files, assuming that the files are approximately 5MB each.  That should be more than plenty for most application testing scenarios.
    • Three 1GB SQL Azure databases provide enough relational storage for approximately 500,000 pages of text (size estimate from here).  This should also be plenty of storage for a test environment.
    • Looking at the Windows Azure transactions - 1,000,000 transactions per month would mean you could perform a transaction every 2.5 seconds, non-stop, all month long.

    Good stuff, right?

    So what’s next? 5 easy steps to get you started:

    1. Activate your MSDN Windows Azure benefits Start here. Remember, these are per month benefits. They reset every month so that you can deploy and test your applications without worrying about the having to paying for the environment.
    2. Setup your development environment.  If you’re looking at building a Virtual Machine, check out Windows Azure MVP Cory Fowler’s (@SyntaxC4) The Ultimate Windows Azure Development VM.  I highly recommend downloading and installing GreyBox.
    3. Download the latest Windows Azure Platform Training Course.  Tune into the Canadian Developer Connection every month or so – we’ll let you know when there is a new update.
    4. Check Up In The (Windows Azure) Cloud every Monday to see what’s new and check out different things to try.
    5. Post questions or your interesting finds at the Cloud Development LinkedIn group.

    Don’t wait. Activate your benefits and start building Cloud applications today.

    Don’t have MSDN but want to learn about Windows Azure? Have an app that you’d like to test with Windows Azure? Not a problem! Send me an email ( or a DM on Twitter (@jrozenblit) and I’ll you setup with a trial subscription where you will get the same benefits for 30 days.

    With all these great benefits and programmes, all you need to do is find the time to use them! As much as I’d love to, that’s one area where I wouldn’t be able to help.

    This post also appears in Canadian Developer Connection.

  • Dev Pulse

    Social Gaming Powered By Windows Azure


    imageSocial applications (games, sharing, and location-based applications and services) are very quickly becoming the most prominent types of applications. These social applications have the potential to grow from a few users to millions of users in an incredibly short period of time, and as such, they need a robust, scalable, and dependable platform on which to run to meet the growing demands of the users.

    Social Gaming

    In their January 2011 Social Gaming: Marketers Make Their Move report, eMarketer predicts that the social gaming market will increase to $1.32 billion in revenues by 2012, up from $856 million in 2010. As the social gaming market continues to grow and become more profitable, many companies are looking to take their games to the next level and platforms to allow them to do it.

    If we take the founding principles of Windows Azure (on-demand scalable computing resources, storage, and geographic delivery) and apply them to the needs of social games, we can quickly see how Windows Azure and Social Gaming is a perfect match. Companies like Sneaky Games (the developers of the Facebook fantasy game Fantasy Kingdoms) and Playdom (the makers of Bola Social Soccer, a Facebook, Sonico, and Orkut game with over 5 million users) are already using Windows Azure as their backend platform.

    In the next instalment of Canada Does Windows Azure, an ongoing series featuring Canadian developers and their Windows Azure stories, you’ll see how Toronto-based Huge Monster Inc. (Twitter, Facebook), developers of Code of War, designed, developed, and deployed their popular Facebook game using Windows Azure.

    Windows Azure Toolkit for Social Games

    To make it even easier to develop social games with Windows Azure, the same folks who brought you the Windows Azure Toolkit for Windows Phone 7 and iOS have now released a preview of their latest toolkit, the Windows Azure Toolkit for Social Games.  The toolkit allows you to quickly get started building new social games with Windows Azure.  It includes accelerators, libraries, developer tools, and samples. It also has specific services and code to handle capabilities unique to games, such as storing user profiles, maintaining leader boards, in-app purchasing, and so forth.


    As a starting point, the toolkit also includes the source code for a game called Tankster, created by Grant Skinner and his team at The game is built with HTML5 and comes complete with reusable service-side code and documentation.  It also supports a variety of social interactions including messaging, wall posts, and comments while player achievements and game stats are presented on a live leaderboard so gamers can interact with each other.

    Try your skills at a round of Tankster >>

    Next Steps

    So what’s next?

    Download the toolkit >>

    Then have a look at the samples and Tankster.

    Deep dive into the architecture behind Tankster - Part 1 >> Part 2 >>

    If you’ve previously developed a game, see how you can overlay the functionality provided by the toolkit onto your game. If the toolkit doesn’t fit with your game, no worries. Think about your game’s architecture and where you can leverage Windows Azure’s on-demand compute, storage, and geographic delivery services to get your game in the Cloud. Either way, take this opportunity to see how you, too, can leverage the benefits of Windows Azure. If you don’t have an existing game, now’s the best time to sit down and design one!

  • Dev Pulse

    Know If You’ve Got Your Cloud On


    If you’re like me and are actively doing work with Windows Azure, whether you’re learning how to develop Cloud-based applications, actually building an application, or just demoing Windows Azure capabilities to various audiences, you probably have one or more deployments configured in the Windows Azure Developer Portal. You start up your deployment, do your thing, and then stop your deployment so don’t get billed when you’re not actively working.  Right?

    If you remember to stop your deployment every time, consider yourself a rare breed! For the rest of us who don’t always remember to do it right away and then realize in the middle of the night that we forgot, there is hope!

    imageDuring my most resent perusal of CodePlex, I came across a nifty little utility written by Windows Azure MVP Michael Wood (@mikewo) called GreyBox.  GreyBox is an application that sits in your system tray and visually indicates to you whether you have any deployments running in your Windows Azure subscription.

    As Michael describes in his blog post, if the box is blue, you have one or more deployments running (a.k.a. consuming compute hours). If your deployments have all been stopped, the box is grey. Simple! Now if that wasn’t useful enough, GreyBox will also alert you, on intervals that you define in the configuration, that you have deployments running. Commit this to memory - “If the cube is grey, you’re OK. If the cube is blue, a bill is due”.  Thanks for that nice and simple summary, Brian Prince.

    Give GreyBox a try and hopefully, it will remind you, like it reminds me, that your deployments are still running - before you get into bed! 

    Have you had an interesting or funny experience with remembering that you forget to turn off your deployments? Share your stories by commenting below.  

    This article is also posted on Canadian Developer Connection

  • Dev Pulse

    Getting to know Windows Azure AppFabric



    As you know, the Windows Azure platform has many moving parts – one of which is AppFabric. In a nutshell, AppFabric is a middleware platform for developing, deploying, and managing applications on the Windows Azure platform. It breaks down into these key areas:

    • Middleware Services: Access Control, Service Bus, Caching, and soon to be Integration, and Composite Application
    • Composite Application Environment (planned for future releases): Composition Model, Visual Design Tools managed as a Service
    • Scale-Out Application Infrastructure (planned for future releases): Composition Runtime, Sandboxing and Multi-tenancy, State Management, Scale-Out and High Availability, Dynamic Address Resolution and Routing

    Itai Raz, Product Manager for Windows Azure AppFabric, just started a new blog post series that will explore key concepts and principles of Windows Azure AppFabric.  Before going into all of the technical details, Part 1 of the series (What is Windows Azure AppFabric trying to solve?) gives a great introduction and describes the challenges that Windows Azure AppFabric is meant to address. I love that he explains what AppFabric is trying to achieve - I believe that knowing why something was created before getting into its nitty-gritty ensures that it’s used in the way that it was intended to be used. Follow the series to learn more about the capabilities of AppFabric and how each of them will help address the challenges Itai talks about in Part 1.

    You should also visit the Windows Azure App Fabric Developer Center on MSDN to help you get started learning Windows Azure AppFabric.  If you scroll towards the bottom of the page, you’ll find “How Do I?” videos and a couple of AppFabric samples you can download to get you going.

    Here are a few additional places where you can learn about Windows Azure AppFabric:

    On February 7, 2011, tune in to watch Windows Azure Boot Camp: Connecting with AppFabric, a 200 level webcast that will look at how to secure a REST Service, what you can do to connect services together, and how to work with firewalls and NATs.

    And if the above wasn’t enough, you can also check out the Windows Azure AppFabric Team’s Blog and follow them on Twitter and Facebook.

    This post also appears on Canadian Developer Connection

  • Dev Pulse

    JUST IN: Special Channel 9 Live Kinect Event!


    If you were one of the 167 developers that were in Regina, SK these last couple of days for Prairie Dev Con (and if you weren’t, then make sure you are next year because it is just a great event! More on that at another time…), you would have heard Jeff Sandquist (@jeffsand), Senior Director for Channel 9, make mention of something happening this week during his keynote. He didn’t say what, he just said that it would be awesome!

    I can’t tell you what I don’t know, but here’s what I do know:

    • The “something happening this week” is a LIVE event.
    • The LIVE event is happening tomorrow, Thursday, June 16, 2011 at 9:30 AM PST (see local times).
    • It will be broadcasted on Channel 9 Live, recorded, and then offered on-demand in the Channel 9 Events Area within 24 hours.

    and last but not least, I can tell you it has something to do with…


    So, hopefully, you are now just as curious as I was when I heard (and still am!), so make sure you check it out tomorrow! Then, come back here and share your thoughts!

  • Dev Pulse

    Continue Your Cloud Development Learning


    Windows-Azure-Jump-Start_thumb3If you’ve recently joined me for AzureFest in Toronto and Mississauga, thank you for coming out! I hope the session was a worthwhile experience for you and that you were able to see how your existing knowledge and skills with .NET and Visual Studio can be leveraged to develop applications for the Cloud.

    If you’re going to be joining AzureFest in another Canadian city, that’s great!

    Either way, now you’ve taken the first step and have started working with Windows Azure, why not continue and explore concepts that I didn’t cover at AzureFest?

    Windows Azure Jump Start Videos

    We’ve put together an excellent video series for you called Windows Azure Jump Start. It’s perfect for watching during a lunch break or in the evening when you need or want to think about something other than work. Each video is about 45-50 minutes and focuses on the different areas of Windows Azure: the Windows Azure environment, application lifecycle, storage, diagnostics, security, and scalability.

    Here are the links to the videos, slides, and source code:

    Session 1: Windows Azure Overview




    Session 2: Introduction to Compute



    Session 3: Windows Azure Lifecycle, Part 1




    Session 4: Windows Azure Lifecycle, Part 2




    Session 5: Windows Azure Storage, Part 1




    Session 6: Windows Azure Storage, Part 2




    Session 7: Introduction to SQL Azure




    Session 8: Windows Azure Diagnostics




    Session 9: Windows Azure Security, Part 1




    Session 10: Windows Azure Security, Part 2




    Session 11: Scalability, Caching, & Elasticity, Part 1



    Session 12: Scalability, Caching & Elasticity, Part 2 and Q&A


    (Same as session 11)

    But before you get started, I’d like to review with you these three things:

    Windows Azure Subscription

    Do you have a Windows Azure subscription yet? If not, there are three ways to get started:

    MSDN Subscription Benefits: If you have MSDN Premium, MSDN Ultimate, or BizSpark, you have complimentary monthly Windows Azure benefits that you can unlock for learning and testing. For more information on your benefits, check out my blog post, Ramp Up on Windows Azure MSDN Benefits, and activate your benefits today.

    Windows Azure Introductory Special: This one is for you if you’d like to take your time as you go through your learning and testing journey. With the Windows Azure Introductory special, you get Windows Azure hours for free each month. The Introductory special does require a credit card, but as long as you stay within the included hours and resources, you will not be charged for anything. Go ahead and activate your Introductory Special.

    Windows AzureWindows Azure Pass: If you’re a fast learner or need a forcing function to make sure that you do the training in a given period of time, you can activate a 30-day Windows Azure Pass. The Windows Azure Pass provides a comparable number of hours and resources as does the Introductory Special without the need for a credit card. However, after 30-days, your account and anything you may have deployed will be deleted. If you think that 30 days is enough for you and you don’t want to use a credit card, go to, select Canada as your country, and enter the promo code CDNDEVS.

    2: Tools for the Cloud

    Once you have your subscription activated, download and install the tool add-ins that you’ll need for that rich development environment experience. You can download them from the Windows Azure Developer Center.

    3: Windows Azure Platform Training Kit

    Last but not least, download the Windows Azure Platform Training Kit.  It includes hands-on labs and several sample applications to help you quickly learn how to use Windows Azure, SQL Azure, and the Windows Azure AppFabric.

  • Dev Pulse

    Colin Melia on SilverLight 5


    There was much talk about Silverlight 5 during this year’s DevTeach in Montreal. Last week, Susan (@HockeyGeekGirl) posted her DevTeach conversation with Laurent Duveau (@LaurentDuveau) about how Silverlight 5 takes DataTemplate to the next level with implicit data templates.  Colin Melia was also talking about Silverlight 5 at DevTeach, with a demo during the conference keynote, and a session on Silverlight 5 features in the conference’s Silverlight track.

    At the conference, Colin got together with Carl Franklin (@carlfranklin) of .NET Rocks TV, and together, they bring us a sneak peek of Silverlight 5 as well as a handful of cool demos to show off some new features. Check out Show #198 of .NET Rocks TV!


    Ready to give Silverlight 5 a try?

    Silverlight 5 beta is now available for download. You can find the download, as well as Silverlight 5 videos, MIX11 videos, and top tutorials here.

    About Colin Melia

    Colin MeliaColin Melia is a Microsoft Regional Director and Microsoft MVP for Silverlight known as an architect, trainer, speaker and author with deep and broad knowledge of the latest Microsoft technologies, proven problem solving skills, hands-on solution creation ingenuity and the ability to communicate rich and complex ideas. He speaks regularly with his British accent at conferences, events and code camps for Microsoft and community organisations as well as being a college academic advisor. Colin has 17 years of hands-on experience in areas of rich UI with WPF/Silverlight, cloud development with Azure and BI with SQL Server, along with in-depth knowledge of core technologies such as .NET, OData, WCF, WF, LINQ and WIF. He has developed award-winning simulation technology with rich UI, cloud-based learning portals and workflow-driven BI systems. He also created the first streaming video community site with Windows Media.

  • Dev Pulse

    AzureFest Makes A Surprise Visit to Calgary This Weekend


    AzureFest is making a surprise visit to Calgary this weekend! If you haven’t yet heard of AzureFest, check out this post where AzureFest is described in full.

    Remember, AzureFest is a hands-on event. This means that you’ll be following along on your own laptop and actually deploying your solution during the event. In order to get the most out of the experience, make sure to bring your laptop, a power cable if you’re going to need to plug in your laptop, and a credit card. Don’t worry, nothing will be charged to your credit card during AzureFest. Your credit card is just required for activating your Windows Azure account.

    If you want to see for yourself how easy it is to move your existing application to the cloud, this is an event you don’t want to miss. Register early as space is limited.

    University of Calgary, Rm 121 ICT Building
    2500 University Drive NW, Calgary, AB
    Saturday, April 30, 2011
    Click here to register

    Have plans? No problem! A virtual AzureFest is coming your desktop in May – stay tuned.

  • Dev Pulse

    Making Developing Windows Azure Applications Easier–One Resource At A Time



    Picture this – it’s time to sit down and start architecting your new application.  You’re going to use the latest and the greatest – you’re going to go Cloud.  Cloud – as in Windows Azure – just to make sure!  What’s the first thing you think of? Design Patterns, of course. 

    To start, you’ll need patterns for:

    Compute Storage
    Communications Security
    Network Relational Data

    That’s where Windows Azure MVP David Pallmann’s Azure Design Patterns site comes in handy – it covers them all (and it’s made with Silverlight).  Why scour the abyss of information online when you can go to one place and see it all, neatly organized in a way that’s easy to navigate? Make sure you bookmark it and refer back to it whenever you sit down to architect an application.

    There are also two posts on David’s blog that I think you should read (in the following order):

    • Taking a Fresh Look at Windows Azure does a great job of walking you though the entire platform, including all of the additions that were made with version 1.3.
    • Now that you understand all of the pieces, it’s time to make some architectural decisions.  Picking a Lane in Cloud Computing explores those decisions from the very first, SaaS, IaaS, or PaaS, to one of the last, Service Access (depending on your application, there may be more architectural decisions to make in addition to these ones).

    As you start using design patterns for cloud computing and Windows Azure, don’t forget to share your experience with us of what works and what doesn’t.

    That’s it for now. Go! Explore! Then share!

    This post also appears in Canadian Developer Connection.

  • Dev Pulse

    Connecting Windows Azure to Windows Phone Just Got A Whole Lot Easier



    As of today, connecting Windows Azure to your application running on Windows Phone 7 just got a whole lot easier with the release of the Windows Azure Toolkit for Windows Phone 7 designed to make it easier for you to leverage the cloud services running in Windows Azure. The toolkit, which you can find on CodePlex, includes Visual Studio project templates for Windows Phone 7 and Windows Azure, class libraries optimized for use on the phone, sample applications, and documentation.

    The toolkit contains the following resources:

    • Binaries – Libraries that you can use in your Windows Phone 7 applications to make it easier to work with Windows Azure (e.g. a full storage client library for blobs and tables). You can literally add these libraries to your existing Windows Phone 7 applications and immediate start leveraging services such as Windows Azure storage.
    • Docs – Documentation that covers setup and configuration, a review of the toolkit content, getting started, and some troubleshooting tips.
    • Project Templates – VSIX (which is the unit of deployment for a Visual Studio 2010 Extension) files are available that create project templates in Visual Studio, making it easy for you to build brand new applications.
    • Samples – Sample application that fully leverages the toolkit, available in both C# and VB.NET.  The sample application is also built into one of the two project templates created by the toolkit.

    There’s a really great article on how to get started in the wiki. Definitely check that out before you get started. To help make it even easier to get started with the toolkit, today’s (3/25) Cloud Cover episode will focus on the toolkit and how to get started using it. Over the next few weeks, videos, tutorials, demo scripts, and other great resources to go along with the toolkit will be released. Stay tuned here – I’ll keep you posted with all the new stuff as soon as it becomes available!

    Want more?
    If those resources aren’t enough to get you started, make sure to stop by Wade Wegner’s blog (a fellow evangelist) for a quick “how to get started" tutorial.

    Get Windows Azure free for 30 days

    Windows AzureAs a reader of the Canadian Mobile Developers’ blog, you can get free access to Windows Azure for 30 days while you’re trying out the toolkit. Go to, select Canada as your country, and enter the promo code CDNDEVS.

    If you think you need more than 30 days, no problem. Sign up for the Introductory Special instead. From now until June 30, you’ll get 750 hours per month free!

    If you have an MSDN subscription, you have Windows Azure hours included as part of your benefits. Sign in to MSDN and go to your member’s benefits page to activate your Windows Azure benefits.

    Next Steps
    Download the toolkit and get your app connected to Windows Azure.

    This post is also featured on the Canadian Mobile Developers’ Blog.

  • Dev Pulse

    Not Studying for a Certification Exam


    computer roomRecently, I saw a tweet from Mitch Garvis (@MGarvis) about having completed three certification exams in one day. It got me thinking - how could he possibly have time to study for not one, not two, but three exams all at once all while still working full time? I’m sure the thought of certification has crossed your mind at one point or another and was then quickly dismissed due to time constraints. 

    Determined to figure out what his secret was, I reached out to Mitch and asked him the simple question, “How do you make time to study for three exams at the same time as working full time?” The answer was simple – don’t study. Surprised by this answer, I asked him to elaborate.

    In order to answer the actual question, Mitch thought it was important to understand what certification is and how it differs from a degree. He explained:

    One of my best friends, the best man at my wedding has a degree in Computer Science, but every time something goes wrong with his computer, he calls me. Because of his degree, he can talk binary, he can talk math, he can talk architecture, but his degree is not relevant [to the problem at hand at that point in time]. Likewise, my Windows 2000 certifications are no longer relevant. Certification is an on-going validation, “I am familiar with”, or “I’m up to date with” the technologies with which I’m working.

    If certifications are an on-going validation, there presumably would be a lot of studying involved to make sure that you know the relevant technology for which you’re going to be certified. So how does one find the time to do all of this studying? Is there a magic recipe for studying to maximize the little time there is available for studying?

    I’m going to tell you my secret, that as an MCT, I’ve told hundreds, if not thousands of students over the years – don’t study for certification exams! People look at me and say “how can you say that?”.

    Know the product. I just did an MCTS exam on Active Directory. I didn’t study for that exam. I live in Windows and Windows Server and I know Active Directory. All of the questions on the exam, sure they may be scenario based, saying “You are the __________ [fill in the blank]”, well I am the “fill in the blank", I have been the “fill in the blank”, the people that I speak to every day are that, and I have to know that (the fill in the blank). So that’s like saying “Mitch, can you please study how to make a cup of coffee?” It’s where I live. Likewise, if you don’t live there, you shouldn’t be taking the exam yet.

    When you’re a developer and code for a living, as Mitch says, you live there – in the code, platforms, tools, etc. You may know a lot, but a the exams cover specific areas in depth. How do you know if you have the depth required to be able to answer the questions?

    When looking at the exam that you want to do, look at the objective domains, the outline of what they say is required, and fill in the blanks. “I do this all the time, I do that all the time, but you know what, I’m weak on this”. Focus on that and don’t cram, but review it. If you’re smart, you’re going to go back and implement it before because you can read the words on the paper as many times as you want, do you know what happens when you press the Next button? Sometimes the exam says what happens when you press that Next button. “You’re in this situation. What should you do first?” Well beyond sitting at the computer and turning on your screen, you have to know where to go first and books don’t always tell you that. Experience always tell you that. Experience is what you get a minute after you really needed it. Experience is what is going to make the difference between stressing over taking exams and going to exams and saying “You know what, I have free time today, let me take an exam.”

    In summary, Mitch’s view on exams is that you take them as validation that you have studied, implemented, and experienced what it is that you will be examined on:

    If you’re looking for a new job, new field, you need to study as you wouldn’t have that experience. If you’re in the job, [a certification is] validation that you’ve learned [book or experience, or both] the material.

    Whenever I talk to people about certifications, both with those who have certifications and those who don’t, I get a different answer. Certifications mean different things to different people. As you read last week, Susan (@HockeyGeekGirl) posted her views on certification. Here are Mitch’s thoughts:

    Certifications is not just about getting them done, they are a necessity. We live in a world that is highly competitive. I’m no competing with all of the IT professionals in Oakville for the same jobs. I’m competing with professionals in Oakville, and Toronto, and Scarborough, and Vancouver, and India, and China who all want to come to this great place to work. I have credentials as far as experience goes, but certification is the proof that I have the respect from my profession to not only learn to do something the right way but also demonstrate and quantify that I’ve taken the time to do that.

    Certifications differentiate the IT professional or the dev from the computer guy hacker who sits in his basement and probably does it well, don’t get me wrong, and I know many great computer guys who don’t have certifications, but if we are going to be a profession, we don’t have a BAR association, we don’t have a Charter of Accountants, we don’t have a medical board. We are a self-governing, or not even self-governing – we are an industry that doesn’t have that self-governing or globally governing body that gives me this “hey I’m a doctor”, “I’m a lawyer”, “I’m an accountant”, that doesn’t mean that we’re not professionals. Certifications do that.

    Now It’s Your Turn

    What’s your take on certification? What do certifications mean to you? Share your thoughts on LinkedIn. If you have a certification story that you’d like to share, tips and tricks, etc, please send me an email. I’d love to be able to share it here on the blog.

    Conversation Continued

    In next week’s post, I’ll share with you the discussion I had with Mitch around exam results – how to learn from passed exams, and more importantly, how to learn from failed exams.


    Mitch Garvis

    Mitch Garvis is a Renaissance Man of the IT world with a passion for community.  He is an excellent communicator which makes him the ideal trainer, writer, and technology evangelist. Having founded and led two major Canadian user groups for IT Professionals, he understands both the value and rewards of helping his peers. After several years as a consultant and in-house IT Pro for companies in Canada, he now works with various companies creating and delivering training for Microsoft to its partners and clients around the world. He is a Microsoft Certified Trainer, and has been recognized for his community work with the prestigious Microsoft Most Valuable Professional award. He is an avid writer, and blogs at

    This article is also featured on the Canadian Solution Developers’ Blog.

  • Dev Pulse

    What’s In the Cloud: Canada Does Windows Azure – Election Night



    Since it is the week leading up to Canada day, I thought it would be fitting to celebrate Canada’s birthday by sharing the stories of Canadian developers who have developed applications on the Windows Azure platform. A few weeks ago, I started my search for untold Canadian stories in preparation for my talk, Windows Azure: What’s In the Cloud, at Prairie Dev Con. I was just looking for a few stores, but was actually surprised, impressed, and proud of my fellow Canadians when I was able to connect with several Canadian developers who have either built new applications using Windows Azure services or have migrated existing applications to Windows Azure. What was really amazing to see was the different ways these Canadian developers were Windows Azure to create unique solutions.

    This week, I will share their stories.

    Election Night

    On any given election night, the biggest challenge to accomplish successfully is the collection of data. Most campaigns have volunteers numbering in the hundreds out at polling stations scrutineering the results. The polls close across ridings at the same time, so that data comes in fast and furious. In almost every typical scenario, it gets lost. Election Night streamlines the data input process as much as possible, and where possible, allow for remote data input by the scrutineers themselves, so that as much of that valuable data is captured as quickly as possible. In addition, Election Night helps decide the best way to allocate volunteers to the polls through data visualization techniques.

    Postmedia Inc., the company that maintains featured the application on their public site. See how the application was integrated into the site – Riding by Riding and Poll by Poll. You can also access the application directly on Windows Azure - Election Night National Viewer and Election Night District Viewer.

    I had a chance to sit down with John White (@diverdown1964), CTO of UnlimitedViz, Microsoft SharePoint Server MVP, and one of the developers of Election Night to find out how he and his team built Election Night using Windows Azure.

    Jonathan: When you and your team were designing Election Night, what was the rationale behind your decision to develop for the Cloud, and more specifically, to use Windows Azure?

    John: The technology to support these requirements have been around for quite some time. However, and election campaign is ephermal. It lives for about 5 weeks and then disappears. The cost required to implement the required infrastructure to support such a solution has been prohibitive, and the skill required to support remote access has been beyond the ability of most local campaigns. Windows Azure was an obvious fit, primarily because it required no infrastructure, but also because it was easy to access from anywhere.

    Jonathan: What Windows Azure services are you using? How are you using them?

    John: The solution uses both Windows Azure and SQL Azure. The Windows Azure instance contains a Silverlight application that uses RIA Services to connect back to an Entity Framework model. That model connects to the data housed in SQL Azure. In addition, standard ASP.NET pages are also available for interaction with generic smartphones and tablets. When the visualization capabilities were needed by a major media outlet, we were able to package a subset of the application, allow them to deploy it to their Windows Azure instance, and still maintain the data in our SQL Azure instance [Software-as-a-service using Platform-as-a-service]

    Jonathan: During development, did you run into anything that was not obvious and required you to do some research? What were your findings? Hopefully, other developers will be able to use your findings to solve similar issues.

    John: The only difficulties that we ran into were typical early adoption type issues. For example, the standard Silverlight RIA services implementation does not bundle the required libraries for Windows Azure. These were overcome by consulting with Channel 9 videos (like these videos) and published Microsoft guidance.

    Jonathan: Lastly, what were some of the lessons you and your team learned as part of ramping up to use Windows Azure or actually developing for Windows Azure?

    John: Lessons learned? Not very many! Don’t leave too many Windows Azure instances running indefinitely. Your developer allocation doesn’t cover the required cost. Also that SQL Azure storage is very, very cost effective, and fast. Our solution is serving up a million rows with complex queries and geo-encoded data.

    Jonathan: Any last comments and/or thoughts you’d like to share about Windows Azure?

    John: Election Nights fortifies our position of continuing to build cloud based applications with scale. By leveraging the Azure technology platform we were able to repackage components from a much larger application into what Postmedia needed for their website in less than one week. Developing to a common infrastructure meant that we no longer worry about the common deployment roadblocks of matching our application requirements to our client’s environment. It just works!

    That’s it for today’s interview with John. I’d like to take this opportunity to thank John for sharing his story. Tomorrow – another Windows Azure developer story.

    Previous Stories

    Missed previous developer stories in the series? Check them out here:


    This post also appears in Canadian Developer Connection.

  • Dev Pulse

    Next Generation ALM with Visual Studio vNext


    Last month, during TechEd North America, we were introduced to some of the new features that were coming in the next version of Visual Studio, specifically in the area of Application Lifecycle Management (ALM). My colleague Susan Ibach (@HockeyGeekGirl) was at TechEd and blogged about some of those details. If you weren’t able to get out to TechEd and haven’t yet watched sessions on-demand that talk about Visual Studio vNext, you absolutely must.


    Tech·Ed North America 2011 Keynote Address
    Jason Zander, Robert Wahbe

    If you fast forward to 1:01:15 in the video of the Keynote address, you can watch Jason Zander, Corporate VP, Visual Studio talk about what to expect from Visual Studio vNext.


    The Future of Microsoft Visual Studio Application Lifecycle Management
    Cameron Skinner

    This demo-heavy session offers early insights into the future of Application Lifecycle Management and agile development that are incorporated in the next release of Visual Studio.

    And if those two sessions were not enough to get you excited, our friends at TechNet Edge captured some great conversations on the ground at TechEd, specifically, this conversation between Richard Campbell and Jason Zander about the upcoming ALM features. 


    Jason Zander on ALM

    Jason Zander talks to Richard Campbell about Visual Studio v.Next, specifically the upcoming ALM features. Jason talks about the next generation of ALM and how it brings stakeholders, developers and IT Pros closer together with new tooling.

    Want to dive deeper and find out more? Download the Visual Studio vNext whitepaper. It’ll provide you with additional contexts and outlines of the problems that Visual Studio vNext is working to solve, how they relate to problems that are faced as an industry, and how Visual Studio vNext will improve the effectiveness of ALM.

    So what’s next? Stay tuned! As more information because available, we’ll make sure that you hear about it here. In the meantime, join me in this LinkedIn conversation around the features announced in these sessions, share your thoughts, and perhaps recommend a feature or two that you would like to see in Visual Studio vNext.

    This article is also featured on Canadian Developer Connection.

  • Dev Pulse

    What’s In the Cloud: Canada Does Windows Azure - PhotoPivot



    Happy Canada Day! Let’s celebrate with yet another Windows Azure developer story!

    A few weeks ago, I started my search for untold Canadian stories in preparation for my talk, Windows Azure: What’s In the Cloud, at Prairie Dev Con. I was just looking for a few stores, but was actually surprised, impressed, and proud of my fellow Canadians when I was able to connect with several Canadian developers who have either built new applications using Windows Azure services or have migrated existing applications to Windows Azure. What was really amazing to see was the different ways these Canadian developers were Windows Azure to create unique solutions.

    This is one of those stories.

    Leveraging Windows Azure for Applications That Scale and Store Data

    Back in May, we talked about leveraging Windows Azure for your next app idea, and specifically, usage scenarios around websites. We talked about how Windows Azure is ideal for sites that have to scale quickly and for sites that store massive amounts of data. Today, we’ll chat with Morton Rand-Hendriksen (@mor10) and Chris Arnold (@GoodCoffeeCode) from and deep dive into the intricate ways they’ve used Windows Azure as a backend processing engine and mass storage platform for PhotoPivot.



    PhotoPivot is an early stage, self-funded start-up with the potential for internet-scale growth as a value-add to existing photo platforms by adding a DeepZoom layer to peoples' entire image collections. This, coupled with its unique front-ends, creates a great user experience. PhotoPivot experiences huge, sporadic processing burden to create this new layer and is constantly in need of vast amounts of storage.

    Jonathan: When you guys were designing PhotoPivot, what was the rationale behind your decision to develop for the Cloud, and more specifically, to use Windows Azure?

    Morten: Cloud gives us a cost-effective, zero-maintenance, highly scalable approach to hosting. It enables us to spend our valuable time focusing on our customers, not our infrastructure. Azure was the obvious choice. Between Chris and I, we’ve developed on the Microsoft stack for 2 decades and Azure's integration into our familiar IDE was important. As a BizSpark member, we also get some great, free benefits. This enabled us to get moving fast without too much concern over costs.

    Chris: I like integrated solutions. It means that if (when?) something in the stack I'm using goes wrong I normally have one point of contact for a fix. Using something like AWS would, potentially, put us in a position of bouncing emails back and forth between Amazon and Microsoft - not very appealing. I've also been a .NET developer since it was in Beta so using a Windows-based platform was the obvious choice.

    Jonathan: What Windows Azure services are you using? How are you using them?

    Chris: We use Windows Azure, SQL Azure, Blob Storage and CDN. Currently our infrastructure consists of an ASP.NET MVC front-end hosted in Extra Small web roles (Windows Azure Compute). We will soon be porting this to WordPress hosted on Azure. We also have a back-end process that is hosted in worker roles. These are only turned on, sporadically, when we need to process new users to the platform (and subsequently turned off when no longer needed so as to not incur costs). If we have a number of pending users we have the option to spin up as many roles as we want to pay for in order to speed up the work. We are planning to make good use of the off-peak times to spin these up - thus saving us money on data transfers in.

    We use SQL Azure to store all the non-binary, relational data for our users. This is potentially large (due to all the Exif data etc. associated with photography) but, thankfully, it can be massively normalised. We use Entity Framework as our logical data layer and, from this, we automatically generated the database.

    We use Blob storage for all of the DeepZoom binary and xml data structures. Public photos are put in public containers and can be browsed directly whilst non-public photos are stored in private containers and accessed via a web role that handles authentication and authorization.

    One 'interesting' aspect to this is the way we generate the DeepZoom data. The Microsoft tools are still very wedded to the filing system. This has meant us using local storage as a staging platform. Once generated, the output is uploaded to the appropriate container. We are working on writing our own DeepZoom tools that will enable us to target any Stream, not just the filing system.

    Our existing data centre was in the US. Because our Silverlight front-end does a lot of async streaming, users in the UK, noticed the 100ms lag. Using the CDN gives us a trivially simple way to distribute our image data and give our worldwide users a great experience.

    Jonathan: During development, did you run into anything that was not obvious and required you to do some research? What were your findings? Hopefully, other developers will be able to use your findings to solve similar issues.

    Chris: When designing something as complex as PhotoPivot, you’re bound to run into a few things:

    • Table storage seemed the obvious choice for all our non-binary data. Using a NoSQL approach removes a layer from your stack and simplifies your application. Azure's table storage has always been touted as a fantastically cheap way to store de-normalised data. And, it is - as long as you don't need to access it frequently. We eventually changed to SQL Azure. This was, firstly, for the ability to query better and, secondly, because there's no per-transaction cost. BTW - setting up SQL Azure was blissfully simple - I never want to go back to manually setting database file locations etc!
    • There's no debugging for deployment issues without IntelliTrace. This is OK for us as we have MSDN Ultimate through BizSpark. If you only have MSDN Professional, though, you won’t have this feature.
    • Tracing and debugging are critical. We wrote new TraceListeners to handle Azure's scale-out abilities. Our existing back-end, pending user process, was already set up to use the standard Trace subsystems built into .NET. This easily allows us to add TraceListeners to dump info into files or to the console. There are techniques for doing this with local storage and then, periodically, shipping them to blob storage but I didn't like the approach. So, I created another Entity Data Model for the logging entities and used that to auto-generate another database. I then extended the base TraceListener class and created one that accepted the correct ObjectContext as a constructor and took care of persisting the trace events. Because the connection strings are stored in the config files this also gives us the ability to use multiple databases and infinitely scale out if required.
    • The local emulators are pretty good, but depending on what you’re doing, there’s no guarantee that your code will work as expected in the Cloud. This can definitely slow up the development process.
    • Best practice says to never use direct links to resources because it introduces the 'Insecure Direct Object Reference' vulnerability. In order to do avoid this, though, we would have to pay for more compute instances. Setting our blob containers to 'public' was cheaper and no security risk as they are isolated storage.

    Jonathan: Lastly, what were some of the lessons you and your team learned as part of ramping up to use Windows Azure or actually developing for Windows Azure?

    Chris: Efficiency is everything. When you move from a dedicated server to Azure you have to make your storage and processes as efficient as possible, because they directly effect your bottom line. We spent time refactoring our code to 'max out' both CPU and bandwidth simultaneously. Azure can be a route to creating a profitable service, but you have to work harder to achieve this. 

    How did we do it? Our existing back-end process (that, basically, imports new users) ran on a dedicated server. Using 'Lean Startup' principles I wrote code in a manner that allowed me to test ideas quickly. This meant that it wasn't as efficient or robust as production code. This was OK because we were paying a flat-rate for our server. Azure's pay-as-you-go model means that, if we can successfully refactor existing code so that it runs twice as fast, we'll save money.

    Our existing process had 2 sequential steps:

    1. Download ALL the data for a user from Flickr.
    2. Process the data and create DeepZoom collections.

    During step 1 we used as much bandwidth as possible but NO CPU cycles. During step 2, we didn't use ANY bandwidth but lots of CPU cycles. By changing our process flow, we were able to utilise both bandwidth and CPU cycles simultaneously and get through the process quicker. For example:

    1. Download data for ONE photo from Flickr.
    2. Process that ONE photo and create DeepZoom images.
    3. Goto 1.

    Another HUGELY important aspect is concurrency. Fully utilising the many classes in the TPL (Task Parallel Library) is hard, but necessary if you are going to develop successfully on Azure (or any pay-as-you-go platform). Gone are the days of writing code in series

    Thank you Chris and Morten. I’d like to take this opportunity to thank you for taking us on this deep dive exploring the inner workings of PhotoPivot.

    In Moving Your Solution to the Cloud, we talked about two types of applications – compatible with Windows Azure and designed for Windows Azure. You can consider the original dedicated server hosted version of PhotoPivot as compatible with Windows Azure. Would it work in Windows Azure if it were deployed as is? Yes, absolutely. However, as you can see above, in order to really reap the benefits of Windows Azure, Chris had to make a few changes to the application. However, once done, PhotoPivot became an application that was designed for Windows Azure, and leveraging the platform to its max to reduce costs and maximize on scale.

    If you’re a Flickr user, head over to and sign up to participate in the beta program. Once you see your pictures in these new dimensions, you’ll never want to look at them in any other way. From the photography aficionados to the average point-and-shooter, this is a great visualization tool that will give you a new way of exploring your picture collections. Check it out.

    Join The Conversation

    What do you think of this solution’s use of Windows Azure? Has this story helped you better understand usage scenarios for Windows Azure? Join the Ignite Your Coding LinkedIn discussion to share your thoughts.

    Previous Stories

    Missed previous developer stories in the series? Check them out here.

  • Dev Pulse

    AzureFest Meets the East Coast


    East Coast, after many hours of logistics discussions and preparations, AzureFest is coming your way! If you haven’t yet heard of AzureFest, check out this post where AzureFest is described in full.

    Remember, AzureFest is a hands-on event. This means that you’ll be following along on your own laptop and actually deploying your solution during the event. In order to get the most out of the experience, make sure to bring your laptop, a power cable if you’re going to need to plug in your laptop, and a credit card. Don’t worry, nothing will be charged to your credit card during AzureFest. Your credit card is just required for activating your Windows Azure account.

    Here’s the information for the cities on the AzureFest East Coast Tour. If you want to see for yourself how easy it is to move your existing application to the cloud, this is an event you don’t want to miss. Register early as space is limited.

    Greater Moncton Chamber of Commerce Board Room – First Floor
    1273 Main Street, Suite 200, Moncton, NB
    Friday, May 6, 2011 6:00 PM - 10:00 PM
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4)

    UNB Campus
    Room 317, ITC
    Saturday, May 7, 2011 9:00 AM – 12:00 PM
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4)

    The Hub
    1673 Barrington St., 2nd Floor, Halifax, NS
    Sunday, May 8, 2011 1:30 PM – 4:30 PM
    Click here to register

    Presenters: Cory Fowler (@SyntaxC4)

    We’re always looking to hear your thoughts and suggestions on the things that we do. If you have any feedback, we’d really appreciate it if you would share it with us here. We’re starting to think of the next wave of AzureFests – what would you like to see us cover in the next hands-on event? Post any and all suggestions you may have here. We’ll take everyone’s input and design AzureFest 2.0 accordingly. Looking forward to hearing from you.

    Moncton, Halifax, and Fredericton developers, enjoy AzureFest!

  • Dev Pulse

    Up In The (Windows Azure) Cloud


    Up In The Windows Azure Cloud

    Here’s what was up in the Windows Azure Cloud last week (February 6 – February 12):

    New This Week

    Things To Try

    Windows and SQL Azure Development

    General Windows and SQL Azure

    Find something interesting on Windows Azure this week? Share via comments below or let’s discuss on LinkedIn.

    This post also appears in Canadian Developer Connection.

  • Dev Pulse

    Mobile Development at DevTeach



    There was a lot of buzz around mobile development at DevTeach Montreal a few weeks ago with an entire track dedicated to mobile development, 4 Windows Phone 7 sessions, and a post-conference full day event all about Windows Phone 7 with Colin Melia.

    As an added bonus, Carl Franklin (@carlfranklin) and Richard Campbell (@richcampbell) were on hand to host a special .NET Rocks! show – Panel of Mobile Platform Experts. On the panel were Kevin McNiesh, iPhone expert; Robert MacHale, Android expert; Michael Hutchinson, Mono expert; and Colin Melia, Windows Phone 7 expert. The experts sat down to talk about where mobile development is at, development processes, and fielded questions from the audience. 

    Now, you can relive the discussion here.

    Get Microsoft Silverlight

    In addition to this conversation, Colin had an opportunity to chat with Richard about the challenges of securing applications using the phone and the Cloud. The discussion dug hard into Active Directory Federated Services, Azure Access Control Services and more.

    Download the RunAs Radio Interview “Colin Melia Secures Azure and Windows Phone 7”

    Do you have any questions you’d like to ask Colin? Share your questions in this Phone Development LinkedIn discussion.

    About Colin Melia

    Colin Melia is a Microsoft Regional Director and Microsoft MVP for Silverlight known as an architect, trainer, speaker and author with deep and broad knowledge of the latest Microsoft technologies, proven problem solving skills, hands-on solution creation ingenuity and the ability to communicate rich and complex ideas.

    He speaks regularly with his British accent at conferences, events and code camps for Microsoft and community organisations as well as being a college academic advisor. In the summer of 2010 he developed and delivered the first Windows Phone 7 boot camp tour in North America, training dozens of developers and companies across Canada at Microsoft offices. His recent articles and reference cards have been featured on Mobile Developer Magazine & DZone and he regularly posts on his blog.

    Colin has 17 years of hands-on experience in areas of rich UI with WPF/Silverlight, cloud development with Azure and BI with SQL Server, along with in-depth knowledge of core technologies such as .NET, OData, WCF, WF, LINQ and WIF. He has developed award-winning simulation technology with rich UI, cloud-based learning portals and workflow-driven BI systems. He also created the first streaming video community site with Windows Media.

    He has worked in the finance, telecoms, e-learning, Internet communications and gaming industries, with his business solutions recently in use at major league companies world-wide.

  • Dev Pulse

    Is security and privacy in the Cloud just a little cloudy?


    When you consider developing new applications for the Cloud - or consider migrating existing apps to the Cloud - you’re probably starting to think about the security of your application's data. There are many “myths” around this particular topic and many skeptics that use them as a safety blanket to stay away from putting applications in the Cloud.

    IT In Canada’s Mary Allen just posted a great interview with John WeigeIt, Microsoft Canada’s cloud policy expert and national technology officer, entitled Patriots and PIPEDA – locating security and privacy in the cloud. In this article, they discuss the various aspects of data security and privacy that are people’s minds. I highly recommend reading the article even though there’s no code; take some notes so that you’re armed and ready with information when someone asks you what you think about security and privacy in the Cloud. Here are some key points to take away from the interview:

    • The location of the data is not what’s important. it is where control of that data resides that is important. (Page 5)
    • The focus of the security and privacy discussions should be around safeguarding your information and what you’re doing to secure it regardless of where it is hosted. As WeigeIt says: What you need to consider is the security of that environment. There are local tools that you can use, such as encryption, but you should consider what information you have, which tools should be applied, and based on the sensitivity of the data, whether or not this should be hosted outside the organization. (Page 8)
    • Cloud solutions are not black and white. Cloud solutions are not "all in" or "not in at all" (I have heard this one from some architects and IT professionals). Your applications can be a mix of Cloud and on-premise. WeigeIt believes that “you can divide up your particular services and use cloud in an innovative way that allows you take advantage of cloud scalability while protecting privacy.”  (Page 8)
    • The “Cloud” is not necessarily a public cloud. The same principles that make up the public cloud can be applied to create a private cloud: The last piece is that people can bring cloud philosophies into their own data centres. And by making their own operations more efficient, they can have better control, better line-of-sight visibility into their data and their own operations. They can harness some of those efficiencies that we are able to scale out on the cloud side – and we can provide guidance on how to do that as well. (Page 12)
    • For those who are concerned with who controls the data and who has access to it – even though it’s in the Cloud, it’s still your data and it’s kept safe: You do maintain tight control over your data, we are able to provide you with information about your data, and access to it is automatically audited by third party systems, so there is tight control over the data that you ask us to safeguard on your behalf. The SLAs that small businesses enter into with us would describe specifically what their permissions and their controls are. (Page 9)
    • Some feel that if data is local, it’s safer. Applications and data are specifically put online to remove geographic boundaries, so if the data is accessible from an online application, is the data still local? WeigeIt puts it nicely: Another misperception in this view of cloud risks is the notion that if I have my machine, my computer server local in my environment, then it is safer than if I have it remotely in the closet (or elsewhere). If you have your server connect to the Internet, then it is local to whoever is trying to use it. (Page 11)

    To summarize, in order to make the right decision whether “To Cloud or Not To Cloud?”, it’s important to go past the myth and preconceptions and dig deeper to discover what is relevant to your specific application.  You will then be in a position to make a fact-based decision.

    Stay tuned for more myth busting interviews, information, and resources that will help your “To Cloud or Not To Cloud?” discussions and decisions.

  • Dev Pulse

    Long Weekend Plans? One Word – Mango


    It’s finally here! The first long weekend of the summer! Looks like all of the stars aligned, giving us an amazing opportunity to spend three whole days ramping up on Windows Phone 7 Mango.

    Yesterday, Brandon Watson of the Windows Phone team announced the availability of the Windows Phone Developer Tools Beta 2 on the Windows Phone Developer Blog. There’s lots of new features to play with in this release and some new goodies as well. Check out the release notes for a complete listing. To top the news of the release of the new tools, the Mango OS can now be put on your retail Windows Phone 7 device so that you can test out features like fast app resume, updated Live Tiles, motion sensor, live agents, sockets, background audio, and raw camera access on your retail Windows Phone 7 device.

    I mentioned that the stars aligned – well that’s not just because the tools were released or that you can now update your phone. It’s actually that you can do all of that AND have Windows Phone 7 expert and Microsoft MVP Mark Arteaga (@MarkArteaga) to guide you through exploring these really cool updates!

    Get Started

    1. First, go get the tools. You’ll need to update your developer tools to update your phone and to deploy your apps. Read the instructions before updating – These are very important steps which you need to follow to the letter. The Windows Phone team is committed to supporting you with such an early access program, so if you have questions, start with the forums, which they are monitoring.
    2. Update your retail phone to Mango using the instructions included with the tools download. Make sure to save your backup somewhere safe (maybe on your machine and on an external device as well – you can never be too sure).
    3. Head over to Mark’s blog where he’s prepared some walkthroughs for you.

      Windows Phone 7 and Multitasking Revisited
      Windows Phone Multitasking - Fast Application Switching
      Windows Phone Multitasking - Scheduled Notifications
      Windows Phone and Database Support
      New Windows Phone Device Status APIs
      Windows Phone Launchers and Choosers
      Augmented Reality and Windows Phone 7 - Part 2
      Quick Tip: Theme Aware Icons

    Make sure you stay tuned to Mark’s blog and follow him on Twitter. With 1500 new APIs in Mango, have no doubt that there will be additional walkthroughs posted in these months coming up to the Mango release and beyond.

    From your team here at Microsoft Canada, we all wish you a safe and enjoyable weekend! Happy learning!

    On behalf of Canadian mobile developers, I’d like to thank you, Mark, for guiding us on this exciting journey.

    About Mark Arteaga

    Mark Arteaga is Founder and President of RedBit Development which specializes in helping customers such as Bell Media (formerly CTVGlobeMedia), The Globe & Mail and MTV implement mobile based solutions. Mark has an extensive background in software development and has dedicating the last 10 years to the trade. Mark has also been awarded Microsoft’s Most Valuable Professional award 6 years in a row for his role in the Windows Phone developer community and is the only Windows Phone Developer MVP in Canada. Mark is often speaking to the developer community at various events about mobile based solutions throughout Canada. You can contact Mark via his blog at, or follow him on Twitter.

  • Dev Pulse

    Designing for Success (through User Experience)


    Spin the MooseLast week, I was at Prairie Dev Con and had the pleasure of sitting in on David Alpert’s sessions on user experience called Design for Success. I found it fascinating that such an important part of an application never really gets the attention that it deserves, and most times, overlooked entirely. This is very bad, and David explains why in his talks.

    If you have a chance to see this talk live, I highly recommend it. David is a very dynamic, enthusiastic, and clearly passionate speaker, and so seeing these talks in PDF below doesn’t do it justice, but will give you insights into why User Experience is fundamental to the success of an application.

    Design for Success 101 - Why User Experience matters for your app

    Download Slides (PDF)

    Design for Success 101 – Why User Experience matters for your app

    As software developers, we love to solve problems. Too often, however, we start mapping out solutions using our favourite patterns and technologies before we fully understand the goal, or we focus on functional requirements and lose sight of the big picture. In this session we’ll cover the basics of what a User Experience approach brings to the table and how it can make a difference in the success of your application.

    Design for Success 102 - 7 ways to make your app more Learnable, Usable, & Enjoyable

    Download Slides (PDF)

    Design for Success 102 – 7 Ways to make your app more Learnable, Usable, & Enjoyable

    Why are some apps a pleasure to use while others a source of endless pain? In this follow-up to Designing for Success 101, we’ll focus on end-user interactions. Looking at several design patterns we’ll explore how to generate less frustration and more delight for our clients and their customers.

    Your Thoughts

    When you’re developing applications, how much attention to you pay to the user experience? How do you go about designing your application’s user experience? Share your thoughts in this Ignite Your Coding LinkedIn discussion.

    About David Alpert

    David Alpert is a Senior Software Developer, Front-End Engineer, Interaction Designer, experienced Business Analyst, and proven leader and mentor who wants to change the IT industry. With a BSc. Honors in Computer Science and over 15 years of development experience, David is a passionate visionary whose knowledge, skills, and communication style are focused towards identifying and removing friction in all aspects of application development and teambuilding.

    David is currently living in Winnipeg, Manitoba with his superhero wife and 5 amazing kids.

Page 1 of 2 (44 items) 12