Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Noticias
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2016
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Cita:
Empezado por Delphius Ver Mensaje
La gracia y una de las ventajas que tiene Delphi es justamente el RAD. Y que con pocos pasos ya tienes un ABM funcional. Descartarlo por descartarlo no me parece bueno.
Lo que me parece espectacular es que los Ingenieros detrás de Delphi han tenido una muy buena visión de como hacer las cosas y no te condicionan ni te imponen a que para llegar a la bases de datos obligadamente pases por el data-ware. El que sea opcional, y uno considere o no usarlos. No se si otros lenguajes permitirán estas libertades.
Si hay algo que siempre han hecho bien el equipo es ofrecer un equilibrio en su VCL.
Mi motivo por el cual renuncio al data-ware es más bien centrado a mi visión con tendencia al OO-puro o purismo-OO. En ciertos puntos, si uno se pone a analizarlo se encuentra en el dilema de si usar o no data-ware. Rolphy Reyes y yo en DA hemos intercambiado nuestras experiencias y coincidimos en algunos temas. Ambos nos seguimos cuestionando hasta donde nos puede llegar a facilitar el uso de data-ware y en que punto nos perjudica cuando tenemos presente una capa de de Modelo de Negocio, junto a una Capa de Presentación y otra Capa de Aplicación... y ni que decir, si hemos llegado a pensar en elaborar un Framework de Persistencia.
Y creo que acá en CD también se ha debatido este tópico.

Es una visión personal. Hay gente a la que el manejo de data-ware les es esencial y a otros que no. No creo que se llegue a una respuesta definitiva que nos diga que deba ganar una cosa por sobre la otra. Después de todo, sea cual fuese el camino que elijas tendrás tus pros y contras. Mientras uno esté al tanto de ambos y encuentre "equilibrio" en sus propios diseños las cosas pueden ser llevadas con normalidad y debido control.

Saludos,

Hola a todos

Soy de la misma opinion el usar o no controles dataware no tiene que ser mejor o peor para todos los casos. Yo tengo un sistema funcionando con dataware en una de sus ventanas muestro en un dbgrid la lista de prestamos de mercaderia hechos a un cliente y hay un campo que es el unico editable que es la fecha de devolucion. En este caso se me hace un poco tonto crear un cuadro de dialogo para modificar una sola columna (Si fueran mas se justificaria). Me basto insertar un TDateedit (JVCL) en la columna del grid y listo.

Lo que quiero decir es que cada situacion se puede resolver de una u otra forma.

Ahora que he cambiado a codetyphon estoy cambiando a un modelo de objetos pero unicamente porque no encuentro un componente que pueda igualar al clientdataset.


Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #2  
Antiguo 27-08-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Casi que estamos de acuerdo; yo tambien prefiero el modelo purista de objetos porque se permite enchufar a cualquier cosa y no depende de los data-aware. Como migras el mismo codigo a firemonkey para multi plataforma? no podes, no tenes data-aware ahi

Por otra parte, la Starter si tiene los controles data-aware, y tambien tiene ClientDataSet:



Y tambien tiene LiveBindings aunque sin el "experto" o plugin del IDE que hace todo mas facil, hay que crear los Binding a mano usando un componente TBindingList y su menu contextual (es como si se crearan Actions de un TActionList)

Este ejemplo es en firemonkey



Tambien estan los componentes de Tethering e Internet (los nuevos TNetHttp de XE8 creo), los sensores (LocationSensor, MotionSensor, OrientationSensor), Bluetooth y BluetoothLE. Tambien vienen los VCL Styles (incluidos los de Windows10)

En fin,m que no esta tan mal!
Responder Con Cita
  #3  
Antiguo 27-08-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Sabía que esta disponible la unidad DB.pas pero eso no es garantia de que estuvieran los data-ware. Y no recordaba haber leído en la hoja de especificaciones si estaban.
Ahora que lo pienso tiene sentido que esten. Ya que si dejas abierta la instalación de componentes de acceso a base de datos o que amplíen los data-ware tenes que darles su uso.

Definitivamente voy a instalar Starter.

Saludos
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 28-08-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Delphius Ver Mensaje
Sabía que esta disponible la unidad DB.pas [...]
En realidad la que está disponible es su versión precompilada DB.dcu (Data.DB.dcu). Dado que, tal como sucede con las versiones trial, no incluye la gran mayoría del código fuente de sus bibliotecas nativas.

