Friday, June 26, 2009

Azure Developer Challange Grand Prize Winners

Congratulations to the winners of the Azure Developer Challenge. The judges awarded the grand prizes to Kevin Rohling for Impulse and Laith Yousif for Twtri. Check them out.

However, this is not quite over. There's still a community-chosen winner. Voting remains open till 6/29. My entry is Joint Venture.

Speaking on Azure Design Patterns at So Cal Code Camp

I'll speaking at So Cal Code Camp this weekend in San Diego. My talk is on Azure Design Patterns, Saturday at 2:30.

This session will present Design Patterns for cloud computing on the Azure platform. Azure provides oodles of functionality that range from application hosting and storage to enterprise-grade security and workflow. Design patterns help you think about these capabilities in the right way and how they can be combined into composite applications. We'll cover design patterns for hosting, data, communication, synchronization, and security as well as composite application patterns that combine them. We'll be doing hands-on code demos of a number of composite applications, including a grid computing application.

Azure Design Patterns Web Site

Sunday, June 21, 2009

Vote for Me!

My entry in the Azure Developer Contest is Joint Venture, a business collaboration application. One of the contest winners is selected by community voting, so if you're reading this before 6/29/09 I'd appreciate it if you would check out the app and consider voting for it, which only takes 5 seconds. Simply go to the contest site, select the app you want to vote for (my app is listed at the bottom of the voting list), and click Submit Vote. Regardless of who wins, it's good to see app building going on for Azure.

"Joint Venture": New Azure Multi-Business Enterprise Application (MEBA)

I'm pleased to announce my latest Silverlight-Azure reference application which is called Joint Venture. Joint Venture provides a workspace for cross-business project teams. That is, teams made up of people from more than one business who are working on some kind of business collaboration. This is an example of a Multi-Enterprise Business Application (MEBA), an app used by multiple businesses who have a relationship with each other. The cloud is an ideal place for business collaboration, providing a neutral location that can be easily and universally accessed.

Here's a screen capture of what Joint Venture looks after a user has logged in and is viewing one of the projects they belong to. In this example, there is a 3-way collaboration between AdventureWorks (a manufacturer of camping and sporting equipment), Northwind Traders (a national retailer who will be distributing AdventureWorks' products), and Woodgrove Bank (a financial partner who provides credit services to consumers). The team member names, photos, roles, and companies are shown along with contact information. Project documents can be uploaded and downloaded.

Viewing a Project (click to enlarge)

Any member of the team can see the project team and project documents. Each team member is granted an access level by the project owner (viewer, contributor, or administrator ). A viewer can see the team and project documents but can't add or change anything. A contributor can add or update documents but can't change any team information other than their own. An administrator can change anything in the project, including making changes to the makeup of the team.

Team members don't have to be members of Joint Venture in order to be added to a project. In the screen capture, you see that some members are shown with photos, indicating they have visited Joint Venture and set up profiles. Other team members are shown with a default team member icon--they can still be included in the project even if they haven't joined the site yet. Once they do, their pictures will appear and the project will be available to them. It's the use of email address as unique identifier that provides the linkage between users and projects.

Technically, Joint Venture makes heavy use of Silverlight, WCF, Azure, and Windows Live ID. The cloud is used in 3 ways: to host the Silverlight application and WCF web service, to authenticate users via Windows Live ID, and to store user profiles and project information. The web service is necessary because Silverlight can't directly make calls to cloud services due to its security model. Silverlight calls the web service and the web service handles all of the storage and recall of data. Cloud blob storage is used in the same way you would use a file-system in a local application.

Joint Venture is just getting started. It needs to be extended and refined before I consider sharing it on CodePlex. In the meantime it can be accessed online at and I'm interested in feedback on where to take it next. Future plans include extending project information to include folders for project documents, a threaded discussion board, and a project plan/timeline.

Saturday, June 20, 2009

Next Orange County Azure User Group Meeting Thursday 6/25 on Silverlight and Azure

The Orange County Azure User Group next meets on Thursday, June 25 at 6pm. The topic for this month's meeting is Silverlight and Azure. David Pallmann and Richard Fencel will both be presenting.

In David's presentation, you'll learn how to create rich Silverlight applications that are Azure-hosted and take advantage of cloud services. We'll build an Azure-hosted Silverlight application from the ground up that utilizes web services and cloud storage.

In Richard's presentation, you'll learn about Silverlight dependency properties. Dependency properties are one of the most important and least understood aspects of Silverlight. This lectures describes the advantages of dependency properties and then explains how they work by building a custom dependency property system from scratch. The result is that the student will obtain an intuitive "clay between the fingers" understanding of how dependency properties operate and what they are good for rather than an abstract concept of an underground plumbing system that magically connects Silverlight objects.

As usual, we'll be meeting at QuickStart Intelligence in Irvine.

Register here:

Please be sure to RSVP if you're coming so we can get the head count right for pizza and beverages.

Please note the start time is 6pm, not 5pm as was erroneously listed in some of the event postings. The meeting will go from 6pm to approximately 8:30 pm.

Tuesday, June 9, 2009

San Diego Azure User Group Meeting 6/11

The San Diego Azure User Group is this Thursday, June 11th 6-8pm. I'll be speaking.

The topic for this month's Azure User Group meeting the topic is Silverlight and Azure. You'll learn how to create rich Silverlight applications that are Azure-hosted and take advantage of cloud services. We'll build an Azure-hosted Silverlight application from the ground up that utilizes web services and cloud storage.