The user experience team for Silverlight is looking to get some feedback on some of their latest designs for Silverlight application templates and perhaps more.  Instead of getting this feedback only internally, I thought it would be good to help them get external feedback as well from people using our platforms.

You don’t have to go anywhere and don’t have to leave the comfort of your own home.  They’d like about 30-45 minutes of your time online to talk and take a look at things.  You’ll be an early previewer of these designs and can help shape how developers and designers leverage them in their applications.

NOTE: Since you’d be previewing early work that hasn’t been disclosed, you may be required to agree to a non-disclosure agreement.

As a thanks for providing your feedback, you’ll be able to receive some software – contact the organizer below for details on that as I don’t have them right now.  Here are the requirements to participate:

  • You are NOT a software developer/programmer
  • You do not have any software development background
  • You are not a designer (visual, graphic, interaction etc)
  • You do a lot of web browsing, read content online and watch media content online
  • You don’t work for Microsoft :-)

I know this sounds weird posting this here – as I’m basically asking for non-geeks :-).  But I believe this exercise would help you as a developer/designer get your customers understanding how design impacts applications.  Please encourage your consumer friends and customers to participate.  If you are interested in participating in the study, please contact Vidya at [email protected] with the following details: Name, occupation, number of hours web browsing you do per week, and top 3 common sites you visit.  This is first come, first serve participation.

Thanks for helping the Silverlight team make our products and framework better!


This work is licensed under a Creative Commons Attribution By license.

PDC is coming…it’s only a few weeks away.  Are you going?  I am and I couldn’t be more excited.  I’m coming in Sunday and helping with a workshop on Monday.  Then the rest of the week will likely be a blur.

If you are going (and even if you aren’t), there is one party you will not want to miss.  Last year "The Underground @ PDC” was a great party and gathering of geeks.  The Gu, Scott Guthrie, was there.  As was Don Box and Scott Hanselman dishing out the geek humor and flames toward one another.  It was great.  And the venue for the after-geekiness was amazing…one of the coolest pubs/bar/whatever I’ve been to.

Well, it’s back.

Underground at PDC logo

This year it’s at a place called the Conga Room, which looks to be a latin fusion kind of place.  If there is a Buena Vista Social Club-like band or any form of Mariachi, you might not be able to pull me away. 

The Gu is on the agenda as well for this party.  The best part about this party: FREE.  The only catch – you need an invitation code.  I’ve got one at the bottom of this post.

This event/party is being provided by one of the evangelism teams at Microsoft.  Last year I had a great time mingling with folks and seeing a bunch of live podcast interviews going on with some of the names you’d recognize in the geek world.  It was a blast.  This year promises to be no different. 

You don’t have to be a PDC attendee to go to the party…if you are a SoCal developer and couldn’t make it to PDC, this is for you – you simply have to register.  If you can make it (please don’t register ‘just because’) – visit the registration site and use the RSVP code: arpile.  This code is good for a limited amount of registrations…once it’s gone, it’s gone.  This code is at it's maximum registrations.  Follow UndergroundPDC on Twitter where they will be giving out more codes.  I’ve heard about a very cool special surprise that will be there too – can’t say anything though – I’ll be uninvited…and I don’t want that.

I hope to see you at PDC and at The Underground @ PDC!

I previously wrote about DataGrid grouping using the declarative model of adding GroupDescriptors.  Unfortunately that feature (the declarative part) never made it to the release of Silverlight 3.  It was pointed out to me that I should update that post and it has been on my //TODO list for a while.  Here’s an update…

First, I’m still using a sample data class of Person as my test data:

   1: using System.Collections.Generic;
   2:  
   3: namespace DataGridGroupingUpdated
   4: {
   5:     public class Person
   6:     {
   7:         public string FirstName { get; set; }
   8:         public string LastName { get; set; }
   9:         public string Gender { get; set; }
  10:         public string AgeGroup { get; set; }
  11:     }
  12:  
  13:     public class People
  14:     {
  15:         public static List<Person> GetPeople()
  16:         {
  17:             List<Person> peeps = new List<Person>();
  18:             peeps.Add(new Person() { FirstName = "Tim", LastName = "Heuer", Gender = "M", AgeGroup = "Adult" });
  19:             peeps.Add(new Person() { FirstName = "Lisa", LastName = "Heuer", Gender = "F", AgeGroup = "Adult" });
  20:             peeps.Add(new Person() { FirstName = "Zoe", LastName = "Heuer", Gender = "F", AgeGroup = "Kid" });
  21:             peeps.Add(new Person() { FirstName = "Zane", LastName = "Heuer", Gender = "M", AgeGroup = "Kid" });
  22:             return peeps;
  23:         }
  24:     }
  25: }

