.net - ejemplos - xaml
WPF vs XBAP vs Silverlight... ¿cuál se adapta a las aplicaciones de negocios? (4)
Estoy bastante familiarizado con muchos de los pormenores de las aplicaciones completas de clientes WPF. Sé que las aplicaciones de cliente de WPF son compatibles con .NET Framework 3.5 completo, permite la aceleración de hardware de gráficos 2D y 3D, tematización, creación de plantillas, diseño, desencadenadores, las obras.
Lo que no tengo claro es qué características y / o detalles están presentes o no en las aplicaciones XBAP y Silverlight. He oído que los XBAP son intrínsecamente limitados de ciertas maneras debido a problemas de seguridad, pero eso es todo.
Sé que es un hecho que WPF es lo suficientemente robusto como para ser utilizado en aplicaciones de negocios a gran escala, pero ¿qué pasa con XBAP y Silverlight? ¿Cuáles son las capacidades y limitaciones significativas de cada uno? ¿Alguno de ellos carece de características que los vuelvan inútiles cuando se usan en una aplicación comercial?
Con respecto a Silverlight, resumiré mi experiencia hasta ahora. (Nota: volver a leer esto suena un poco negativo, pero estoy señalando las características que faltan. En general, me gusta Silverlight, una interfaz de usuario rica en el navegador que utiliza c #? Rocas).
Las diferencias notables son que no hay clic derecho, soporte de mouse, funcionalidad de impresión y no se puede abrir una nueva ventana. Su aplicación OOB SL no puede sentarse en el área de notificación. Puede gestionar los eventos del mouse en JavaScript, pero no si desea que su aplicación mueva OOB.
El equipo de SL también parece demasiado preocupado por la seguridad hasta el punto de simplificar su idoneidad de LOB (no hay ventanas nuevas, configuración de confianza para el acceso al sistema local en OOB, área de notificación, etc.).
Algunos de estos hacen que una aplicación Silverlight parezca que no es compatible con Windows. Piense en resaltar texto, haga clic con el botón derecho en copiar. O haga clic derecho en pegar. Estas operaciones básicas que muchas personas usan están desaparecidas. También se siente como una experiencia de IU extraterrestre, por ejemplo, instintivamente, vas a desplazar una cuadrícula con la rueda del mouse y no funciona. Esto funciona en cualquier tabla en un navegador, pero no en SL.
En lo que respecta a la programación, no he utilizado mucho WPF, pero, por lo que sé, existen algunas diferencias significativas en la forma en que debe atacar algunos problemas.
Las extensiones de marcado faltan en SL. También solo tiene enlaces indexados enteros, por lo que no hay bolsas de propiedades sin algunos trucos. No hay desencadenantes, por lo que siempre debe escribir el código para enlazar los eventos (irritante en las páginas más dinámicas) . No tiene un estilo heredable, aparte de ImplicitStyleManager en el kit de herramientas, que no está a la altura del trabajo.
Entonces, para ciertas aplicaciones de LOB está bien, para otros tienes que saltar unos pocos aros (por ejemplo, si quieres la personalización para el cliente). Pero ciertamente no es genial para TODAS las aplicaciones LOB.
Mi impresión es que SL aún no se siente terminado, hay muchas dudas. Por ejemplo, la cuadrícula de datos es frustrante (no se estira automáticamente, es muy difícil de subclase), el cuadro de autocompletar es un poco errático, el marco de navegación es un poco complicado, el cuadro combinado / treeview es difícil de vincular (realmente no lo han solucionado si lo desea vincular SelectedItem a un objeto diferente a itemsSource).
En general, Silverlight está casi allí, está bien siempre y cuando estés preparado para aceptar algunas limitaciones y molestias.
No tengo experiencia con XBAP, pero mi impresión es similar a la tuya, ya que solo está restringida en términos de seguridad en comparación con WPF.
En cuanto a Silverlight: Recientemente lo utilicé para desarrollar una interfaz de usuario de monitoreo de telemetría agrícola compleja: es más una aplicación de visualización de datos que una aplicación comercial tradicional, pero tiene un montón de CRUD y no había una sola característica que quisiera implementar pero no pudo debido a mi elección de tecnología. Y eso fue SL2.
Estoy seguro de que terminarías con más campanas y silbatos si usabas XBAP, y si puedes garantizar que tus usuarios estén ejecutando .NET 3.5 (¿o XBAP también forma parte de 3.0?), Lo conseguiría. De lo contrario, no tengo ninguna reserva en recomendar Silverlight.
(Disculpe si quería más de una matriz de comparación de características, pero creo que puede encontrarlas en Microsoft).
Traté de desarrollar XBAP durante aproximadamente 18 meses a tiempo completo para un proyecto bastante ambicioso y lo odié absolutamente.
Hay muchas limitaciones no documentadas, como no poder establecer un cursor de mouse personalizado. MS se olvidó de contarle a nadie sobre ese y cien más. Soy muy reacio al sandboxing ahora debido a ese campo minado.
Combinado con las pesadillas de implementación (aún hoy no hay una buena historia para Firefox, incluso después de 3.5 SP1 todavía hay problemas), honestamente creo que MS está haciendo todo lo posible para matar XBAP a favor de Silverlight. No los culpo, solo desearían haber sido más abiertos al respecto.
Evitaría XBAP como la peste . Es un escenario muerto sin futuro. No se sorprendería en lo más mínimo si fueran desaprobados pronto.
Wintellect escribió una buena comparación entre Silverlight y WPF publicada aquí: http://wpfslguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28278
Gracias a mi experiencia personal en WPF y Silverlight, he descubierto que SL es totalmente capaz para aplicaciones de LOB. Los servicios .NET RIA son una excelente adición a SL3 para aplicaciones LOB. Para responder a sus últimas preguntas, no hay nada en mi experiencia que impida que SL cree aplicaciones LOB. La única diferencia significativa entre WPF y SL en esta discusión es que SL no tiene acceso a los recursos locales en la máquina cliente como el registro y no puede acceder a características específicas de Windows que WPF puede, como listas de salto de Windows 7 o bibliotecas . Creo que Silverlight es la mejor opción para aplicaciones biz debido a la facilidad de implementación y la capacidad de apuntar a múltiples plataformas.