La mayoría de las aplicaciones basadas en Silverlight se escriben en código administrado y usan el modelo de aplicaciones de Silverlight. Sin embargo, tiene la opción de utilizar un modelo de programación simplificado.
Silverlight proporciona los dos modelos siguientes para el desarrollo de aplicaciones:
La API administrada para Silverlight, que usa código que se ejecuta en Common Language Runtime (CLR) para Silverlight. Puede usar la API administrada con lenguajes compilados como Visual Basic y C#, o lenguajes dinámicos como IronPython e IronRuby. Para obtener más información sobre los lenguajes dinámicos, vea Silverlight Dynamic Languages SDK.
La API de JavaScript para Silverlight, que usa código JavaScript que interpreta el explorador.
Estos modelos de programación son distintos porque no se pueden utilizar al mismo tiempo dentro de una instancia única del complemento Silverlight. Sin embargo, puede implementar una pantalla de presentación que utilice la API de JavaScript y, a continuación, pasar a la API administrada cuando la aplicación se ha cargado.
La API administrada proporciona significativamente más funcionalidad que la API de JavaScript y es el tema tratado en la mayor parte de la documentación de Silverlight. Las aplicaciones que utilizan la API administrada tienen acceso a una versión ligera de .NET Framework. La API de JavaScript, sin embargo, solo tiene acceso al núcleo de presentación de Silverlight y al motor del explorador de JavaScript.
Para obtener más información sobre la funcionalidad proporcionada por .NET Framework y el núcleo de presentación de Silverlight, vea Arquitectura de Silverlight.

La programación administrada y el modelo de aplicaciones
La API administrada permite empaquetar ensamblados administrados y archivos de recursos en los archivos empaquetados de la aplicación (.xap). El complemento Silverlight es responsable de cargar un paquete de aplicación y extraer su contenido.
Un paquete de aplicación debe contener un ensamblado con una clase derivada de Application. La clase Application encapsula la interacción entre la aplicación y el complemento Silverlight. Por ejemplo, permite mostrar una interfaz de usuario dentro de la página web en que se hospeda. Además, proporciona eventos de duración de la aplicación y administración de recursos.
La documentación de Silverlight utiliza el término modelo de aplicaciones para hacer referencia a la aplicación que empaqueta y a la funcionalidad común encapsulada por la clase Application. El modelo de aplicaciones ayuda a desarrollar aplicaciones simples y complejos, aplicaciones extensibles que pueden compartir los recursos de una red.
Para obtener más información, vea Modelo de aplicaciones. Los temas sobre el modelo de aplicaciones proporcionan orientación para el diseño de aplicaciones para habilitar escenarios comunes, como la carga de recurso a petición, la indicación del progreso de la descarga y la navegación.

La API administrada
Puede utilizar el marcado XAML para encapsular los diseños de interfaz de usuario en la API administrada y la API de JavaScript. Con la API administrada, sin embargo, puede factorizar el código de la aplicación en varios archivos XAML y archivos de código subyacente.
Cuando el complemento Silverlight carga los archivos XAML, crea un árbol de objetos que el código subyacente puede manipular. El código de la aplicación administrada también puede manipular el Modelo de objetos de documento HTML (DOM) a través del puente HTML.
Para obtener información sobre cómo interactúa el código administrado con XAML y HTML, vea API administrada para Silverlight.

La API de JavaScript
La API de JavaScript es el modelo que estuvo disponible en Silverlight versión 1.0 y se mantiene para la compatibilidad con versiones anteriores y para habilitar escenarios determinados.
En la API de JavaScript, el complemento Silverlight carga una página XAML única, en lugar de un paquete de aplicación. Este XAML puede incluir referencias URI a recursos del servidor, como imágenes y vídeos. El complemento Silverlight usa el XAML para crear un árbol de objetos que puede manipular mediante programación utilizando JavaScript en la página HTML en que se hospeda.
La API de JavaScript no proporciona ningún modelo de aplicaciones capaz de admitir aplicaciones complejas con navegación interna. Sin embargo, habilita escenarios para los que la API administrada es demasiado prolija, como las pantallas de presentación. También puede implementar la navegación básica cargando nuevas páginas de XAML en el complemento Silverlight o cargando las nuevas páginas web en el explorador.
Para obtener más información, vea API de JavaScript para Silverlight.

JavaScript y el HTML DOM
La API administrada y la API de JavaScript permiten utilizar JavaScript en la página HTML en que se hospeda para integrar Silverlight con el Modelo de objetos de documento HTML (DOM).
En la API de JavaScript, debe implementar la mayoría de la funcionalidad de la aplicación utilizando JavaScript interpretado por el explorador, que puede interactuar con el DOM directamente. En la API administrada, el código de JavaScript y el código DOM interactúan con el complemento Silverlight y el modelo de aplicaciones utilizando el puente HTML.
Para obtener más información, vea Modelos de programación de Silverlight, XAML y DOM HTML y Puente HTML: interacción entre código HTML y código administrado.

Uso de varios complementos Silverlight en una página web
Una razón para usar la característica Puente HTML es crear páginas web que integren Silverlight con otro contenido basado en HTML. También se puede usar el DOM HTML para integrar varias aplicaciones basadas en Silverlight en una sola página. Sin embargo, en este caso, Silverlight proporciona compatibilidad integrada para la comunicación entre los distintos complementos Silverlight, lo que se conoce como mensajería local.
La mensajería local permite enviar mensajes de una aplicación basada en Silverlight a otra que se ejecuta en el mismo equipo. Esto permite crear contenido de Silverlight que abarque varios complementos, como una animación que se desplace de una pancarta a una barra lateral. Para obtener más información, vea Comunicación entre aplicaciones locales basadas en Silverlight.

Uso de Silverlight fuera del explorador
Silverlight proporciona compatibilidad integrada para ejecutar aplicaciones administradas fuera del explorador. Después de configurar una aplicación para la compatibilidad con la ejecución fuera del explorador, los usuarios pueden instalarla desde su página web host. Después de la instalación, los usuarios pueden ejecutar la aplicación sin un explorador o incluso sin conexión de red. Puede configurar las aplicaciones para la compatibilidad con la ejecución fuera del explorador sin modificar el código de aplicación. Como alternativa, puede implementar otro tipo de compatibilidad adicional con el modo de ejecución fuera del explorador, como el almacenamiento en caché sin conexión y las actualizaciones automáticas. Para obtener más información, vea Compatibilidad de ejecución fuera del explorador.
También puede usar el complemento Silverlight en otros entornos. Sin embargo, en este caso no hay ningún tipo de compatibilidad integrada. La manera más fácil de integrar Silverlight con otra tecnología es hospedar el complemento Silverlight dentro de un control de explorador. A continuación, puede hospedar el control de explorador dentro de la otra tecnología. Las opciones de hospedaje más complejas implican el uso de código no administrado e interfaces COM. Si necesita la funcionalidad de Silverlight en una aplicación de escritorio, debería considerar el uso de Windows Presentation Foundation (WPF). Para obtener más información sobre cómo usar Silverlight en otros entornos, vea Hospedaje alternativo.