Pregunta

Construiré una aplicación interna y conectada (OCA) interna. ¿Qué tecnologías sugerirías que empleo?

Aquí están mis parámetros:

  1. .NET SHOP (3.5sp1)
  2. C# para código detrás (WinForm, WPF, Silverlight)
  3. Backend de SQL Server (2005 o posiblemente 2008 Pensación pendiente)
  4. Desarrollador en solitario
  5. Administrador de SQL en solitario
  6. Usuarios finales de baja tecnología
  7. Bajo ancho de banda a 5 ramas
  8. Esta es una aplicación LOB pero no un POS.
  9. La mayoría de los usuarios tienen computadoras portátiles que llevan a la casa de los miembros
  10. Los datos para esta aplicación se almacenan en 5 bases de datos separadas, aunque en una instancia SQL.

Estoy buscando recomendaciones específicas sobre qué ruta elegir. Fusionar proveedores de sincronización de la base de datos de la base de replicación o sincronización? ¿SQL Express o SQL CE en el suscriptor? ¿Puedo usar Linq a SQL para el DAL?

Es una aplicación Silverlight 'fuera de línea/fuera del navegador' Ejemplo aquí, factible?

Esta es mi primera aplicación de gran negocio, por lo que cualquier comentario experimentado es bienvenido.


Como se solicita aquí hay información adicional sobre el tipo de datos. Mis usuarios son enfermeras y trabajadores sociales que van a los hogares de los miembros y crean "planes" o "revisiones de evaluación de salud" para ellos. Estas son cosas como una lista de medicamentos o una lista de sus "proveedores" actuales. Pasos para lograr los objetivos de los miembros o una lista de los diagnósticos actuales/anteriores. Ese tipo de cosas.

También el nombre típico de los miembros, la dirección, el número de teléfono, etc. sobre todo se trata de una aplicación de almacenamiento y recuperación de datos que facilita los informes. Muy poco "procesamiento" se lleva a cabo y las enfermeras y los trabajadores sociales trabajan en equipos asignados, por lo que generalmente tengo muy poco cruce o posibles conflictos de datos. Las enfermeras y los SW también son responsables de las diferentes áreas del MCP (Plan centrado en el miembro)


Pregunta adicional; ¿Es el marco de sincronización realmente solo una opción viable si puedo usar SQL 2008? Parece así debido al seguimiento del cambio, etc. ¿pensamientos?

¿Fue útil?

Solución

Una vez que resuelve el problema de la detección de cambios y el movimiento de datos, todo lo demás es trivial. En otras palabras, tecnologías como WPF, Silverlight, Forms e incluso WCF son ortogonales a su problema principal y su elección debe basarse en sus preferencias y experiencia personales. La verdadera tuerca de crack está funcionando desconectado y sincronizando los cambios. Que deja dos avenidas listas para usar: sincronización marco o replicación.

Yo diría, para tu escenario, definitivamente Marco de sincronización. La replicación de fusión, como todas las formas de replicación, está diseñada para sistemas que están conectados continuamente con desconexiones intermitentes. Y la replicación más crítica solo puede funcionar con nombres estáticos. Las computadoras portátiles que se conectan desde varios puntos calientes e ISP tienen el desagradable hábito de cambiar los nombres de FQ con cada conexión. La replicación puede superar esto solo si se usa una VPN de clasificación y la VPN suele ser un problema de soporte importante. La replicación simplemente no está diseñada para la alta movilidad de los sistemas OCA.

Synch Framework lo obligará a SQL 2008 Back End debido a la necesidad de Cambiar la captura de datos o Seguimiento de cambio, ambas son solo características SQL 2008.

Todavía tendrá muchos problemas difíciles para resolver con anticipación (autenticación, versiones y actualizaciones, políticas de resolución de conflictos de datos, asegurar datos en el cliente para una pérdida de medios accidental, etc.)

Otros consejos

Personalmente, diría:

  • .NET 3.5
  • Servicios de datos de WCF (para comunicación entre la aplicación del cliente y sus datos)
  • SQL Server 2K5/2K8 (lo que pueda usar)
  • Silverlight w/ fuera de la funcionalidad del navegador
  • VISTADB (para almacenar datos localmente en el cliente hasta que pueda presionar al servidor)

usar identificador único Para la clave si está creando cosas mientras está fuera de línea y no está conectado y cuando se conecta, actualiza la base de datos.

Esto será mucho más fácil que usar la tecla de incremento automático

Después de haber trabajado en una aplicación ocasionalmente conectada, le animo a que busque SQL Server CE para las máquinas cliente, con servicios de sincronización para manejar las conexiones. Aquí hay un buen tutorial.

Parece que podrías crear estas cosas desde cero.

Sin embargo, esto se parece mucho a una aplicación CRM, y no me sorprendería si pudiera encontrar un paquete de software empresarial para hacerlo sin comenzar desde cero y, en su lugar, modificar una de las configuraciones para cumplir con sus reglas comerciales.

En una vida anterior, era un desarrollador de configuración para esta cosa llamada Siebel Eso podría estar cerca de lo que buscas. Incluso tienen una herramienta de sincronización incorporada llamada Siebel Remote.

Puede ser una ruta más barata que ir con la suya desde cero.

Escribí un programa de toma de pedidos para representantes de ventas de vinos. Aquí está el video. El software del cliente se instala usando hacer clic. Eso también instala SQL Server Express y carga la base de datos. Utilicé el marco de sincronización de Microsoft para sincronizar la base de datos local con la del servidor (consulte la última sección del video).

  • Con clientes potentes ahora no veo ninguna razón para no usar SQL Server Express, es gratuito con un límite de 4GB.

  • SQL CE tenía demasiadas limitaciones, sin procesos almacenados como uno importante.

  • Deberá usar GUID en todas partes como la clave principal: consulte el NewSeCeSequeatialId ().

  • Me encanta hacer clic, es un gran ahorro.

Estoy deseando que llegue Silverlight, pero no he tenido tiempo de investigarlo. No estoy seguro si lo habría hecho con Silverlight si lo hacía ahora o no.

Dicho todo esto, este no es un proyecto para nadie sin experiencia. Así que también obtendría ayuda muy experimentada.

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