I develop Silverlight extensively and can comment on that question fairly well.
First of all, the Silverlight 5 plugin has no less browser support than the previous version, see
this link for a statement by Microsoft.
By no means should you prefer Silverlight 4 over Silverlight 5, the version 4 is no longer supported and you will not be able to use Expression Blend for Visual Studio.
First I answer you own point in question:
1. Hosting: What the server runs on is not strictly speaking important to the Silverlight plugin, but for practical means you get a number of advantages when you use Windows Server (or Windows Azure) with IIS (or Azure Web Sites). The obvious advantage is that since you will use Visual Studio anyway, you can just click "publish" to release a new version - if set up correctly. This is particularly easy with Azure Websites, for example.
Also, you probably want to use C#-related technology on the server to benefit from the synergy of client and server technology being the same (or similar).
Without Silverlight, it matters much less what server technology you use.
2. Browser compatibility: This is largely an issue for html apps, since the plugin behaves mostly the same in all browsers. I use Chrome myself and my customers usually use Internet Explorer, some Firefox. In the last few years I had not one problem due to a browser incompatibility - and I know how much web developers used to fight with those. This is probably one of the main strengths, *if* Silverlight runs on a platform, it runs the same as on all others.
There is one subtle and not well-known caveat (bug) though, but it's not depending on the browser. There is a certain kind of memory leak that can occur on tablet devices, see
this stackoverflow answer. It's the only time I experienced a Silverlight application to be dependent on an environmental factor.
3. Operating system compatibility: Obviously you are going to run Windows-only with Silverlight. There is a mac implementation, but you should test early because there Silverlight might actually *do* behave differently in many cases. I can't say much to how serious that implementation actually is.
Much more disappointing is Microsoft's policy on their own platform: The WinRT tablet (the non-professional, ARM-based one) doesn't support Silverlight, and of course the metro-IE doesn't either (infamously).
In a nutshell, Silverlight is still a viable option in cases where you target a corporate environment where you can estimate the hardware your customers will have, as well as in those cases where there are few technical alternatives - such as when you need a good adaptive video streaming technology.
One thing where html-based solutions can shine is design: Although I love Expression Blend, my love doesn't seem to be shared by most web designers. The amount of html/css templates you can find for html, even for line-of-business applications, is amazing. For Silverlight (and WPF), there is almost nothing at all. In fact I don't know a single beautiful design for Silverlight that hasn't been created by Microsoft themselves - and they too have created ugly ones as well.
As someone who loves Silverlight - the ability to just pick and buy a really beautiful theme for my next app is probably the thing I'm most envious of when I'm looking at the html world, much more so even than platform support.
Today I'd suggest html as a default unless the one of the following points apply:
- You are already familiar with Silverlight (or your team is).
- You need to do complex rich-text editing capabilities that go beyond an html editor.
- You need to access COM interfaces or do P/Invoke on Windows (although you can also supplement an html with Silverlight for that)
- You want to provide the ability to "install" an application (out-of-browser mode).
- You have complex business logic that you want to execute on the server and the client alike, and you want to write that in C# rather than Javascript.
If any of these things hold, Silverlight might be an option (as well as WPF).