Una parte sumamente básica de crear una aplicación Silverlight es su tiempo de carga al inicio del sitio. Esto no solo servirá como una buena práctica, es de las principales características en las que un usuario se fija, si tu aplicación tarda demasiado en cargar comenzarás a tener problemas de satisfacción. Así que veamos como poder solucionar esto.
Multimedia
El uso de imágenes, audio o video como material de soporte es indispensable en una RIA, la idea es que pueda servirnos como soporte para poder tener mejores recursos o simplemente una mejor vista.
Para el caso de las imágenes, si tu imagen no rebasa es de un gran tamaño (menor a 100 kb), puedes incrustarla dentro de tu ensamblado como contenido siempre y cuando no sean demasiadas. En caso de que tus imágenes oscilen entre los 100 y 250 kb, puedes utilizarlas como Recursos dentro de tu XAP. Por último, si tu imagen es mayor a los 250 kb entonces considera utilizarlas como un archivo exterior y hacer referencia a ella por medio de una URL.
Para el audio y video la esencia es la misma, si tu archivo de audio rebasa los 250 KB lo ideal es que lo utilices como archivo externo.
Con los videos será muy difícil lograr algo menor a 250 KB, así que en este caso de plano utiliza tus videos como archivos externos.
Ensamblados adicionales
¿Usas Telerik, ComponentOne, Infragistics o hasta el mismo Toolkit? Bueno, eso quiere decir que haces uso de ensamblados de terceros. Cargar cada uno de estos ensamblados adicionales aumentará el tamaño de tu XAP y por ende el tiempo de espera para ver tu aplicación.
Aquí lo recomendable es que si no usarás el control al inicio de tu aplicación, entonces puedes mandar llamar a tu ensamblado en el momento que lo necesites.
Siempre existe la forma “manual” de poder saber cuanto pesa un ensamblado, pero si quieres hacerlo con una herramienta bastante útil que te dice cuanto pesa cada ensamblado. Puedes utilizar VMMap.
Para poder cargar tus referencias de manera automática puedes ver el siguiente video.
Carga de datos
Obtener datos de un servicio web o un archivo externo puede tomarte muy poco, poco, mucho o muchísimo tiempo, nunca sabrás cuanto dada la calidad del ancho de banda o cualquier factor externo, así que nunca dependas de obtener estos recursos para poder visualizar tu primer interfaz, podrías primero cargar y después colocar una ProgressBar para notificar que estas obteniendo tus datos.
No utilices ningún tipo de carga o consulta de datos al inicio de tu aplicación.
A menos de que se trate de una práctica, no debes llenar una a lista al momento de cargar la aplicación.
Conclusión
Ya que estamos tan detallistas con evitarle tiempo de espera a nuestros usuarios, quizá también sea buena idea hacerlo mas divertido con una splash screen. Siempre y cuando sean originales son geniales para distraer un rato a nuestros usuarios.