I am going to come out and say what a lot of us Silverlight junkies may have been thinking but too afraid to say. I think Silverlight will eventually eat its older, bigger brother and become the de facto enterprise platform.

The case for Silverlight:

Managed Code: Developers can write client side code in manage code. More Powerful Client-Side Capabilities: Developers can do things with graphics that were never possible with HTML and JavaScript. Fewer Dependencies: Silverlight is not burdened by backwards compatibility with dinosaurs like COM+ or OS native APIs such as WMI.

To the right, I have illustrated what the migration from a monolithic do-it-all, be-everything-to-everyone framework might look like for the various form factors of applications. As I’ve stated before, there is nothing that stops Silverlight from running Server Side and executing its IL on that tier other then the current host environment for the Silverlight framework happens to be a browser. Some of the earliest of Silverlight demonstrations that I saw were regarding the use of a faceless Silverlight component that simply did DOM manipulation behind the scenes instead of your token flying shoes and flaming button demos.

Just because it runs in the browser today doesn’t mean it has to or always will. Silverlight is really just a CLR engine that runs on both Mac and Windows and happens to run inside of a browser. Its core architecture is not inherently browser dependent. What is to stop Microsoft from building alternative containers for the Silverlight runtime (i.e. command prompt, Stand-Alone Windows Application, etc.)?

I see the Silverlight runtime as it exists today as the center node within this diagram. That framework provides the basic tools you need to construct applications. However it is lacking some of the features that developers from other form factors are used to and require. Assuming Silverlight has the appropriate hosting environment we can start layering additional libraries ontop of that core to enable us to have more and more of the .NET CLR runtime available to us as Silverlight developers.