visual tutorial studio hechas ejemplos documentacion diseño crear aplicaciones aplicacion wpf silverlight xbap

studio - wpf c# tutorial



¿Es esta lista una comprensión correcta de las opciones actuales de implementación de aplicaciones de Microsoft? (6)

Gran resumen, Edward.

Gran parte del código en Silverlight se puede usar directamente en las aplicaciones XPAP de WPF y WPF porque Silverlight es un subconjunto de WPF. Para XAML, tendrá que cambiar el URI del espacio de nombres y probablemente tenga que realizar algunos ajustes manuales leves.
Para las conversiones de XAML a Silverlight, también deberá cambiar el URI del espacio de nombres, pero podría ser necesario refactorizar si se usan elementos WPF que no están en Silverlight. WPF y Sync Framework son excelentes opciones para aplicaciones en línea / fuera de línea. Consulte el Kit de inicio de Syndicated Client Experience para ver un ejemplo de una aplicación de WPF / Sync Framework. Además, Silverlight + Windows Live Mesh proporcionará capacidades en línea / fuera de línea.

Estoy tratando de entender las numerosas opciones de implementación de aplicaciones que Microsoft ofrece actualmente.

Hacer un poco de investigación arrojó docenas de términos confusos:

  • "Aplicación WPF"
  • "Aplicación ClickOnce"
  • "Aplicación WPF ClickOnce"
  • "Aplicación MSI"
  • "Aplicación XBAP"
  • "Aplicación XBAP implementada con ClickOnce"
  • "Aplicación ClickOnce instalada"
  • "Aplicación web de WPF"
  • "Aplicación web ASP.NET"
  • "Aplicación web ASP.NET MVC"
  • "Aplicación Silverlight"
  • "Aplicación WPF completa"
  • "ClickOnce con soporte de marco de sincronización"