Then my XAML is a simple DataGrid (make sure to add assembly references to your project to System.Windows.Controls.Data):

   1: <UserControl x:Class="DataGridGroupingUpdated.MainPage"
   2:     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   3:     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   4:     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
   5:     xmlns:datacontrols="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
   6:     mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
   7:     <Grid x:Name="LayoutRoot">
   8:         <StackPanel>
   9:             <StackPanel Orientation="Horizontal">
  10:                 <TextBlock Text="Group:" Margin="0,0,10,0" />
  11:                 <ComboBox x:Name="GroupNames" SelectionChanged="GroupNames_SelectionChanged">
  12:                     <ComboBox.Items>
  13:                         <ComboBoxItem Content="AgeGroup" IsSelected="True" />
  14:                         <ComboBoxItem Content="Gender" />
  15:                     </ComboBox.Items>
  16:                 </ComboBox>
  17:             </StackPanel>
  18:             <datacontrols:DataGrid x:Name="PeopleList" />
  19:         </StackPanel>
  20:     </Grid>
  21: </UserControl>

Notice the xmlns:datacontrols declaration at the top.

Now since we can’t do the grouping declaratively as in my previous sample with Silverlight 3 beta, here’s how we could do it.  In Silverlight 3 you have access to PagedCollectionView (add a reference to System.Windows.Data to get it).  This is a view that enables you to add sort and group descriptors.  In my initial loading code I instantiate a new PagedCollectionView passing in my List<Person> as the enumerable type.  I then set a default grouping on it.

   1: PagedCollectionView pcv = null;
   2:  
   3: public MainPage()
   4: {
   5:     InitializeComponent();
   6:     Loaded += new RoutedEventHandler(MainPage_Loaded);
   7: }
   8:  
   9: void MainPage_Loaded(object sender, RoutedEventArgs e)
  10: {
  11:     pcv = new PagedCollectionView(People.GetPeople());
  12:     pcv.GroupDescriptions.Add(new PropertyGroupDescription("AgeGroup"));
  13:  
  14:     PeopleList.ItemsSource = pcv;
  15: }

Then I can wire up a quick and dirty (just for demonstration purposes) ComboBox to show changing the grouping (or perhaps adding another one if you’d like):

   1: private void GroupNames_SelectionChanged(object sender, SelectionChangedEventArgs e)
   2: {
   3:     if (pcv != null)
   4:     {
   5:         // comment this next line out to see
   6:         // adding additional groupings.
   7:         pcv.GroupDescriptions.Clear();
   8:         ComboBoxItem itm = (ComboBoxItem)GroupNames.SelectedItem;
   9:         pcv.GroupDescriptions.Add(new PropertyGroupDescription(itm.Content.ToString()));
  10:     }
  11: }

You see we are just changing the PagedCollectionView and not the DataGrid.  The binding that exists between them already understands what to do – so we just have to change the data source, not the control displaying the source.  Put them all together and the running application shows the grouping:

DataGrid grouping sample image

Hopefully this helps clarify the change from SL3 beta and apologies for the delay in updating what is a common sample request.  Who knows, maybe in future versions the declarative model will come back :-).  Here’s the code for the above if you’d like to see it: DataGridGroupingUpdated.zip

Standard caveats apply: I’m a Microsoft employee and fanboy.  I’m not ashamed.  I will say though when the announcements of the Microsoft retail brick-and-mortar stores opening, I was skeptical…no doubtful.  I kept (and still do a bit) thinking to myself how are they going to compete with the likes of Best Buy and others?!  Nonetheless, I waited patiently to see the plans.

I wouldn’t have to wait long as the first store opened up in Scottsdale, Arizona, USA.  Scottsdale is a neighboring town in the sprawl we call “Phoenix” (it’s about 40 mins from me in the QC).  When opening day came around, surely nobody would be there right?  Wrong.  Call them fanboys, eager folks to get tickets to the concert that night for their kids, whatever…but there were folks camped out.  And the lines were amazing.  The opening was an amazement to me of buzz and excitement from what I could tell.  4 days later I took the chance to go out there and take a look.

Microsoft Store EntranceI first saw a front entrance that didn’t display ‘old school’ Microsoft.  A subtle logo twist on the Windows logo (perhaps too subtle?  will people know) greets the header of the entry way.  Yes, it feels very Apple store-ish.  Naysayers flame away: copycat, blah blah.  So what…if you want to be successful, do you ignore what already has been successful?! No.

The store from the outside is very bright and clean.  Other than what are perhaps load-bearing pillars, floor-to-ceiling glass is in the entire front entry way.  When you walk in you’re greeted by some newly christened Softies (yes, they are full Microsoft employees…I see them in the GAL).  Each employee is wearing different colored shirts.  I’m assuming red means some type of supervisor or senior person.  I saw the manager, Cheryl, whom I’d been debriefed on earlier in the year.  The store was packed and I didn’t think it’d be appropriate to chat her up (aside from the fact my kids were yanking down all the Zune HDs from their docks).

Microsoft Store Crowd

I was approached by an associate who asked if I needed anything.  I identified myself as a fellow Microsoft employee and he asked me what team.  Silverlight, I told him.  Immediately he knew what that was and replied that he’s learning it right now coming from the Flash world as an animator.  Wow.  A retail clerk knowing Silverlight?!  We chatted about he Zune HD as I’d not seen them yet (one locked up on me while playing with it, which was weird). 

