How practical would it be to use Silverlight inside of an MVC view to achieve a GUI that's rather complex with Javascript (and crippling to non-usable without Javascript)?

I know nothing about Silverlight so if this seems like a good idea, how difficult would it be to do so, or vice-versa? Would asking users to install a plugin outweigh the differences in browser rendering of Javascript heavy UIs?

Tid bit more info: Although some would question the complexity of this View since it is virtually undo-able without Javascript, it's not that it's a complex page. It's a GUI that requires large selection lists and dynamic adding/removing. For example, the main list a user could choose from could easily grow to a size of 1000+ - something that is almost impossible to navigate without a search/easily navigable option. This is also something that needs to be a quick performable process by the user. For example, they select a variable number of items from a main list and then add a dynamic number of subitems to those items. Thus, spreading this out over multiple pages (for non javascript enabled users) would be extremely detrimental.


In my opinion there is not a clear answer to this question. It depends on many factors.

  1. Who your user base is? Is it small, or large? Do you target for a specialized audience, who won't care to install plugins to get your service? In this case Silverlight may be better as it could allow a richer and smoother experience.
  2. Or are you targeting a larger audience, who will use various technologies where the plugin may be unavailable or not so easy to obtain and install (linux, mobile...) ? In this case JS may be better.
  3. What are the development times? In silverlight you may save development time (especially on testing, as the plugin is only one, comparing to several different browsers and their versions), but you may need to learn things, and unforseeable problems may arise.
  4. Do you have the tools to build silverlight? You need Blend and VS2008 to use it effectively.

You may also consider the use of JS framework like YUI instead of creating the UI from scratch. YUI is very powerful, but there are several other alternatives to it.


Take a look at jqGrid, it sounds like it has the features that you need. Not that I'm sure, and maybe you know about it, but still.