Limpié mis hallazgos en siete enfoques diferentes a continuación. Agradecería los comentarios:

  1. "Aplicación WPF implementada con MSI" (permite muchas opciones de instalación)

    • Tiempo de ejecución de MSI requerido en la computadora de destino
    • asistente con opciones
    • puede especificar por usuario o por máquina
    • puede modificar archivos y registro en la computadora de destino, limitado solo por el permiso de acceso establecido por el administrador
    • puede colocar acceso directo en el escritorio
    • reemplazar archivos del sistema, etc. hace que sea fácil ingresar al infierno de DLL en la computadora de destino
    • la actualización es un gran negativo: la detección de actualizaciones disponibles requiere herramientas / programación personalizadas adicionales, no integradas
    • el usuario no tiene que estar en línea para usar la aplicación
  2. "Aplicación WPF implementada con ClickOnce": (bueno si quieres actualización automática pero se ejecuta en sandbox)

    • requiere dos clics (haga clic en hipervínculo, haga clic en Sí), sin intervención del usuario
    • solo para usuarios actuales, sin instalaciones por máquina
    • sin accesos directos en el escritorio
    • aparece en la lista de programas como aplicaciones normales
    • los archivos de las aplicaciones siempre se copian en ../ Mis documentos / Mis aplicaciones
    • se colocará un acceso directo a su aplicación en el menú Inicio / nombre de su empresa
    • no se puede modificar la computadora de destino, aislada del sistema operativo
    • detecta y actualiza automáticamente una versión más nueva
    • publicado simplemente poniéndolos en un servidor web (donde los clientes los detectan y los obtienen)
    • requiere .NET 2.0 o posterior
    • comparable a Java Web Start
    • resuelve cuatro problemas: (1) fácil implementación, (2) fácil actualización, (3) bajo impacto en la computadora de destino, (4) no hay necesidad de permisos de administrador.
    • considerado de "bajo impacto"
    • si dos usuarios tienen la misma aplicación ClickOnce instalada en la misma máquina, no se romperán entre sí
    • emplea CAS para la seguridad
    • el usuario no tiene que estar en línea para usar la aplicación
    • Las aplicaciones independientes ClickOnce no funcionan en Firefox y Mac con Firefox ahora, ya que necesitan el tiempo de ejecución .NET
    • restringido a aplicaciones de una sola ventana ya que se ejecutan en el navegador
    • construir un manifiesto ClickOnce es mucho más fácil que Silverlight, etc., ya que el IDE hará casi todo por ti; solo tiene que alojar los archivos en algún lugar (podría ser una URL web, podría ser una red UNC).
  3. "Aplicación XBAP": despliegue de xcopy del archivo .xbap, IE y Firefox lo muestran instantáneamente como una página web

    • el objetivo real del modelo XBAP es crear un WPF equivalente al sitio web tradicional de HTML y JavaScript (o applet de Flash)
    • la computadora de destino simplemente ejecuta la aplicación sin instalación a través de la web en su navegador web (IE o Firefox)
    • Son buenos para las aplicaciones de Intranet en las que desea una implementación realmente sencilla, el .NET Framework completo (a diferencia de Silverlight) y el modelo de navegación de un navegador.
    • 99% de las características de WPF (a diferencia del subconjunto de Silverlight de las características de WPF)
    • PUEDE ser implementado automáticamente a través de ClickOnce también, pero XCOPY es más común
    • YourApp.xbap es realmente un manifiesto de implementación ClickOnce
    • correr en sandbox
    • el usuario debe estar en línea para usar la aplicación
    • estas deben ser aplicaciones "basadas en páginas" en lugar de aplicaciones "basadas en Windows"
    • "Parece que se ejecuta un XBAP dentro del brwoser simplemente porque muestra todo su contenido en la ventana del navegador. Esto es diferente del modelo utilizado por los controles ActiveX (y Silverlight), que se cargan dentro del proceso del navegador".
    • XBAPs ofrece una experiencia "sin errores", siempre y cuando .NET 3.5 esté instalado, simplemente aparece en el navegador como una página web.
    • Los XBAP no pueden usar controles de WinForm a través de Interop
    • no permitir el uso de ventanas arrastrar y soltar
    • las funciones más avanzadas de WCF NO están permitidas y XBAP no se puede comunicar con ningún servidor que no sea el que aloja el XBAP
    • "si su aplicación requiere plena confianza, debería considerar construir una aplicación WPF independiente y desplegarla usando ClickOnce" ( Pro WPF en C # 2008 )
    • truco: puede incrustar múltiples aplicaciones xbap en múltiples iframes en una página HTML.
  4. "Aplicación Silverlight": se ejecuta en el navegador del cliente y utiliza un subconjunto de 4MB descargado de .NET framework, es decir, no en 3D)

    • navegador cruzado (las aplicaciones también pueden ser utilizadas por Opera y Safari)
    • la actualización de la aplicación es tan fácil como con ClickOnce o XBAP
    • aplicaciones de ventana única
    • la aplicación está en la caja de arena, por supuesto,
    • solo asíncrono
  5. "ASP.NET MVC con JQuery / AJAX": una nueva plataforma de desarrollo igual al desarrollo en WPF en términos de RAD y TDD

    • Vale la pena considerar este enfoque junto con los enfoques de WPF / Silverlight
  6. "ASP.NET App": aplicación web clásica con ViewState, etc. probablemente se utilizará cada vez menos a medida que ASP.NET MVC gane aceptación

  7. "Aplicación WinForm": la aplicación clásica de Windows, se usará cada vez menos a medida que WPF gane aceptación

Agradecería especialmente los comentarios sobre:

  • ¿Qué tan reutilizables son los controles (por ejemplo, si desarrollamos en Silverlight, podemos reutilizar nuestro código / controles en XBAP?)
  • ¿Cuál es el mejor enfoque para los clientes que a veces están fuera de línea, a veces en línea Y necesitan acceso a WCF (probablemente las aplicaciones de ClickOnce, pensaría)

Las opciones de implementación que admite MS para las aplicaciones cliente son

  • MSI (Cualquier aplicación de Windows)
  • Clickonce (solo para aplicaciones de cliente .Net)

Clickonce no es específico de WPF.

