Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2020
Avatar de Dexter182
Dexter182 Dexter182 is offline
Miembro
 
Registrado: jul 2005
Ubicación: Argentina
Posts: 95
Poder: 21
Dexter182 Va por buen camino
¡Muchísimas gracias a los 3!

Sus consejos y experiencias me sirven muchísimo!!!
Y me dan ánimos de meterle ganas a la migración.

Voy contestando:

Cita:
Empezado por MAXIUM Ver Mensaje
- Por otra parte, Lazarus no es tan compatible en librerías y proyectos al migrar desde Delphi.
OK. Lo tendré en cuenta.

Cita:
Empezado por MAXIUM Ver Mensaje
- Delphi Community no es tan gratis. Creo que la licencia la puedes usar por 1 año y luego renovarla hasta quién sabe cuando. Esa incertidumbre no me gusta.
También he pensado eso. Creería que siempre va a existir una versión Community o que al menos me dejarán seguir usando la que bajé.
Pero si, es algo que podría cambiar y no estaría bueno.

Cita:
Empezado por mamcx Ver Mensaje
Quedarse obsoleto no tiene sentido.
Digo esto para que vean que no hay que tenerle miedo a haces reescrituras.
¡Gracias por los consejos!

Cita:
Empezado por mamcx Ver Mensaje
Haz mini-experimentos en la nueva herramienta/plataforma, migrando un unico componente a ver que tal
Esa era la idea. Ir haciendo el cambio de a poco, pero tendré muy en cuenta esto.

Cita:
Empezado por mamcx Ver Mensaje
Empieza a limpiar, pulir y aclarar el código, quizás aplicando un auto-formater.
Me falta mucho por hacer, pero algo de eso ya he empezado a hacer en Delphi 7.
La migración también puede ser una buena excusa para mejorar aún más eso.

Cita:
Empezado por mamcx Ver Mensaje
Empieza a separar lógica de negocios de la parte UI. Casi todo eso va a pasar limpio a versiones mas modernas de delphi/freepascal. Si lo haces bien, deberías quedar con MENOS código que antes.
Esto no lo he echo y no se muy bien por dónde debería arrancar.
¿Algún artículo o libro que me aconsejes sobre el tema?

Cita:
Empezado por mamcx Ver Mensaje
De igual manera, refactoriza tu db para simplificar tu lógica de datos.

Y cómo manejas ambos proyectos a la vez? Si refactorizas lo que tienes, puedes hacerlo todo en un rama del control de codigo fuente!
¿A que te refieres con refactorizar mi bd y mi código fuente?

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Si tu aplicación no usa componentes de terceros y el código es bastante estandard no deberías tener mayores problemas. Otro tema es la Base de datos y componentes de conexión que estés utilizando.
No das muchos detalles en ese sentido, cosas que son importantes para evaluuar la decisión.
Por suerte tengo sólo 2 componentes de 3 terceros en un sólo form, que los puedo reemplazar fácil porque no son indispensables.
Tendría que ver el tema de los reportes (usaba Rave) pero ya estuve leyendo en este foro sobre alternativas.
La Base de datos es Access y accedo a ella a través de ADO.

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
No comentas nada de la estructura de tu aplicación y del volumen que tiene.
No es lo mismo migrar una aplicación con 20 formularios que con 200.
Los forms importantes deben ser menos de 20. Y en total no creo que llegue a los 30 forms.

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Puedes extraer código a DLLs o BPLs de forma paulatina. Posteriormente ir migrando la interficie a una nueva versión, mientras comporates código que has extraído.
Esto me interesó mucho. ¿Esas BPLs las puedo ir desarrollando en Lazarus o los Delphi nuevos y llamarlas desde Delphi 7?.
Me pondré a investigar sobre el tema.


Vuelvo a agradecer todos los consejos.
Los aprecio muchísimo, ya que yo programo por hobby.

Porque la verdad que sería más fácil comprarme un programa y listo.
Pero nada más lindo que poder modificar y actualizar el programa que uso todos los días.


Saludos!!!
Responder Con Cita
  #2  
