Pregunta

¿Qué beneficios (si los hay) para la empresa (no solo a los desarrolladores) podría obtener cambiando de SQL Server 2008 a Versant OODB?

Más información sobre el proyecto y los hechos para ayudar con una respuesta (avíseme si necesita más):

  • Muy pequeño equipo, casi nunca usó OODB.
  • El proyecto usa nHibernate 2.
  • Alrededor del 75% de cobertura de prueba.
  • ASP.NET MVC APP.

En esta etapa no pude justificar el interruptor debido a los siguientes puntos (la mayoría relacionados con DB4O, no Versant Mainstream OODB):

  • Las herramientas son bastante malas en comparación con RDBMSS World, donde hay un montón de "gerentes", perfiladores, herramientas de integración/migración y otros;
  • La documentación es bastante básica por lo que puedo observar y muy mezclado con Java;
  • No tantos recursos en la red en comparación con RDBMS;
  • Cambiar a otras bases de datos puede ser problemático (a diferencia de RDBMS);
  • curva de aprendizaje para los desarrolladores y el equipo de TI;
  • costo de licencia adicional;
  • costo de mantenimiento adicional;
  • No hay integración con MSDePloyment (incluidas copias de seguridad automáticas, MSBuild, envases, etc.);
¿Fue útil?

Solución

Aquí hay un comentario de un usuario real que cambió de SQL Server 2005 a Versant:

Aquí hay comentarios de mí y mis colegas sobre vod.net.

Agrupé mis ideas en pros y contras

Pros: (En una palabra: velocidad)

  • El motor de la base de datos es rápido para leer datos y escribe, desde lo que hemos hecho, es aproximadamente de 5 a 10 veces más rápido que SQL Server 2005
  • Reduce la cantidad de código necesario para hacer la misma cosa que las tecnologías de la capa de acceso de datos de estándares
  • También reduce el tiempo para desarrollar una nueva funcionalidad
  • Crea una estructura de objetos estricto y eso facilita la integridad de los datos
  • La importación de datos en VOD es fácil

CONTRAS: (En una palabra: necesita habilidades de solución de problemas)

  • Nuestro principal punto negativo es sobre la usabilidad de las herramientas de administración (consola de administración e inspector de objetos)
  • Botones/enlaces no del todo explícitos sobre lo que hacen, generalmente descubrimos cuándo intentamos usarlo
  • Los errores de actualización de compilación/base de datos versant no son suficientes explícitos, apenas sabemos qué clase causa el error, pero no el motivo, por lo que debemos depurar por nosotros mismos.
  • El uso de la opción Menú de la base de datos Verificar no podría funcionar y mostrará errores (dependiendo de los tiempos)
  • Migración de aplicaciones
  • Al migrar una aplicación de patrón DAL, es largo hacer que funcione con VOD si intenta mantener el mismo código para la interfaz de usuario

En Résumé, recomendaría usar VOD.NET para empresas que tengan habilidades para desarrolladores superiores y estructura compleja/big data. Definitivamente es más rápido crear una aplicación nueva que la migración de la aplicación existente. El inspector de objetos necesita un rediseño para ser más fácil de usar.

Hemos abordado algunas de las preocupaciones del inspector de objetos al proporcionar soporte de LinqPad. Creo que debería tomar la decisión de cambiar en función de los beneficios técnicos y no en ninguna discusión emocional. Además, Versant es un socio de Microsoft, y hay muchas oportunidades para personas con buenas habilidades OO Versant o no.

Otros consejos

Depende de tu modelo de objeto. Si está tratando con un gráfico de objetos profundos en su dominio con relaciones jerárquicas complejas, beneficiará a lo grande al cambiar de SQL Server 2008 a Versant ODB. Si está tratando con objetos planos, se adhiere a un motor relacional. Verifique los resultados de C/S en www.polepos.org:http://polepos.sourceforge.net/results/polepositionClientserver.pdf

Lo olvidaste ... Probablemente me vaya a ir mucho más rápido (pero dependerá de tu modelo. Si tienes un modelo simple, recomiendo seguir con RDB).

Si tiene relaciones con muchas a otra manera recursiva, subgrafos anidados, etc., entonces si será mucho más rápido.

Por supuesto, también se ejecutará mucho menos hardware. Los estudios con IBM muestran que ahorrará alrededor del 50% de la CPU en su nivel medio (por ejemplo, sus servidores web donde sucedió toda la traducción de tipo para el RDB).

Además, no necesita un experto en una base de datos ... si es un tipo de OO, entonces ya tiene el conjunto de habilidades ... especialmente si conoce Hibernate/Nhibernate porque los conceptos de gestión del ciclo de vida de los objetos de Hibernate y el espacio ORM fueron Básicamente secuestrado del mundo OODB y transportado al campamento RDB.

Además, puede iterar mucho más rápido en sus ciclos de desarrollo sin tener que ir constantemente a un DBA y solicitar actualizaciones de esquemas.

.... RDB eventualmente seguirá el camino del mainframe. Todavía alrededor, pero no se usa para nuevos proyectos. Esos programadores de Cobalt tampoco lo creyeron en ese momento ... así que no se molesten con todos los NA-Sayers.

Si quieres cambiar, hazlo. Este es su único punto "más".

"Deshacerse de la falta de coincidencia de impedancia relacional de objetos del que todos estamos tan cansados".

Ya enumeraste la mayoría de los negativos. Agregaré dos más:

  • ¿Cómo pueden los trabajos pedir habilidades versant OODB?
  • ¿Cuántos desarrolladores tendrán habilidades versant OODB?

En la divulgación, trabajo para Versant en ventas y para comentar sus preguntas, Versant es un producto comercial, pero al igual que SQL Server, tenemos precios similares, la edición comunitaria es gratuita con limitaciones en el tamaño de la base de datos, la edición estándar es un pequeño costo por servidor pero limitado en el número de subprocesos permitidos, y una edición empresarial que es costosa, pero menos que SQL Server o Oracle si necesita escalabilidad y rendimiento. Además, al pasar de NHibernate a LINQ, podrá usarlo a la base de datos de Versant, y en el futuro si desea regresar a SQL Server, puede hacerlo con bastante facilidad con EF o LINQ a SQL, por lo tanto, mitiga su Riesgo en la infraestructura de la base de datos. Este sería un punto para versant en lugar de usar una tienda KVP NoSQL con una interfaz prorprieta. Es cierto, mucho menos documentación que es relacional, pero www.odbms.org tiene una excelente información y material de referencia. La curva de aprendizaje si su equipo es competente en C# debería ser bastante fácil, y desde el punto de vista de la administración, Versant es una base de datos, por lo que los procedimientos de copia de seguridad y recuperación de aprendizaje deberían parecer familiares. Nuestros clientes, C ++, Java o .NET, todos dicen que los beneficios de Versant son la facilidad de desarrollo, el rendimiento y la capacidad de apoyar sus necesidades con una menor cantidad de recursos en servidores y almacenamiento.

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