Los XBAPS son aplicaciones de WPF instaladas desde un navegador y clics en un entorno limitado de seguridad de confianza. Las aplicaciones de WinForms se pueden hacer clic una vez implementadas y pueden hospedarse en el navegador.

Silverlight es (en su mayoría) fuente compatible con WPF. Puede recompilar controles SL como controles WPF.

El clickonce no alojado en el navegador es probablemente una buena opción para usted.


Usted enumeró la "aplicación MSI". Windows Installer es la tecnología de Microsoft para instalar y actualizar programas en Windows. Los paquetes de instalación que crea tienen la extensión ".msi". (Originalmente se llamaría "Microsoft Installer". Lo cambiaron a "Windows Installer", pero conservan la extensión). Define una forma estándar de crear paquetes de instalación. Los paquetes pueden ser creados por muchas herramientas diferentes (InstallShield, WiX, Visual Studio, etc.). No está limitado a las aplicaciones de WPF. Puede usarlo para instalar casi cualquier tipo de aplicación.


Experiencia de AppStart:

MSI = Solo Windows. Muchos clics Instalar antes de usar. Bueno para aplicaciones muy grandes y que consumen muchos recursos. La aplicación se puede distribuir en dvd. La aplicación puede hacer todo. Sin restricciones tecnológicas.

ClickOnce = Solo Windows. Se puede activar desde la página web. Se descarga una vez Mantiene información sobre su origen (Servidor) y puede actualizarse automáticamente. La aplicación está restringida Necesita .NET

Silverlight = Se ejecuta en Windows / Max / Linux (pronto) y futuros móviles (planeado). Es una página web o se puede incrustar en html. El código está en el servidor y nunca será instalado. Necesita Silverligth-Runtime. Proporciona un subconjunto de WPF

XBAP = Me gusta silverlight pero solo para ventanas. Nadie lo necesitará. Silverlight es mejor

Tecnología de programación:

Silverlight = Se ejecuta en el cliente maschine. Utiliza WPF *

ASP.NET = Se ejecuta en el servidor maschine en .NET pero Javascript / html en el cliente maschine.

WinForms = tecnología antigua

WCF = no funcionará para aplicaciones basadas en navegador. Es para aplicaciones distribuidas. Uno podría abrir todas las puertas al cliente mashine. Usar WCF = necesita MSI.

WCF proporciona un buen marco para el servidor. Nunca necesitará WCF en el cliente cuando use REST para la interfaz. El cliente se puede conectar / desconectar en las aplicaciones ClickOnce y MSI instaladas. Debes conectarte a una página web para iniciar sesión en Silverlight y ASP.

XAML se puede reutilizar para silverlight / wpf / xbap. Cambios menores en wpf / silverlight. No hay cambios en wpf / xbap como sé.


No sería tan rápido descartar XBAP como "Silverlight para Windows solamente". Debido a que usa el conjunto completo de WPF, es posible usar la misma base de código tanto para una aplicación de WPF como para un XBAP, siempre y cuando trabaje dentro de las restricciones de confianza parcial impuestas en los XBAP.

Además, a partir de .NET 3.5, WCF funciona en XBAP bajo Partial Trust. No se puede hacer tanto como en una aplicación WPF de plena confianza, pero sigue siendo útil.


Otra opción de implementación disponible por Live Framework (Live Mesh vNext) es la aplicación web Mesh-Enabled (MEWA). Esto le permite empaquetar las aplicaciones Silverlight, DHTML y Flash para que se ejecuten en línea en el Escritorio en vivo o en línea / fuera de línea en el escritorio de Windows. Puede instalar un MEWA en su malla y que se despliegue automáticamente en todos los dispositivos de su malla. Si se lanza una nueva versión de una aplicación, la actualización también se puede sincronizar con todos los dispositivos.

Hay indicios de que, además de Silverlight / DHTML / Flash, las versiones futuras de Live Framework admitirán aplicaciones empaquetadas de MSI y CAB, presumiblemente con características de implementación similares.

Documentación para aplicaciones web habilitadas para malla: http://msdn.microsoft.com/en-us/library/dd199554.aspx