Buenas, estoy dando forma a una aplicación para varios clientes y mientras estudiaba en como encarar el DER se me encendió la lámparita de dudas.
Mi aplicación es más del tipo monousuario, por lo que emplear una versión embebida quizá sea lo más adecuado, y entonces me dije... ummm si alguien ya tiene instalado Firebird me la lía parda. Recuerdo que ya algo de esto se debatió en este hilo. Vagamente recuerdo haber leído en algún sitio (que ya no localizo) que había una manera de configurar a firebird para que pueda trabajar tanto en modo server como la embebida en simultáneo.
Luego me digo bueno... una forma de evitar esto es que instale la versión server y haga uso de esta ya sea en LAN o localmente no me jode. Pero esto elimina los problemas... sigue el planteo: ¿Y si ya tiene una versión, DISTINTA, de Firebird?
Desde la versión 2.1 Firebird fue diseñado para soportar múltiples instancias y las cosas son relativamente más sencilla y hasta donde recuerdo ya Firebird hace las verificaciones. Pero para versiones más tempranas hay otras formas de hacerlos, y una forma "genérica" de conseguir instalar varias instancias desde 1.5 en adelante es más engorrosa.
Me preguntaba entonces si quizá no sea mala idea directamente atacar el problema de otra forma: en lugar de lidiar con multiples instancias ¿Porqué no ofrecer con mi sistema la posibilidad de disponer versiones de una misma base de datos en diferentes versiones? Luego bastaría con detectar si hay algún Firebird instalado, detectar que versión emplea y configurar la aplicación para trabajar con ésta.
Pero claro, esto tampoco es una solución super elegante ya que es más esquivar la bala pero no al atacante. No sólo eso sino que además emplear el modo server ya es emplear un cañón cuando con la pistola basta, pero bueno... tampoco es un gran pecado ¿O si?
La gran gozada, para mi como para mis clientes, es que el sistema pueda trabajan con la versión embebida, y que incluso pueda lidiar con una posible instalación de Firebird en cualquier versión.
Por ello, me preguntaba que maneras de lidiar han implementado ustedes, y/o que alternativas proponen.
Saludos,