Mate es mi elección. La primera y más importante razón es que es completamente discreto. Mi código de aplicación no tiene dependencias en el marco, está altamente desacoplado, reutilizable y comprobable.
Una de las características más agradables de Mate es la configuración declarativa, esencialmente conectas tu aplicación para usar etiquetas en lo que se llama un mapa de eventos, básicamente una lista de eventos que genera tu aplicación y qué acciones tomar cuando ellos ocurren El mapa del evento ofrece una buena visión general de lo que hace su aplicación. Mate usa el propio mecanismo de evento de Flex, no inventa el suyo como la mayoría de los otros marcos. Puede enviar un evento desde cualquier lugar de la jerarquía de vistas y hacer que suba al marco automáticamente, en lugar de tener que tener una línea directa, como Cairngorms CairngormEventDispatcher o el sistema de notificación de PureMVC.
Mate también utiliza una forma de inyección de dependencia (aprovechamiento de enlaces) que hace posible conectar sus modelos a sus vistas sin que ninguno de ellos conozca el otro. Esta es probablemente la característica más poderosa del marco.
En mi opinión, ninguno de los otros frameworks de aplicaciones Flex se acercan a Mate. Sin embargo, estos son los contendientes y por qué los considero que son menos útiles:
PureMVC niega activamente muchos de los beneficios de Flex (por ejemplo, enlaces y eventos de burbujeo) para que el marco sea portátil: una duda objetivo en mi opinión. También está sobrediseñado y es tan invasivo como viene. Cada parte de tu aplicación depende del marco. Sin embargo, PureMVC no es terrible, simplemente no es una buena opción para Flex. Una alternativa es FlexMVCS, un esfuerzo para hacer que PureMVC sea más adecuado para Flex (lamentablemente todavía no hay documentación, solo fuente).
Cairngorm es un conjunto de antipatrones que conducen a aplicaciones que están estrechamente relacionadas con variables globales. Nuff dijo (pero si estás interesado, here are some more of my thoughts y here too).
Swiz es un marco inspirado en el marco Spring para Java y Cairngorm (tratando de compensar las peores partes de este último). Proporciona un contenedor de inyección de dependencia y utiliza metadatos para habilitar el auto-cableado de dependencias. Es interesante, pero un poco extraño en eso llega a tal extremo para evitar las variables globales de Cairngorm mediante el uso de inyección de dependencia, pero luego utiliza una variable global para el envío de eventos centrales.
Esos son los que he probado o investigado. Hay algunos otros de los que he oído hablar, pero ninguno que creo que sea ampliamente utilizado. Mate y Swiz se presentaron en la reciente conferencia 360 | Flex, y hay videos disponibles (the Mate folks have instructions on how to watch them)
Buen análisis y, en general, estoy de acuerdo con usted. Cabe señalar que el despachador central en Swiz es opcional y realmente solo es necesario cuando tienes un evento que muchas vistas/componentes requieren notificación, como inicio de sesión, cierre de sesión, etc. –
Hace mucho tiempo, pero gracias por la respuesta. Ya estaba comprometido con PureMVC en ese momento. Y encontré algunas ventajas (separación limpia entre capas) y menos (cantidad de código, capacidad de prueba y sistema de notificación). En base a sus comentarios y los de otros, acabo de comenzar un nuevo proyecto con Mate. – Rydell
Sentí exactamente lo mismo cuando comencé a buscar en Cairngorm. Lo primero que me cuentan es un ModelLocator, para hacer un seguimiento de los modelos y el estado de la aplicación. Eso sonó algunas campanas, especialmente como un tutorial de Introducción. – seanmonstar