Microsoft Store laptop sales (dell adamo)I wandered around and was amazed at the laptop availability from all the major players: Dell (man that Adamo is sweet), Toshiba, HP, Sony, Acer, Lenovo, etc.  And all form factors: huge touch screens to netbooks.  I’m not sure how well they are priced, but the 13” Adamo was listed there at $1400.  Based on the sales figures I heard from one employee on the first day laptop sales, they were clipping along really well – people are actually buying stuff there!  I couldn’t tell for sure, but it looked like the machines purchased in the store were decrapified.  At least on the Dell’s I messed around with, the typical crapware was not installed – could have been a demo station thing, not sure and I didn’t ask.  The presentation of the machines and Windows 7 was well done though.

What amazed me was the conversations being had.  I heard more times from customers Oh, I didn’t know that.  The employees I saw engaging weren’t stumped.  These were very well prepared employees from what I could tell, accurate in information and confident in their replies to customers.  Solid.

Microsoft Store SurfaceSurface was a clear hit in the store.  There were four of them that I could tell, two “standard” ones that you see everywhere and 2 that were encased in a nicer presentation and at chest/bar level.  Perhaps this was so that adults could actually get a use on them.  The two others had a constant flux of kids in them playing the games (they were loaded up with all the demos in the world).  Seeing people interact with Surface was pretty cool – very little instruction needed other than “it’s a touch machine” – and people seemed to find it very intuitive.

There was also an “answer bar” in the back.  Yes, mock if you will the familiarity with the Apple genius bar.  Who cares, it’s the right thing to do.  There was a screen showing the appointments upcoming and it was pretty active.  I even saw someone bring in their XBOX for the red-rings-of-death fix.  Heck that alone could make the stores valuable :-).  Most people were there to understand Windows XP upgrades to Windows 7 it looked like to me.  Behind the answer bar there was also a room dedicated to instruction. 

Microsoft Store learning Microsoft Store Answer Bar

A huge screen with seating so regularly scheduled classes could be given to anyone who wishes.  For the Scottsdale store, you can find the upcoming lists on the web site for the Microsoft Store.  They have things ranging from exploring Windows 7, to getting in depth with Zune and understanding Office better.  I think this will be an essential asset for the store and Microsoft and the stores should be marketing the heck out of these learning sessions.  Everywhere.

Some cool facts?  Tons of WPF applications :-).  The wall that surrounds the entire store (which is very cool and really makes the store) is a WPF application.  One of the developers reached out to me a while back to let me know about it.  It’s pretty cool.  Also is some of the product choice helper application kiosk that are in some places (touch based of course).

Microsoft Store wall

Overall, a great experience and changed my mind.  The staff is well trained, the products are presented well and people are entering in the store.  I thought Scottsdale was an odd place for the store (it is in between a Tiffany & Co. and a Barneys) given the (yes I’m stereotyping) typical Scottsdale Fashion Square crowd.  We’ll see if that crowd levels continue through the holidays. 

The one thing that I think they are missing out on for geeks is a better name for their free WiFi.  I love how Apple brands their WiFi essentially.  Microsoft’s? RETAILGUEST.  Now anyone who has been to a Microsoft conference before will know that’s typical IT naming for us, but it misses a simple, subtle brand opportunity.  How about Microsoft Store?!?!

I think the store opening so far has been a success in sales and perception.  To me, the perception is key.  Having so many people having aha moments in the store should certainly help change their knowledge of Microsoft products and dispel some myths being portrayed.  The engaging, friendly and knowledgeable staff will only help things.  I wish that I’d seen a living room setup so that Media Center/XBOX had a better showing.  I think that is one product that isn’t out there in the consumer space enough.  And since I’ve moved completely to Media Center for my TV, having a setup showing things like the HD HomeRun and Windows Media Center with XBOX as an extender could go a long way I think.  It was energizing to see the store and how it was doing.  I wish it the best of luck!  The Mission Viejo store will be opening this week (29-Oct).

Oh yeah, and not a single BSOD in the the entire store :-).


This work is licensed under a Creative Commons Attribution By license.

As a follow-up to my Silverlight For WordPress plugin, I have just deployed Mark Heath’s Silverlight Audio Player as a WordPress plugin.  Thanks to Mark for changing his license to Ms-PL so that I could make this happen.  If you are a WordPress user and want to use Silverlight for audio playback, you use some WordPress macro language (in this case slaudio) and put it in.  The rendered output is like this:

Silverlight Audio Player for WordPress (collapsed)

And when you click the play button it expands:

Silverlight Audio Player for WordPress (expanded)

Again, most of the actual Silverlight work is Mark’s, so be sure to head on over to his project to thank him or if you find issues in the Silverlight player.  I’ll update the plugin whenever a new version of the player is released.

NOTE: A lot of people ask me if I’m running WordPress on this blog because of these plugins.  The answer is no.  I run the most awesome Subtext framework here.  I do have a few other sites that I use WordPress on.

To install in WordPress, simply search for the plugin in your admin dashboard under ‘silverlight’ and you will find it listed as Silverlight Audio Player for WordPress.  I’ve tested it on 2.8.5 but should work back to 2.2.x.

Hope this helps!