Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2014
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Post ORM Object Relational Mapping / MVC

Buenos dias Foristas,

Quiera conocer sus conceptos sobre esta técnica, ejemplos sencillos de ser posible completos uso y programas que están usando para hacerlo, estoy muy interesado en este tema, lo mismo con el MVC

Todos sus experiencia sobre el tema es importante tenerla
Saludes
Responder Con Cita
  #2  
Antiguo 12-08-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Eso es como preguntar: Expliquenmen sobre SQL y OO.

ORM & MVC son dos cosas diferentes. Hay toneladas de recursos sobre ambos, asi que en concreto que es lo que quieres? Porque lo unico que podriamos hacer es darte tropocientos links.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 13-08-2014
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Smile Sobre ORM / MVC

Gracias mamcx por su interes,

Hace algunos años publico en su pagina una idea de centralizar en un solo sitio los componentes de base de datos delphi, exponiendo varias ideas (No volvi a encontrarlo en la web lastima), si no mal recuerdo uno de las frases que uso fue ESTAN EN TODO SITIOS cuando se referia a las querys y consultas SQL esparcido por todo el codigo

He tratado de ir centralizando la información de una aplicación que tengo en delphi movimiento querys / sql en un solo sitio al menos recordando su recomendación.

Ahora veo la necesidad de efectuar cambios para usar los datos en la web y en móviles y de pronto pasar de firebird a postgresql, no se si un modelo MVC / ORM relacionándolos desde el punto de vista donde el modelo seria solo visto a través de un modelo ORM , Tal como digo no conozco mucho el tema, pero bajo su afirmación de esta respuesta y lo expuesto creo que seria muy interesante ver notas de como ha evolucionado sobre estos puntos

Como otro ejemplo tambien he tratado de observar algo de dataabstract de remobject que es otro cuento pero se ve muy interesante
Responder Con Cita
  #4  
Antiguo 14-08-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Hace poco hubo una discusion sobre el tema en:

"What ORMs have taught me: just learn SQL"
https://news.ycombinator.com/item?id=8133835

---

Hay varios tipos de ORM. Es muy practico tener un objeto, y darle .save() para no escribir el UPDATE/INSERT manual y hacer el escape de parametros y todo eso. Pero hay muchos ORM que son mas complejos y terminan complicando mucho las cosas al final.

Un ejemplo de una capa quasi-orm bien hecha es SQLAlchemy (core):

http://docs.sqlalchemy.org/en/latest/core/tutorial.html

Notaras que es muy similar a hacer SQL, solo que con ciertas comodidades para ajustarse a un lenguaje OO (en este caso python). DataAbstract va por este camino.

Diseñe un ORM hace un rato para iOS: https://code.google.com/p/chibiorm/ y en el camino he ido haciendo ajustes a la idea. Un problema es que los lenguajes OO tienden a hacer complicado este asunto y Delphi, en especial. Python permite darle vueltas y es facil de hacer algo como sqlAlchemy, pero Delphi es muy rigido!.

Ademas, que el modelo "relacional" que implementan las BD actuales es incompleto! Y el puenteo de los lenguajes ademas sufre por ello. Hace poco vi un buen articulo sobre el tema:

http://www.try-alf.org/blog/2013-10-...-class-citizen

----

En resumen? Considera la BD tal cual un servidor remoto. Encapsula las llamadas en funciones, no hagas concatenacion de strings para los SQLs, si tienes un engine potente como postgresql abusa de todo lo que tienen (como funciones y procedimientos). Tener algo como sqlalchemy o LINQ (http://www.linqpad.net/whylinqbeatssql.aspx) seria ideal, pero de lo contrario algo como:

Código Delphi [-]
function obtenerListaClientes:TDataset;
function buscarCliente(campo:String, comp:Enum(=,<,>, etc), valor:?):TDataset

function guardar(Objeto:?):Bool
function borrar(Objeto:?):Bool
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 25-08-2014
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
Hola ASAPLTDA,

En Delphi conozco 2 opciones de ORM: Aurelius de TMS y EntityDAC de Devart, ambos se ven muy bien.

Aqui (Oct 17, 11am - Introducing TMS Aurelius, a Delphi ORM) un video en donde se muestra el paso a paso de la utilización de Aurelius.

De EntityDAC no he encontrado algo similar, aunque la documentación del producto explica en imagenes como se construiría una aplicación.

Sobre MVC no tengo nada, y no se si haya algún producto relacionado con Delphi para soportar éste modelo/patrón...

Saludos,
Responder Con Cita
  #6  
Antiguo 26-08-2014
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 19
fer21unmsm Va por buen camino
Hola,

MVC es el Modelo Vista Controlador, un patrón de arquitectura a nivel de software para desarrollar aplicaciones. Que a simple modo, vista contiene la presentación o la interfaz, el modelo es la capa de acceso a datos y el controlador agarra la parte de la lógica. Pero si estás usando tecnologías como ASP.Net y WPF (Windows presentation foundation) te recomiendo usar el patrón MVVM (Modelo Vista Vista Modelo) que te facilita la vida sobre todo para la interacción con el WPF.

Saludos cordiales.
__________________
"La información tiene más valor cuando se comparte"
Responder Con Cita
  #7  
Antiguo 26-08-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Superficialmente y sin probar, el ORM de TMS se ve ok. He usado es DataAbstract y funciona muy bien, asi que es otra alternativa a los que pones.

Para hacer MVC en Delphi no es que se necesite algo especifico, osea, a nivel de lenguaje, es una arquitectura... y se podria decir que "choca" con el modelo RAD de delphi y el codigo spaguetti.

Se puede implementar con un poco de disciplina, pero ya que todos los controles/formas de Delphi & terceros asumen el modelo RAD de Delphi es normal que haya encontronasos. Ese es el problema de los lenguajes, no es que no puedan implementar ciertos paradigmas, es que cuando tienen afianzados los propios, implementar otros hace que choquen con los actuales.

Para hacer MVC lo que hay que hacer en lenguaje plano es mover al maximo el codigo que de logica de negocios a una clases, lo que sea GUI se deja en el Form/Control y se pone un mediador para comunicar ambos.
__________________
El malabarista.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error mapping failed al abrr consulta Caminante Conexión con bases de datos 0 02-11-2013 23:20:10
'DBX Error: No Mapping for Error Code Found' CHECHE81 Conexión con bases de datos 1 09-06-2010 02:11:35
Acceso a un <object></object> carpato18 HTML, Javascript y otros 1 22-01-2008 09:18:01
Sobre error "Object reference not set to an instance of an object" fer21unmsm .NET 2 11-05-2007 21:56:46
Could not find object Raptor API de Windows 3 19-01-2004 18:11:55


La franja horaria es GMT +2. Ahora son las 00:57:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi