Better Silverlight 4.0 Installation and Upgrade Experience

Perception is everything and how your application installs, loads and upgrades can make a big difference to how users feel about it. Out of the box, Silverlight doesn’t make things particularly easy, but don’t worry, with a little work, you can cover the bases.

There are a number of checks you need to make when a user first browses to a website that contains your Silverlight application. The figure below illustrates this.


continue here …

Windows Phone 7 Life Cycle


One of the key dilemmas facing Windows Phone 7 programmers is how we maintain an extremely responsive experience for the user, provide some sort of multi-tasking and preserve battery life, all at the same time? The solution offered by Windows Phone 7 is to tombstone applications when they are inactive.  This tutorial will explore tombstoning, multi-tasking and the entire application life cycle in detail.

The guiding model for the entire lifetime of an application, from launch to termination, is called the Windows Phone Execution Model.  It is designed to provide a responsive system, at all times. The strategy to accomplish this is to avoid having two or more applications continuing to run in the background, competing for resources, slowing the foreground application and draining the battery.

To accomplish this, Windows Phone 7allows only one application to be running in the foreground, and no 3rd party applications are allowed to run in the background; even when they appear to do so.    When an application is moved to the background, but not closed, it is tombstoned.  Tombstoning means that the application is inert, but, the operating system maintains state information for the application. If the user returns to the tombstoned application, the state information is passed to the application before it is restarted, allowing the programmer to restore the application to the state it was in when it was tombstoned.  This can give the very effective illusion that the application was there all along.


For more goto

A 24k Powerful MVVM Framework which solves a variety of real-world problems


Caliburn Micro: A Micro-Framework for WPF, Silverlight and WP7

A small, yet powerful implementation of Caliburn designed for WPF, Silverlight and WP7. The framework implements a variety of UI patterns for solving real-world problems. Download here.

Documentation here

A video that talks about some of the features of the MVVM framework – the post and the video

Exit out of a Windows Phone Application


Scenarios for needing Exit

The two most common scenarios people cite when asking for an Exit method are because (a) the user failed accept a EULA, login to an account, or something else that renders the application inoperable, or (b) the application is in an unstable state due to unexpected errors, etc. and needs to be shut down.

The solution: Throwing Exceptions to Exit your Silverlight App

Peter Torr has a great blog post here about all the various scenarios you may want to exit a WP7 application and each of their side affects.  I would encourage you to read his post to learn more about this topic

Silverlight Layout States with Reactive Extensions

image Here is a sample.

If you want iitems in a ListBox (or an ItemsControl) at startup to appear on the screen one by one, with a short delay, not all at once. Using ListBoxItem’s layout states took care of handling how an individual item would appear in the list, but I still needed to handle a short pause between each item being added to the list. Usually I resorted to using a Timer, which sorted out that needed delay for me, but that really felt like hacking that had nothing to do with the real problem. Reactive Extensions, however, offer a much elegant solution. The GenerateFromTime() construction operator is a close relative to the Generate() operator used in my previous blog entry, except GenerateFromTime() adds an important time dimension to generated sequence – the last parameter in this operator lets you specify a delay between each call to OnNext():

private readonly IObservable<string> numbers = 
             Observable.GenerateWithTime(1, i => i <= 8, i => i + 1, i => i.ToString(), i => TimeSpan.FromSeconds(.3));

private void OnLoaded(object sender, RoutedEventArgs e)

private void AddImage(string image)

The above code snippet will produce an observable sequence of 8 strings,  progressing through these strings with a 0.3 seconds delay.
Note the ObserveOnDispatcher() operator again – GenerateWithTime uses a  timer operating on a background thread so we need to ensure the  AddImage() method is called on the UI thread.

Part 1: Silverlight Layout States with Reactive Extensions

Part 2: Lost in time? Zip it!

Part 3: Reactive Extensions #3: Windows Phone 7

Windows Phone 7 Games Lineup


