Pregunta

Estoy en un proceso de planificación de una arquitectura para una línea de sistema distribuido de negocios, donde muchos dispositivos diferentes de diferentes tipos deben ser compatibles en escenarios de casos de uso muy similares.

Entre otros, tendré que apoyar

  • PDA basado en Windows Mobile 6.x
  • Estaciones de trabajo de PC

Esas aplicaciones servirán una lógica comercial bastante simple, por lo que no quiero usar la arquitectura exagerada para ello. Sin embargo, necesito apoyar:

  • actualizaciones remotas
  • Principalmente escenario de clientes desconectados para PDA (y opcionalmente, para la PC)

Mientras investigaba la arquitectura de referencia adecuada, me topé Bloques de aplicaciones móviles Liberación de la comunidad y Móvil contribuir extensión a esa versión. Lo que me mantuvo interesado ha sido:

  • Agente desconectado y monitor de conexión para admitir el escenario de clientes en su mayoría desconectados
  • Bloque de aplicaciones de actualizadores móviles para admitir actualizaciones

También soy consciente del SCSF contraparte de la plataforma de escritorio.

Ahora, aquí están mis preguntas

  1. ¿Es, en su experiencia, MCSF Extension a VS2008/WM6.X/.NET CF 3.5 Madury and Stable lo suficientemente estable para el uso de producción? No quiero ser víctima de saber, que no es realmente adecuado para el uso comercial, mientras estoy en el medio del proyecto.
  2. Dado que la aplicación será muy fácil, no quiero hacerla demasiado complicada con el patrón MVP y otras adiciones al marco relacionadas con CAB. Solo necesito apoyar los escenarios descritos anteriormente. ¿Sería posible utilizar componentes de liberación de la comunidad MCSF sin tener que arquitectar toda la aplicación de la manera MCSF (con comandos, inyección de dependencia, MVP, etc.)? Creo que querré mantenerlo simple para la aplicación simple.
  3. Lo mismo para la aplicación PC de escritorio. También creo que ir a CAB/SCSF completo sería una exageración importante aquí, ya que este es realmente un conjunto muy simple de características que se deben implementar, pero me gustaría reducir el tiempo de desarrollo utilizando el actualizador y posiblemente el desconectado Bloques de clientes. Solo sin la parte de la interfaz de usuario complicada (crearé formas de ganar simples para la interfaz de usuario). ¿Seria posible?

También estoy investigando la posibilidad de compartir parte del código relacionado con clientes desconectados/actualizaciones remotas entre la PC y PDA, pero no creo que sea posible con MCSF/SCSF.

Agradecería un consejo de alguien que siguió ese camino antes que yo :)

¿Fue útil?

Solución

  1. MCSF es absolutamente horrible. Parece que alguien en Microsoft simplemente le dijo a un desarrollador con poca experiencia que tome el SCSF y "haga que funcione" en el marco compacto. Eso se tradujo como "si se compila, entonces está bien" porque eso es todo lo que parece haber sucedido.

    ¿Se ejecuta? Claro, ¡pero la santa lentitud Batman! Es completamente inutilizable en cualquier escenario del mundo real. Es lo suficientemente malo que Escribí un reemplazo desde cero Eso mantiene (en su mayoría) la compatibilidad de la interfaz e incluye solo un conjunto mínimo de características.

  2. Descubrí que si una aplicación contiene 2 vistas o más, entonces vale la pena usar el patrón MVP. En algún momento deberá agregar otra vista y ya habrá diseñado para ello. Además, poner sus objetos en un marco DI/IOC a menudo permite que cosas como la agregación de eventos, que encuentro terriblemente útiles incluso en aplicaciones sin cabeza, por lo que incluso sin ninguna sustancia MVP termino usándola.

  3. El escritorio no es diferente en mi libro. La biblioteca del COI que creé admite tanto el CF como el FFX de manera idéntica (así como Monotouch y Phone 7), ya que hago mucho código compartido en todas las plataformas. Es raro que cree un proyecto de escritorio donde no lo uso.

Ahora no digo que tengas que usar mi proyecto IOC. Me resulta útil para todos los problemas que golpeé, y lo sé lo suficientemente bien que cuando llego a un área de funcionalidad faltante, puedo agregarlo rápidamente (aunque no he encontrado mucho falta en meses). Si está cómodo o prefiere otro marco DI/IOC, entonces es genial, úselo. Lo que estoy diciendo es a) corre gritando de cualquier cosa que tenga que ver con MCSF yb) Use un marco DI/IOC, incluso si crees que la aplicación es demasiado simple para un porque no existe una aplicación del mundo real Eso es demasiado simple para beneficiarse de él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top