Silverlight 1.1, currently in Alpha, will include a cross-platform version of the .NET runtime. The desktop version of this runtime is over 22MB, yet Microsoft is promising to keep Silverlight at around 4MB. How is this size reduction achieved? In part by stripping down the libraries to a minimal core, but Microsoft is also using another technique which it calls pay and play. This means that further class libraries are downloaded as needed, increasing the effective range of available libraries without impacting the size of the core runtime. Sleight of hand perhaps, but it does make sense for online apps.
Developers coding for Silverlight will need to know which of the libraries available in desktop .NET are also in the Silverlight framework. Because of pay and play, some will be in the core, some will be available on demand, and others will never be available. Apparently Visual Studio will give you a visual indication of which is which.
How big will the Silverlight runtime be if you include all the pay and play libraries? Here at Mix07, Microsoft’s Joe Stegman would not say, but I got the impression it will be substantially larger. Of course this is still Alpha; everything can change, and final decisions about what is core and what is pay and play are yet to come. Stegman was also uncertain about some aspects of delivery. You would imagine that pay and play DLLs would be downloaded from Microsoft’s servers, and that once downloaded they would be persisted and shared so that other applications can use them without a further download. Stegman says this is probably what will happen, but there seems to be some doubt.
The Silverlight 1.1 runtime will not be as small as it first appears.