Antiguo 10-06-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Dexter182 Ver Mensaje
Esto me interesó mucho. ¿Esas BPLs las puedo ir desarrollando en Lazarus o los Delphi nuevos y llamarlas desde Delphi 7?.
Las BPLs son muy espcificas no solo de delphi sino de su version. Asi que superficialmente, no. Sin embargo, notaras como un monton de componentes se pueden instalar en multiples versiones de Delphi/Freepascal.

Como?

Hace una BPLs por version y desde cada una referencia el codigo compartido. Algo asi como:

Código Delphi [-]
my_lib.pas
my_lib.D7.bpl
my_lib.D2017.bpl
my_lib.FPascal..??? //no me acuerdo como lo hacen en FP!

Asi que a la final es un feliz si

Cita:
Empezado por Dexter182 Ver Mensaje
La Base de datos es Access y accedo a ella a través de ADO.
Esto es lo que migraría primero. Cambiate a Firebird, PostgreSQL o Sqlite. No solo son MUCHO mejor DBs, sino que ademas te abren el mundo a correr parte del proyecto en la nube/linux y si es sqlite ios/android. Afortunadamente lo limitado de access hace facil la propuesta, no deberias tener mucho codigo propietario problematico.

Ahora bien, puedes no migrar tu proyecto actual y solo hacerlo en el nuevo, que es mejor en cuanto a que no te estresas justo ahora.

Cita:
Empezado por Dexter182 Ver Mensaje
Esto no lo he echo y no se muy bien por dónde debería arrancar.
¿Algún artículo o libro que me aconsejes sobre el tema?
¿A que te refieres con refactorizar mi bd y mi código fuente?

El libro mas recomendado para este tema es https://www.amazon.com/Working-Effec.../dp/0131177052.

Pero en general es muy simple. En el caso de Delphi siendo un lenguaje OO mira los principios de SOLID:

https://es.wikipedia.org/wiki/SOLID

Deberias al menos tener un "2 niveles" logico, en vez de combinar strings y armar sql en todos lados, deberias tener una unica clase (o conjunto cerrado) como

Código Delphi [-]
//Antes
dataset.sql = "" //armando sql a lo bestia
dataset.open

//Despues

//Logica datos y sql solamente....
TDatos.listado(sql:String ..) //clase generica datos

TClientes.lista_clientes(...) //clase concreta
begin
   TDatos.listado(...)
end

//formas o unit testing o controlador web o lo que sea!
dataset = TClientes.lista_clientes(...)

Investiga sobre el tema de refactorizacion y hacer codigo testeable. Si tu codigo se puede testear sin problemas, al 100% que esta bien separado.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 11-06-2020
Avatar de Dexter182
Dexter182 Dexter182 is offline
Miembro
 
Registrado: jul 2005
Ubicación: Argentina
Posts: 95
Poder: 21
Dexter182 Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
en vez de combinar strings y armar sql en todos lados
Este... bueno, creo que tengo bastante trabajo por hacer.

Cita:
Empezado por mamcx Ver Mensaje
Investiga sobre el tema de refactorizacion y hacer codigo testeable. Si tu codigo se puede testear sin problemas, al 100% que esta bien separado.
OK. Muchas gracias!
El link que me pasaste de Amazon me sugirió dos libros más que también tienen muy buena pinta:
- Clean Code (Robert C. Martin)
- Refactoring: Improving the Design of Existing Code (Martin Fowler)

Agradezco muchísimo la información que me han pasado.

Voy a empezar por leer y hacer apuntes de las cosas tengo que corregir.

Luego empezaré de a poco a hacer la migración y las pruebas (una vez que tenga más en claro por dónde arrancar).
De momento este hilo me ha dado muchísimas ideas.

Saludos y nuevamente gracias!!!!!
Responder Con Cita
  #4  
Antiguo 11-06-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Dexter182 Ver Mensaje
Por suerte tengo sólo 2 componentes de 3 terceros en un sólo form, que los puedo reemplazar fácil porque no son indispensables.
Tendría que ver el tema de los reportes (usaba Rave) pero ya estuve leyendo en este foro sobre alternativas.
La Base de datos es Access y accedo a ella a través de ADO.