Cita:
Empezado por Caminante Ver Mensaje
[...] Ahora que he cambiado a codetyphon estoy cambiando a un modelo de objetos pero unicamente porque no encuentro un componente que pueda igualar al clientdataset...
Y creo que pasarán muchos años antes de volver a ver algo tan bueno como el TClientDataSet (en el propio Delphi u otros lenguajes) para manejar cursores de información.

Saludos.
Responder Con Cita
  #5  
Antiguo 28-08-2016
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
Los data-aware son controles geniales, que no tienen muchos imitadores. Quizas FoxPro e ironicamente acces son los únicos con un modelo similar.

Durante mucho tiempo intente creer que el modelo OO era el mejor; que hay que "abstraer" y que hay que crear un montón de clases para lograr algún objetivo teórico e ideal.

Pero eso solo ocurre porque por mucho tiempo solo estuve *dentro* de entornos OO, y SIEMPRE resultaba un lio la conectividad con las BD. Cosa que no ocurria con FoxPro; y que en parte se evidencia con los controles data-aware (que están enfocados a manejar algo parecido a tablas y no a objetos).

----

Ahora que he expandido horizontes con lenguajes funcionales y estudiado otros paradigmas, me he dado cuenta que el modelo OO es solo uno entre tantos, y que es mucho mas simple no intentar pelear contra la naturaleza de las BD y usar lo que estas tienen. Lo que ha estado tomando algo de fuerza es usar los objetos POCO (Plain-Old-Objects) que es lo que se usa cuando un lenguaje no tiene soporte a STRUCTS y usar clases/funciones para operar en ellos; a la vez de dejar de lado los ORM y usar de forma mas directa el SQL.

