Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Un veterano novato con intencion de migrar de D7 a D10 (https://www.clubdelphi.com/foros/showthread.php?t=94190)

ArtPortEsp 24-09-2019 20:23:21

Un veterano novato con intencion de migrar de D7 a D10
 
Tengo ya varios años desarrollando en D7... y por fin he decidido (empujado por el miedo a quedarme totalmente obsoleto a brincar a D10)...

alguna guia rapida para iniciarme en ello?

movorack 24-09-2019 21:44:37

Hola, ArtPortEsp

Es posible que algo de esto te ayude

ArtPortEsp 24-09-2019 23:10:12

Gracias buen hombre

Javierus 25-09-2019 01:55:09

Hola :)

Yo estoy migrando de D5 a D10, así que te entiendo muy bien.

Lo más importante es : ¿vas a migrar tú o vas a migrar tus aplicaciones? Lo segundo sería, ¿Estás habituado a usar tablas o queries?

Cita:

Empezado por ArtPortEsp (Mensaje 533579)
Tengo ya varios años desarrollando en D7... y por fin he decidido (empujado por el miedo a quedarme totalmente obsoleto a brincar a D10)...

alguna guia rapida para iniciarme en ello?


ArtPortEsp 25-09-2019 02:05:06

Cita:

Empezado por Javierus (Mensaje 533583)
Hola :)

Yo estoy migrando de D5 a D10, así que te entiendo muy bien.

Lo más importante es : ¿vas a migrar tú o vas a migrar tus aplicaciones? Lo segundo sería, ¿Estás habituado a usar tablas o queries?

Voy a migrar yo y un varias aplicaciones....

Si, uso MySQL... por?

ElKurgan 25-09-2019 06:53:53

Otra cosa a tener en cuenta es el uso de dlls externas que puedan tener tus aplicaciones. Con el cambio a Unicode (desde Delphi 2009 más o menos), los antiguos String son ahora AnsiString, los antiguos PChar son ahora PAnsiChar, y los WideString son ahora los String normales.

Eso a veces supone un enorme quebradero de cabeza

Saludos

Javierus 25-09-2019 11:08:56

Cita:

Empezado por ArtPortEsp (Mensaje 533584)
Voy a migrar yo y un varias aplicaciones....
Si, uso MySQL... por?

Porque si usases TTable, entonces sería mucho más complicado.

En mi caso, lo que tenía que adaptar aplicaciones lo que he hecho es usar una única base de código, con condicionales para distinguir el código que corresponde a la versión vieja de Delphi, del de la moderna.

Utilizo dos copias de los fuentes, con una para cada versión, con un comparador, el Beyond Compare. Esto me permite hacer modificaciones en la versión nueva, comparar los fuentes, y realizar en los fuentes "viejos" los cambios necesarios para que funcione en ambas versiones (quizás con condicionales). Los DFM tienes que tenerlos en modo texto, y debes quedarte siempre con los de la versión vieja, porque los de la vieja van en la nueva, pero los de la nueva no van en la vieja.

Si usas librerías de terceros, entonces debes asegurarte de que haya versiones de todas ellas para la versión de Delphi que vayas a usar; si falta alguna, si puedes prescindir de ella, hazlo, y si no puedes, adáptala a D10 o sustitúyela por otra.

Puede que tengas componentes con propiedades que existen en la vieja y no en la nueva, como pasa con TkbmMemTable. Una posibilidad ahí es crearte un componente nuevo, p.ej. TkbmMemTableMIO, y sustituir uno por el otro en todos los .pas y .dfm. En la implementación del mismo para D10, le añades las propiedades que faltan, como propiedades que no hacen nada, e incluso que no se graban en el dfm. De ese modo no te dará error al abrir los formularios.

En la práctica, la adaptación ha supuesto para mí modificar los fuentes originales (en producción) hasta conseguir unos fuentes que funcionen en ambas.

