Uso sqlite3 con lenguaje c recientemente. ¿Alguien puede decirme algún ORM conveniente para c? ¿Es necesario desarrollar un mecanismo de ORM para mis propios proyectos?¿Hay algún marco de librería ORM conveniente para c?
Respuesta
Tener una necesidad de ORM me sugiere que tiene en mente algún tipo de modelo de objeto de negocio/dominio que desea asignar a una base de datos.
Si ese es el caso, me da la impresión de que está tratando de escribir una aplicación comercial en el lenguaje más adecuado para la programación de sistemas (C). Es posible que desee considerar si esta es una buena estrategia arquitectónica.
Por otra parte, no creo que jamás ORM es probable que sea una buena opción para un lenguaje que:
- en sí no es orientado a objetos
- no tiene mucho apoyo a la meta programación/reflexión que tiende a ser central en muchos esquemas ORM
Finalmente, hay muchas personas que creen que ORM es un antipatrón en cualquier caso. (example, example, example)
En general, mi sugerencia sería que o bien:
- Evitar el ORM por completo si va a seguir utilizando C
- Cambiar a un lenguaje/plataforma donde ORM es al menos bien soportado y se ajusta al paradigma (más obviamente Java)
Muchas gracias. Las sugerencias son útiles. Mi intención original es evitar manipulaciones repetidas para acceder al DB. Porque encontré muchos códigos de repetición en mi proyecto.Escribí algún mecanismo para hacerlo, pero es tan difícil de abstraer por completo. Considero encontrar ORM primero, y hay pocos. –
Una breve búsqueda en Google se le ocurrió esto: http://ales.jikos.cz/smorm/
nunca he usado, así que no me culpes si se cambia el formato de todas las unidades de disco duro y hace que su refrigerador justo lo suficientemente caliente como para estropear su leche, pero parece que podría ser mejor que nada si realmente no desea escribir consultas.
oh sí. Parece que los autores no tienen la confianza para sus API. –
escribí this library como un "ORM para C".
código de ejemplo se parece a:
typedef struct person {
int id;
char *name;
} person;
void find_by_name(isti_db *db, const char *text, person** result) {
corm_person_select *s;
corm_person_select_alloc(&s, db);
s->name(s, "like", text)->_go_one(s, result); // populate result from the database
s->_free(s, 0); // in "real" code, 0 is a chained status value
}
por desgracia, no está en uso en cualquier parte (por lo que sé) y que incluye un buen número de ideas que avezados programadores C podría encontrar extraño. pero no está abandonado: sigo interesado en el problema y espero continuar trabajando en él en algún momento.
- 1. ¿Hay algún marco estándar para php?
- 2. ¿Hay algún buen marco de pruebas unitarias para Ada?
- 3. ¿Hay algún libtorrent para C#?
- 4. ¿Hay algún marco de complemento para Applets de Java?
- 5. ¿Hay editores alternativos para archivos .m?
- 6. ¿Hay un OR/M para ASP clásico?
- 7. Librería de compresión sobre la marcha en C para transmisión
- 8. ¿Hay algún uso para la decoración de tiro de C++?
- 9. ¿Hay una función conveniente en objetivo-c/cocoa-touch para encontrar el número más bajo?
- 10. ¿Hay un marco P2P en c?
- 11. ¿Hay algún otro atributo útil para las propiedades de C#?
- 12. ¿Hay algún "patrón de diseño" en C?
- 13. ¿Hay algún perfilador decente de C#?
- 14. ¿Hay algún límite para setTimeout?
- 15. ¿Hay algún depurador C#/.NET independiente?
- 16. ¿Hay algún programa para convertir el ensamblaje a C++?
- 17. ¿hay algún paquete de prueba de unidad bueno para Excel
- 18. ¿Hay un estándar para criptosistemas de umbral (m de n)?
- 19. ¿Hay algún algoritmo para mover rangos?
- 20. ¿Hay algún programa para descompilar Delphi?
- 21. ¿Hay algún marco para resaltar texto en el archivo pdf después de renderizar en el iphone?
- 22. ¿Hay algún enlace .NET para Neo4J?
- 23. ¿Hay algún traductor OCaml to C gratis?
- 24. ¿Hay algún valor predeterminado para los registros?
- 25. Mejor librería de visualización de análisis/datos para MongoDB
- 26. ¿Hay algún DSL de Scala para GUI?
- 27. ¿Hay algún complemento de websocket para IE?
- 28. librería javascript para procesar compleja geometría 2D
- 29. ¿Hay algún programa como LINQPad para Java?
- 30. Librería JPEG2000 Libre o SDK para descompresión
Parece que cualquiera que quiera un ORM es poco probable que codifique en C .. –
¿Qué tiene en mente dado que C generalmente no tiene la parte del objeto de ese acrónimo? – Justin
me he preguntado acerca de esto también (algún tipo de biblioteca para automatizar el acceso desde c); probablemente asignaría una estructura a una fila en una tabla. ¿Pueden los downvoters/closers explicar por qué? –