Can a cloud-enabled Windows app support itself financially?


Which Windows and/or Windows Phone app business model suits an app with a Microsoft Azure backend?

It would seem that an app purchased from the Windows Store for, let’s say, $1.49 (which is one-time revenue) would quickly be consumed by the continuous (variable) cost of the cloud services it interacts with. What is viable? Ads? In-app credits that get consumed and replenished based on backend usage?

Can a cloud-enabled app support itself financially?

Reference links:

SharePoint 2010 Advanced Developer and IT Professional Training


Earlier this year I was fortunate to take a week off and virtually attend the SharePoint 2010 Ignite Developer training. This was an intense deep dive into the new capabilities of SharePoint 2010 and included a number of virtual labs where we got to practice new learnings on actual servers.

After digging around my email for links to these training materials for download I was pleased to find that this training has now been made public, including many of the virtual lab exercises! See links below and enjoy.

SharePoint 2010 Advanced Developer Training
SharePoint 2010 Advanced IT Professional Training

HttpWebRequest, HttpWebResponse, and the WebException


Calling the GetResponse() method on the HttpWebRequest class yields some interesting results. It determines that a status code of anything else but 200 (OK) is an exceptional case and throws a WebException exception.

The following code demonstrates how to return the status code even if the URL in the request is not OK.

HttpStatusCode httpStatusCode;
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("");
    using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
        httpStatusCode = httpWebResponse.StatusCode; //OK
catch (WebException webException)
    if (webException.Response != null)
        HttpWebResponse httpWebExceptionResponse = (HttpWebResponse)webException.Response;
        httpStatusCode = httpWebExceptionResponse.StatusCode; //Something other than OK
        throw webException; //Invalid host name
return httpStatusCode;

MCPD: Web Developer


Last month I completed the final exam in the .NET Framework 2.0 Web Developer series to achieve the MCPD. Check my About page to see a list of my current certifications.


MCTS: .NET Framework 2.0 Web Applications


This week I completed the second of two exams to achieve the MCTS: .NET Framework 2.0 Web Applications certification. This is just one step toward the MCPD: EA certification. Check my About page to see a list of my current certifications.


SharePoint Guidance: Released


Microsoft patterns & practices SharePoint Guidance has been released to MSDN!

Updated: SharePoint Guidance 1.0 – Nov 2008

Here are a few of the topics you will find inside:

  • Architectural decisions about patterns, feature factoring, and packaging
  • Design tradeoffs for decisions many developers encounter, such as whether to use SharePoint lists or a database to store information
  • Implementation examples that are demonstrated in the Training Management application and in the QuickStarts
  • How to design a SharePoint application for testability, create unit tests, and run continuous integration
  • How to set up different environments including the development, build, test, staging, and production environments
  • How to manage the application life cycle through development, test, deployment, and upgrading
  • Team-based intranet application development
  • You might also see my name, along with the names of a couple of others from Avanade, in the Authors and Contributors section. (Updated to refer to SharePoint Guidance 1.0 – Nov 2008)

    Service Level Dashboard for System Center Operations Manager 2007


    Earlier this year I worked on a project with the Microsoft Solution Accelerator Team to develop what was released as the Service Level Dashboard for System Center Operations Manager 2007.

    The dashboard is a report that is installed into Operations Manager 2007 and is used to display availability and performance metrics related to SLA thresholds set by the administrator.

    Service Level Dashboard for System Center Operations Manager 2007


    I also recently noticed my name, along with the names of many others from Avanade, on the Acknowledgements page.

    MCTS: WSS 3.0 – Application Development


    Last Saturday I was able to pass the 70-541 exam to earn the MCTS: Microsoft Windows SharePoint Services 3.0: Application Development certification. Not only will I be working on my MCPD certification this year, but also the WSS/MOSS certifications. Check my About page to see a list of my current certifications.

    Dynamic Cascading Drop Down Lists


    Recently, I have been doing a lot of ASP.NET development inside of SharePoint. Once area that I have found to be quite tricky, although not SharePoint-specific, is dynamic ASP.NET controls. In particular, managing postbacks when you have dynamic ASP.NET controls.

    Here is a link to the source code for a Visual Studio 2008 solution, which demonstrates the use of dynamic cascading ASP.NET drop down lists that happen to query SharePoint.

    If you are not developing on a SharePoint box you can simply replace the SharePoint queries with some other data source such as a generic list.

    Please provide comments if you have any feedback.

    Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

    SharePoint Guidance: Second Release


    The second release of SharePoint Guidance from the Microsoft Patterns & Practices SharePoint Guidance team is now published on Codeplex at

    Updates included in this release:

    • Refactor code to leverage MVP pattern where applicable.
    • Refactor SPList-related SharePoint code with the Repository Pattern.
    • Unit tests for manager and presenter classes using TypeMock.
    • And much more…
    Disclaimer: This will evolve (and change) significantly. At this stage the RI provides a basic set of WSS features with accompanying guidance. This is not a CTP or a BETA.

    Stay tuned for new releases about every two weeks or so.