Rich and Reach - plenty of other successful ways

 

Having established that you need Silverlight to have a richer UX, let's look at how you can support other platforms.

Cross-platform compilers

Firstly, let's get this out of the way.  You can use cross-platform-compilers and achieve a great result.  Your limitation here is time.  But it is still far cheaper than writing from scratch.

 

Provide a Public API

Silverlight requires a service based API to talk to the server and get stuff done.  If you have done this already, why not clean it up and publish your API's and let the public write the application for you?

It worked for Twitter, FourSquare.

Take a game like World of Warcraft, or a gaming service like Xbox Live.  Even with it's super slick built-in UI, there are always people who want the raw data feed, so they can parse it, make charts, compare different people, catch cheaters etc. etc.

 

Write the basic minimum

I see the top priorities in this order

  1. Build a REST based service tier
  2. Build a rich client application with Silverlight
  3. (Optional) Build a AJAX-based fall-back browser experience
  4. (Optional) Build targeted rich applications for iOS and Android
  5. (Optional) Reach out to the community and see if there are people out there who would like to build a richer app for you

 

Does your "Reach" include "Support"

I don't really know if people's definition of "Reach" includes support on that browser.  Or whether it just means "It will probably work".  Google Chrome updates every week - do we want to support it properly?  Or do we just assume "it will probably work"?  Do you support the Google Chromium beta builds?

In my opinion, it might be better to support targeted environments rather than "any HTML5-compatible browser".  The browser scenario seems somewhat risky and open-ended.

I like the published API idea because that's the line where your support contract ends.  You support the Silverlight client and the REST service (which you need to do anyway for your Silverlight client to work).

If you build more than two clients (Silverlight, unit-tests, or AJAX web frontend) - these effectively prove whether a problem is at the client level, or at the service level.