-or-

Inside the PASS Event Browser for Windows Phone (Part 3)

OK, and now for the final installment of the series about my PASS Event Browser app.

Improvements in v2.0

As I am writing this post, I have just submitted v2.0 of the PASS Events Browser, which includes the following improvements:

  • Filtered queries are now executed on the client. In the v1 app, each filtered query required a request be sent to the data service. Now, the sessions for the selected event are downloaded once and all filters are applied as LINQ queries against collections on the client. This really improves performance overall as downloading Atom XML from an OData service over a cellular network can be slow.
  • I expanded the single sessions list into a Panorama control featuring 4 different group by and sort order lists:
    byTime_thumb byTitle_thumb byTrack_thumb byLevel_thumb
  • Session lists now use the LongListSelector control, from the toolkit, which makes it easier to scroll through long lists of unfiltered sessions (the Summit had 202 sessions):
    SessionsByTimeTiles_thumb SessionsByTrack_thumb
  • The progress bar in the events details page is no longer indeterminate. It now gets updated for each page of results loaded—and you can’t use the Panorama until the loading is completed (still needs a cancel button, perhaps):
    SessionsLoading

VNext Improvement Plans

Despite all of these v2 improvements, I still couldn’t get to everything that I wanted to do. Once again, I restricted the features in the update to make a deadline, this time I will get the app certified in time for the SQLRally 2011 Nordic (in Sweden). Here is what I still want to do, but that didn’t make the cut:

  • Search for individual speakers—this might require speaker pages
  • Search for just specific properties (e.g. SessionName, SessionDescription)
  • Remember favorite sessions—suggested by a user
  • Make session details into filter links—clicking a link filters sessions by that detail attribute
  • Display upcoming events/sessions in Tiles
  • Add a clock to the pages—it would be nice to check on the time while browsing
  • Caching all event data locally—with on demand refresh from the data service
  • Store users settings:
    • User-set page size
    • Remember the current event—so that you don’t have to keep selecting the same event when it is going on
    • Store favorite sessions
    • Whether to display upcoming events to tiles
    • Whether to cache data locally
    • Hide past events

Please feel free to leave me comments on any of these ideas, or suggest your own.

Glenn Gailey