Bejeweled LIVE
The world’s number one puzzle game allows you to match gems and score cascades, now on Windows Phone 7.

Call UNO on your phone. Play this classic card game against the AI and call "UNO!"

Rocket Riot
Strap on your bazooka soldier, and get ready for the new mobile version of the awesome side-view shooter.

Max and the Magic Marker
Run, jump, think, and draw with your marker to create new objects in the game world to help Max in this puzzle adventure.

The Harvest
Take back Earth from the invading Harvesters in this science fiction action role-playing game.

Crackdown PSB
Destroying mutant Freaks is a blast in this explosive Xbox LIVE-enabled game for Windows 7 phones.

Help reunite friends ilo and milo in their world made of cubes in this unique three-dimensional puzzler.

Game Chest: Board Games Edition
Enjoy the classic games checkers, backgammon, and Chinese checkers with friends in on your Windows 7 phone.

Halo Waypoint
Now you can enjoy all the features of the popular online Halo portal on your mobile phone.

The first wave of games announced in the launch portfolio of Xbox LIVE games on Windows Phone 7 has something for every mobile gamer:

  • 3D Brick Breaker Revolution (Digital Chocolate)
  • Age of Zombies (Halfbrick)
  • Armor Valley (Protégé Games)
  • Asphalt 5 (Gameloft)
  • Assassins Creed (Gameloft)
  • Bejeweled™ LIVE (PopCap)
  • Bloons TD (Digital Goldfish)
  • Brain Challenge (Gameloft)
  • Bubble Town 2 (i-Play)
  • Butterfly (Press Start Studio)
  • CarneyVale Showtime (MGS)
  • Crackdown 2: Project Sunburst (MGS)
  • De Blob Revolution (THQ)
  • Deal or No Deal 2010 (i-Play)
  • Earthworm Jim (Gameloft)
  • Fast & Furious 7 (i-Play)
  • Fight Game Rivals (Khaeon)
  • Finger Physics (Mobliss Inc.)
  • Flight Control (Namco Bandai)
  • Flowerz (Carbonated Games)
  • Frogger (Konami Digital Entertainment)
  • Fruit Ninja (Halfbrick)
  • Game Chest-Board (MGS)
  • Game Chest-Card (MGS)
  • Game Chest-Logic (MGS)
  • Game Chest-Solitaire (MGS)
  • GeoDefense (Critical Thought)
  • Ghostscape (Psionic)
  • Glow Artisan (Powerhead Games)
  • Glyder 2 (Glu Mobile)
  • Guitar Hero 5 (Glu Mobile)
  • Halo Waypoint (MGS)
  • Hexic Rush (Carbonated Games)
  • I Dig It (InMotion)
  • iBlast Moki (Godzilab)
  • ilomilo (MGS)
  • Implode XL (IUGO)
  • Iquarium (Infinite Dreams)
  • Jet Car Stunts (True Axis)
  • Let’s Golf 2 (Gameloft)
  • Little Wheel (One click dog)
  • Loondon (Flip N Tale)
  • Max and the Magic Marker (PressPlay)
  • Mini Squadron (Supermono Limited)
  • More Brain Exercise (Namco Bandai)
  • O.M.G. (Arkedo)
  • Puzzle Quest 2 (Namco Bandai)
  • Real Soccer 2 (Gameloft)
  • The Revenants (Chaotic Moon)
  • Rise of Glory (Revo Solutions)
  • Rocket Riot (Codeglue)
  • Splinter Cell Conviction (Gameloft)
  • Star Wars: Battle for Hoth (THQ)
  • Star Wars: Cantina (THQ)
  • The Harvest (MGS)
  • The Oregon Trail (Gameloft)
  • Tower Bloxx NY (Digital Chocolate)
  • Twin Blades (Press Start Studio)
  • UNO (Gameloft)
  • Women’s Murder Club: Death in Scarlet (i-Play)
  • Zombie Attack! (IUGO)
  • Zombies!!!! (Babaroga)