En ese caso yo haría una pruebas (puedes usar la versión Community), porque a lo mejor te llevas una sorpresa y la migración es más sencilla de lo que te esperas.
Las nuevas versiones incluyen ADO, así que por ahí no tendrás problemas. Deshabilita la parte de Rave y revisa los 2 o 3 componentes (si compilan, si hay versión nueva o si puedes deshabilitarlos), porque a lo mejor consigues migrar con poco trabajo.
Yo tengo proyectos que compilan sin cambios en Delphi6 hasta Delphi 10.3 Rio.

Al menos te dará una idea de lo que te puede costar.


Luego si realmente lo migras, ya puedes cambiar a FireDAC, tal y como comenta [mamcx], aunque para programas pequeños, yo he usado ADO+Jet y no funciona mal. Si necesitas más rendimiento si que debes plantearte ir hacia un SGBD "serio".


Cita:
Empezado por Dexter182 Ver Mensaje
Los forms importantes deben ser menos de 20. Y en total no creo que llegue a los 30 forms.

Pues si no usas componentes de terceros y "cosas externas", deberías poder abrirlos en nuevas verisones sin problemas. Y si tienes que hacer algún cambio tampoco son muchos.



Cita:
Empezado por Dexter182 Ver Mensaje
Esto me interesó mucho. ¿Esas BPLs las puedo ir desarrollando en Lazarus o los Delphi nuevos y llamarlas desde Delphi 7?.
Me pondré a investigar sobre el tema.

La respuesta tal y como comenta [mamcx] es que NO puedes llamar a una BPL hecha en Delphi 10.3 desde un ejecutable hecho en D6. Al menos con las ventajas de ua BPL. Si ese es el caso, deberías usar DLL's.
Tal vez no me expliqué bien.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 11-06-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
La respuesta tal y como comenta [mamcx] es que NO puedes llamar a una BPL hecha en Delphi 10.3 desde un ejecutable hecho en D6. Al menos con las ventajas de ua BPL. Si ese es el caso, deberías usar DLL's.
Tal vez no me expliqué bien.
No, lo que dije es que para que se pueda, debes crear un proyecto BPL por CADA version que quieres compilar (uno para 7, otro para 2007, etc) y el codigo compartido lo linkeas en cada uno de los proyectos. Notaras que asi lo hacen las librerias de componentes (y probablemente usando compilacion condicional para ajustes)
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 11-06-2020
Avatar de Dexter182
Dexter182 Dexter182 is offline
Miembro
 
Registrado: jul 2005
Ubicación: Argentina
Posts: 95
Poder: 21
Dexter182 Va por buen camino
¡¡¡Muchas gracias Germán y mamcx!!!

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
En ese caso yo haría una pruebas (puedes usar la versión Community), porque a lo mejor te llevas una sorpresa y la migración es más sencilla de lo que te esperas.
Si, voy a esperar a que salga la nueva versión de la Community y voy a probar a hacer eso como para tener un panorama de los problemas que pueda tener.

De mientras voy ganando tiempo leyendo y haciendo borradores de ideas en papel.
Ayer ya empecé con eso. Me puse ansioso.

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Luego si realmente lo migras, ya puedes cambiar a FireDAC, tal y como comenta [mamcx], aunque para programas pequeños, yo he usado ADO+Jet y no funciona mal. Si necesitas más rendimiento si que debes plantearte ir hacia un SGBD "serio".
Si compila, creo que al principio dejaré ADO.
Aprovecharé la migración para hacer "limpieza" y una vez que tenga todo más prolijo estudiaré bien el tema de cambiar de BD.
Aparte de FireDAC me interesó mucho lo de SQLite.

Con el tema de las DLL/BPL, quizás sería mejor pasar a BPL las cosas de Delphi 7 que no tenga en Delphi 10.
Creo que pasaré a BPL la parte de RAVE, que no es mucha y es la parte más engorrosa del programa.

Saludos y mil gracias de nuevo!!!!
Responder Con Cita
  #7  
Antiguo 11-06-2020
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Dexter182 Ver Mensaje
Aparte de FireDAC me interesó mucho lo de SQLite.
Si va a ser multiusuario, sqlite no es la mejor opción.
Responder Con Cita
  #8  
Antiguo 11-06-2020
Avatar de Dexter182
Dexter182 Dexter182 is offline
Miembro
 
