Microsoft's documentation on Silverlight Splash Screens offers the following insight into how one should go about creating an alternative type of loader:
"
- Load an initial Source XAML page that is the "splash screen".
- Initiate the download of the main source XAML page and any initial resources such as images or videos that the page requires, using Downloader.
- As soon as each Downloader raises Completed for all content, change the actual Source value at the HTML DOM level, which unloads the "splash screen" and loads your primary content. The transition is instant at this point because each required element is already preloaded into the browser cache.
"
Taking the above idea and transitioning it to the managed world could translate to something along the lines of:
1. Load an initial small XAP file a.k.a. the loader.
2. Initiate the download of the XAP/s and other resource/s in the managed code loader (downloaded in step 1) using a managed code downloader.
3. As soon as the Managed code downloader raises a complete event for all the XAP's and resources, change the source at the HTML DOM level to the new primary XAP source, which unloads the loader and loads your primary content. The transition is instant at this point because each required element is already preloaded into the browser cache.
This is basically how the Silverlight loader framework works.
Check out the Silverlight Loader class diagram and the Silverlight Loader getting started guide for more information.