En cuanto al Unicode, te dará dolores de cabeza, pero acabarás por salir adelante, vía pruebas del código.

También he tenido que crear varias unidades de apoyo, que me permitiesen resolver incompatibilidades sin tener que recurrir a montones de IFDEF. Por ejemplo, en D10 se recomienda CharInSet en vez de (x in ['a..'z','A'..'Z']). He implementado una función CharInSet en D5, en una unidad de "StringTools", y he modificado tooodos los sitios en los que usaba la notación de sets por la de CharInSet, de modo que el código funcione en ambas versiones. Lo mismo con ShortDateFormat, etc. Se tratan de forma distinta, y he implementado una "DateTools" que me permitiese usar el mismo fuente en mis unidades

Ánimo y suerte :)

Neftali [Germán.Estévez] 25-09-2019 13:13:18

Cita:

Empezado por ArtPortEsp (Mensaje 533579)
Tengo ya varios años desarrollando en D7... y por fin he decidido (empujado por el miedo a quedarme totalmente obsoleto a brincar a D10)...
Alguna guia rapida para iniciarme en ello?

Hombre así de pronto es muy genérico. Cada aplicación es un mundo.
Por ejemplo, algunas cosas importantes.

* ¿Usas muchos componentes de terceros? Si es que si, ¿tienen versión para XE10?
* ¿Que acceso a Base de Datos estás usando ahora: ADO, BDE,..?
* ¿Qué Base de Datos estás utilizando?
* Y luego para temas de UNICODE y ANSI dependerñá si en tu código trabajas mucho con punteros, arrays, Char, PChar, buffers,...
Para esto último puedes revisar:
https://www.embarcadero.com/images/d...-migration.pdf
http://docwiki.embarcadero.com/RADSt..._in_RAD_Studio

ArtPortEsp 25-09-2019 17:50:30

Bueno...

asi de entrada creo que me espera mucho trabajo por delante....

gracias a todos (Javierus, Neftali, movorack, ElKurgan)

creo que aprovechare la coyuntura y recreare mi aplicación principal en la nueva versión; sirve que le doy una manita de gato y aprovecho las nuevas características (y de paso voy aprendiendo).

He oído hablar mucho de FireMonkey y veo en el IDE que hay varias opciones de iniciar el proyecto aparte de la ya conocida VCL...

Tambien tengo curiosidad en entrar con el tema de IntraWeb (que no lo he usado nunca) y ver si puedo hacer mi aplicación para WEB (cosa que he logrado en forma parcial y no del todo satisfactoria con NodeJS y Angular7)

Le tengo fe a la plataforma que me ha dado de comer por tantos años y creo que esta version XE10 tiene gran potencial, uds. que opinan?

gatosoft 25-09-2019 18:15:19

Cita:

Empezado por ElKurgan (Mensaje 533585)
Otra cosa a tener en cuenta es el uso de dlls externas que puedan tener tus aplicaciones. Con el cambio a Unicode (desde Delphi 2009 más o menos), los antiguos String son ahora AnsiString, los antiguos PChar son ahora PAnsiChar, y los WideString son ahora los String normales.

Eso a veces supone un enorme quebradero de cabeza

Saludos

Concuerdo con ElKurgan, el punto de quiebre es Delphi 2009 y todas las mejoras que de allí se desprenden...

Te sugiero, hacer primero una traducción de tu código y posteriormente dedicarte a las mejoras, es decir, perocupate por que el código viejo compile primero y luego afinas.

como dicen todos, los problemas pueden estar mas por el lado de los componentes de terceros... ya que muchos van perdiendo soporte por el camino.

También revisa el tema de componentes de base de datos... aunque en general casi todos operan igual, hay una que otra funcionalidad que no es tan comun... sucede mucho cuando intentas salir de BDE...

Mucha suerte y ánimo, vale la pena..!!!


La franja horaria es GMT +2. Ahora son las 05:38:08.

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