Registrado: jul 2005
Ubicación: Argentina
Posts: 95
Poder: 21
Dexter182 Va por buen camino
Muchas gracias Casimiro!
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Si va a ser multiusuario, sqlite no es la mejor opción.
De momento, al programa lo uso yo solo, pero no está de más saber esto.


Saludos!
Responder Con Cita
  #9  
Antiguo 11-06-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Si va a ser multiusuario, sqlite no es la mejor opción.
No desde hace varias versiones: https://sqlite.org/threadsafe.html.

Y el "problema" no es tan multiples usuarios sino múltiples hilos/programas.

Ahora, si estamos hablando de MUCHISIMOS usuarios hay si no es tan bueno
__________________
El malabarista.
Responder Con Cita
  #10  
Antiguo 11-06-2020
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Sí, tengo hecho proyectos Android con Sqlite en modo multiusuario y están funcionando perfectamente.
Pero para eso es mejor usar Firebird o PostgreSql, como bien sabes.
Responder Con Cita
  #11  
Antiguo 12-06-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Dexter182 Ver Mensaje
Si, voy a esperar a que salga la nueva versión de la Community y voy a probar a hacer eso como para tener un panorama de los problemas que pueda tener.

La nueva versión Community es posible que tarde unos meses.
Puedes descargar la actual, empezar con la pruebas, y cuando salga la nueva, compilará seguro sin problemas, lo que estés haciendo con la 10.3.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 12-06-2020
Avatar de Dexter182
Dexter182 Dexter182 is offline
Miembro
 
Registrado: jul 2005
Ubicación: Argentina
Posts: 95
Poder: 21
Dexter182 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
La nueva versión Community es posible que tarde unos meses.
Puedes descargar la actual, empezar con la pruebas, y cuando salga la nueva, compilará seguro sin problemas, lo que estés haciendo con la 10.3.
OK Germán. Gracias.
Entonces el fin de semana me bajo la actual para ir probando y de paso les cuento como me fue.
Saludos!
Responder Con Cita
  #13  
Antiguo 19-06-2020
Avatar de Dexter182
Dexter182 Dexter182 is offline
Miembro
 
Registrado: jul 2005
Ubicación: Argentina
Posts: 95
Poder: 21
Dexter182 Va por buen camino
Buenas!

Quería decirles que estuve jugando con Delphi Community y el programa compila sin hacer prácticamente ningún cambio (solo quitando la parte de los reportes y los componentes de terceros).
Obviamente que habría que probar exhaustivamente todo para estar seguro, pero que compile ya es una buena noticia.
Me hace algunos defectos estéticos que luego iré viendo como acomodo (algunos son detalles tontos; por ejemplo en los DbGrid y StringGrid lo solucioné con el DrawingStyle en "gdsClassic").

En Lazarus no tuve tanta suerte. Tendría que hacer muchos cambios para que al menos compile.
Igualmente cuando terminé la limpieza del código voy a intentarlo de nuevo.

PD: Que lindo que es el StringGrid que trae Lazarus. Tiene prácticamente todo lo que he tenido que buscar en componentes de terceros. ¿Por que Delphi prácticamente no ha agregado características a este componente?.


Saludos!
Responder Con Cita
  #14  
Antiguo 12-06-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
No, lo que dije es que para que se pueda, debes crear un proyecto BPL por CADA version que quieres compilar (uno para 7, otro para 2007, etc) y el codigo compartido lo linkeas en cada uno de los proyectos. Notaras que asi lo hacen las librerias de componentes (y probablemente usando compilacion condicional para ajustes)

Lo se y eso quería decir (parece que en este hilo me estoy explicando fatal).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Migrar a... Pollo2004 Varios 2 19-03-2009 19:05:48
Migrar d5 a dx tcp_ip_es Varios 6 25-06-2008 07:49:48
Migrar BDE a ADO estebanx Conexión con bases de datos 1 25-07-2007 04:06:45
Migrar de ZIP -> RAR ANG4L Varios 5 21-02-2007 16:52:26
Migrar de VCL a CLX naruto C++ Builder 2 31-10-2006 00:59:25


La franja horaria es GMT +2. Ahora son las 05:11:26.


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