Ayuda con el diseño de una aplicación CRUD con restricciones especiales

Kaledros

Buenas.

Las restricciones especiales son:

  • Tiene que correr todo en la misma máquina, no se puede llamar a ningún servicio que no corra en localhost.
  • No se puede instalar ningún programa nuevo en esa máquina, mucho menos una BD.

Lo primero no es problema, se ejecuta un jar en local y arreando, pero lo segundo me plantea un problema con el tema de la persistencia. A una mala había pensado en escribir y leer de ficheros con extensión JSON alojados en una ruta concreta (C:\app, o algo así), que a fin de cuentas es sencillo y si algún día escalo a una BD propiamente dicha meto un mongo en la capa de persistencia y tendría que cambiar muy poco de los services, pero quería escuchar opiniones. Y en cuanto a la UI había pensado en un front web normal y corriente con HTML, CSS y JS que haga llamadas Ajax al servicio local.

¿Alguna sugerencia?

Camp1

puedes usar h2 como bbdd

1 respuesta
Kaledros

#2 ¿H2 no perdía los datos al cerrar la aplicación? ¿O hay alguna manera de conservarlos de una ejecución a otra?

1 respuesta
vincen

Cual es el motivo?

Lo mas lógico seria JSON, que después vas a poder migrar fácilmente a lo que quieras.

1 respuesta
Kaledros

#4 El motivo es que la aplicación trataría datos de una empresa y esos datos no se pueden sacar fuera de su propia red. El PC en el que correría está controlado por su equipo de IT y no se puede instalar nada sin que te lo aprueben, y veo complicado que a un administrativo (el colega al que le voy a hacer la herramienta) le aprueben instalar MySQL o cosas así.

En el fondo es una pollada, es una herramienta para llevar él un control de reuniones (órdenes del día, resoluciones, etc) que me sirve a mí de portfolio (solo que yo lo modificaré para que tire de una BD antes de subirlo a mi git), pero queremos curarnos en salud.

1 respuesta
vincen

#5 Dado lo que quieres, lo suyo seria una app de escritorio con sqlite

1 respuesta
Kaledros

#6 Lo he pensado, no te creas, pero por un lado quiero que me sirva de portafolio y un servicio me encaja mejor que una app de escritorio y por otro es posible que en un futuro esa herramienta se apruebe para uso interno, así que tampoco quisiera tener que reescribirla casi entera haciendo el front de nuevo. Creo que tiraré por los JSON.

Fyn4r

Una cutre app en Access.

Cuando quieran algo útil les haces un servicio o lo que quieras y les das el palo con el presupuesto

1 respuesta
Kaledros

#8 Claro, esa es la idea, pero para eso primero hay que ponerlo bonito XD

B

Y porque no tiras de sqllite?
En java tienes ésto por ejemplo https://github.com/xerial/sqlite-jdbc, supongo que en otros lenguajes tendrás algo similar.

1 respuesta
Unrack

#10 Directamente si quieres hacer servicio web y controlas Python tienes flask + sqlite.

JuAn4k4

Si tu crud es: GetById y FullUpdate (no partial updates) y no tienes queries de ningún tipo, la idea no es mala, si usas algo más rápido que json. (bson o alguna lib que veas). Y ojo cuidado con los breakig change en el modelo.

Si necesitas queries, o partial updates, te vas a meter a montar una db nueva.

1 respuesta
HoRTeL

No sé si te sirve, pero yo en su día hice una pequeña aplicación java con base de datos embebida. Creo que utilicé apache derby.

1
JuAn4k4

Tienes opciones: Derby, H2, Hsqldb, Sqlite.

HeXaN

Python + Flask + Pony. En diez minutos lo tienes.

1 respuesta
JuAn4k4

#15 Ahora lee la pregunta, está preguntando por una DB embebida en su app.

1 respuesta
Kaledros
#12JuAn4k4:

Si necesitas queries, o partial updates, te vas a meter a montar una db nueva

Es lo que me estoy temiendo después de mirarlo toda la tarde, al final esto va a necesitar una db de toda la vida y paso mil de reinventar ruedas. SQLite es una opción, pero he visto que se puede configurar H2 para que no use memoria sino un fichero, tengo que ver cómo lo hace por si me sirviera.

Python + Flask + Pony. En diez minutos lo tienes.

De esas tres palabras sólo conozco la primera XDD

HeXaN

#16 Leer dice jajaja.

3
MTX_Anubis

#3 Tiene varios modos, uno de ellos guarda la bbdd en un fichero

Así que puedes utilizar h2 o sqlite.

r2d2rigo

SQLite o si te va la marcha, una base de datos de Access mediante ADO.

Usuarios habituales