Windows Phone 7 Boot Camp

I attended the Windows Phone 7 Boot Camp hosted by Microsoft’s Jeff Brand in Minneapolis the other day. The event provided a good overview of the Windows Phone 7 platform, and the opportunity for some hands on development with the Windows Phone 7 Developer Tools and Microsoft Expression Blend for Windows Phone Beta. You can get all of the developer tools and register at the Marketplace at http://developer.windowsphone.com/.

I must admit that the steps to getting up and running with Windows Phone 7 were more straightforward than the last time I set up the Andriod platform (which was a few months ago now). I’m sure this is due to my familiarity with Visual Studio, and my lack of familiarity with Eclipse, but all in all, the WP7 setup is pretty straightforward.

The Boot Camp started with an overview of the context of the Windows Phone 7 platform and marketplace. Unfortunately, as I was late in arriving, I missed most of this presentation. But in reviewing the slides and notes, I am impressed with the focus on simplicity of design in the Metro design concept. To see more on this, visit http://www.windowsphone7.com/.

The next portion of the presentation was spent on Silverlight basics such as XAML, Styling, and Databinding. Later, there was a good portion of the morning devoted to the demonstration of some of the cool features and capabilities of the new platform, such as how the Accelerometer works, how Push Notification can conserve device battery and leverage the cloud for processing, and the various options for determing Location and the tradeoffs of using each, to name just a few.

One simple feature that caught my attention was InputScopes, which allows you to specify the keyboard input criteria of a TextBox, right in the XAML. Specify a TelephoneNumber InputScope, and the keyboard input only displays a telephone keyboard. Set the InputScope to a keyboard, and you’ll get a full keyboard. Nice.

<TextBox Text="{Binding PhoneNumber, Mode=TwoWay}">
  <TextBox.InputScope>
    <InputScope>
      <InputScopeName NameValue="TelephoneNumber" />
    </InputScope>
  </TextBox.InputScope>
</TextBox>

Unfortunately, InputScope XAML is not yet supported in the Expression Blend for Windows Phone Beta tool, so I had to comment this out in order to load the page in Blend. Oh, the joys of working with Beta software.

One issue that kept bothering me during the demonstrations was the use of code behind in the Xaml files to wire up events. As a proponent of the MVVM pattern, I struggled to find a good way to wire up events on my buttons, as the Command Property is not (yet?) available on Button Controls in WP7. I finally gave up and used the Commands from the MVVMLight framework to handle these events. This is something I need to do more investigation on and to understand better.

There is no doubt that Windows Phone 7 has an uphill battle in breaking into the mobile phone platform world dominated by the iPhone, Android, and Blackberry. And the glaring issues with the first release (lack of true multitasking and concerns about the Marketplace) will definitely need to be hammered out. But from my developer and user experience point of view, I am impressed with the robust, dynamic, and usable Windows Phone 7 development tools as they exist today. What of course remains to be seen are the performance of the actual devices and the adoption of WP7 in the larger marketplace.

Here is a list of Boot Camp session details and future offerings.

http://slickthought.net/post/2010/07/19/Windows-Phone-7-Boot-Camps-Coming-to-a-City-Near-You.aspx

And here is the source code and the presentations from the event:

http://slickthought.net/download/wp7bootcamp.zip

5 Responses to “Windows Phone 7 Boot Camp”

  1. Donn Felker says:

    I was hoping you were going to blog about this. Glad to hear it went well. I was hoping to make it but was working hard to trying to make a scrum deadline.

  2. Baskin Tapkan says:

    nice post. would like to try out the samples and the sdk as i find sometime over the weekend. besides your points another thing bothers is lack of tests. were there any discussion about unit-testing the XAML code. Typically it is hard to unit test onclick/onkeydown type events.

  3. Scott Koland says:

    Good point about testing, Baskin. This is why I was trying to figure out the eventing mechanism of buttons in WP7; to implement MVVM. With MVVM, there are no onclick/onkeydown events in the codebehind. There is no codebehind at all (ideally, at least). With no codebehind, unit testing is pretty straightforward to implement (in theory, anyway).

    I now need to figure out how WP7 handles eventing. It is different from WPF, Silverlight, and the workarounds/options available in Blend for WPF/Silverlight.

    For a good overview of MVVM and the goal of no codebehind, see Rocky Lhotka’s Bxf framework, examples, and video at http://bxf.codeplex.com/.

  4. [...] This post was mentioned on Twitter by Donn Felker, Scott Koland. Scott Koland said: New blog post: WIndows Phone 7 Boot Camp http://bit.ly/dDA0YO #wp7 [...]

  5. Maximo Ferre says:

    good post! Thanks for Sharing

Leave a Response