COn lo de dataware es triste, pero la gente de JS no esta dando la pela y estan muy avanzados. Cosas como React (https://facebook.github.io/react/) y el modelo Reactive muestran que el modelo data-aware que entendemos en Delphi solo tiene un problema: Es MUY limitado. En vez de negarlo, se puede hacer aun mas poderoso.

Este es un ejemplo de una libreria reactiva:

http://reactivex.io/

El punto es que hacer el binding entre la interface y los datos u clases es algo que si o si hay que hacer. El modelo OO complica la cosa, y el modelo mas funcional lo simplifica, pero afortunadamente no es muy dificil de hacer una version combinada. La otra alternativa, es lo que hemos hecho: Inventar nuestra propia manera de hacer binding, solo que ad-hoc.
__________________
El malabarista.

Última edición por mamcx fecha: 28-08-2016 a las 06:39:21.
Responder Con Cita
  #6  
Antiguo 29-08-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Los controles dbaware, guardadas las distancias, son como PHP. Si no te tomas la molestia de usarlos como se debe, es seguro que piensas que son lo peor de la creación. Eso de que generan código espaguetti es sólo si no se toma uno el tiempo de separar los formularios de los módulos de datos, colocar en estos últimos los datasets y no andar poniendo código sql insertado al vuelo en el onclick de un botón.

LineComment Saludos
Responder Con Cita
  #7  
Antiguo 29-08-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
Los controles dbaware, guardadas las distancias, son como PHP. Si no te tomas la molestia de usarlos como se debe, es seguro que piensas que son lo peor de la creación. Eso de que generan código espaguetti es sólo si no se toma uno el tiempo de separar los formularios de los módulos de datos, colocar en estos últimos los datasets y no andar poniendo código sql insertado al vuelo en el onclick de un botón.

LineComment Saludos
Es cierto que si uno no se toma en serio el control en el uso de separar cada cosa, y sobre todo en lo referente a data-ware y módulos de datos, la cosa se pone peliaguda.
Convengamos que no por tener un módulo de datos y poner ahí los datasets, conections, datasources, etc. necesariamente vamos a llegar a buen código

Y me animo a decir, que esto sucede con cualquier cosa en el desarrollo de aplicaciones... que no es exclusivo del debate "dataware si o no". Si uno no controla la relación acoplamiento/cohesión tampoco llegará a buen puerto... si uno no controla sus diseños de clases tampoco llegará a buen puerto... si uno abusa de los patrones de diseño tampoco llegará a buen puerto... si uno no....

Ya antes tuvimos un par de debates sobre si los datasets y los datasource siempren deben ir en módulos o si los ponemos en un form. Nuestro compañero Al con su método de dataset clonado había dado una solución "salomónica" a un caso particular. Y al final todo parece ser que hay mucho de DEPENDE.


[Modo humor y desahogo ON]
En lo que todos estaremos de acuerdo a que todos odiamos a PHP ¡Nadie lo quiere cerca! Y mejor no me lo recuerden que estoy haciendo un curso de diseño web... por ahora todo es Wordpress y te lo pinta fácil. Pero ya estoy viendo que para un buen par de cosas tendré que meterme al código crudo... y yo de PHP estoy muy offside.
[Modo humor y desahogo OFF]

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 29-08-2016
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
Cita:
Empezado por roman Ver Mensaje
Eso de que generan código espaguetti es sólo si no se toma uno el tiempo de separar los formularios de los módulos de datos, colocar en estos últimos los datasets y no andar poniendo código sql insertado al vuelo en el onclick de un botón.
Pero eso no es un defecto de los controles data-aware. Identico ocurre con CUALQUIER control en Delphi.

El problema es que el modelo RAD hace facil e invita a escribir directo en reaccion a un evento. Sin los data-awre es identico: Igual ocurre en VB y otros IDES con ideas similares.

Eso es un defecto inhato en cualquier IDE que no promueve separacion, como ocurre en contraste con XCode (donde este tiene claramente delineados el modelo MVC).

----

Un problema similar sufre .NET con Asp.net, que se ha corregido con Asp.NET MVC....

Osea, es factible tener un "Delphi MVC" que incluya la plomeria necesaria para promover un diseño mas sano.
__________________
El malabarista.
Responder Con Cita
  #9  
Antiguo 28-08-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Al González Ver Mensaje
En realidad la que está disponible es su versión precompilada DB.dcu (Data.DB.dcu). Dado que, tal como sucede con las versiones trial, no incluye la gran mayoría del código fuente de sus bibliotecas nativas.
Al, yo he expuesto lo que dice la hoja de especificaciones. Menciona que viene el .pas.
Es conocido y de esperarse que venga con muy pocos fuentes, que dicho sea de paso también lo aclaran en la hoja.

Cita:
Empezado por Caminante Ver Mensaje
Ahora que he cambiado a codetyphon estoy cambiando a un modelo de objetos pero unicamente porque no encuentro un componente que pueda igualar al clientdataset.


Saludos
No he usado TClientDataSet en Delphi, pero por lo poco que he "escuchado" el componente que se aproxima a su funcionalidad y que en teoría es el equivalente en Lazarus es el TBufDataSet. Tal vez esto ayude a aclarar algunas cosas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 28-08-2016
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Cita:
Empezado por Delphius Ver Mensaje
Al, yo he expuesto lo que dice la hoja de especificaciones. Menciona que viene el .pas.
Es conocido y de esperarse que venga con muy pocos fuentes, que dicho sea de paso también lo aclaran en la hoja.


No he usado TClientDataSet en Delphi, pero por lo poco que he "escuchado" el componente que se aproxima a su funcionalidad y que en teoría es el equivalente en Lazarus es el TBufDataSet. Tal vez esto ayude a aclarar algunas cosas.

Saludos,

Hola

Tambien habia leido sobre el TBufDataset pero su aproximacion al ClientDataset es aún limitada a mi parecer. Ademas que lo siento muy vinculado a los controles SQLDB (De él deriva el TSQlQuery).

A mi me gustaba usar el evento Beforeupdaterecord del Datasetprovider para personalizar la forma de aplicar las actualizaciones; pero en el bufdataset no existe un evento similar, es mas el metodo applyupdates es un procedimiento en vez de una funcion como en el clientdatset.

Saludos.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
Respuesta



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
Viernes 17 Junio 2016 ¡C++ Builder starter GRATIS¡ WHILENOTEOF Noticias 20 18-06-2016 17:12:03
Delphi XE3 Starter, ¿vale la pena? to_to Delphi para la web 4 09-01-2013 07:13:14
Donde descargo C++ o Delphi STARTER cmm07 Varios 8 23-07-2012 10:41:52
Builder y Delphi Starter Edition Neftali [Germán.Estévez] Noticias 68 17-02-2011 19:47:40


La franja horaria es GMT +2. Ahora son las 03:02:43.


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