Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Migrar Aplicacion Delphi a Web (https://www.clubdelphi.com/foros/showthread.php?t=63018)

Bertifox2008 26-01-2009 16:48:32

Migrar Aplicacion Delphi a Web
 
Hola foristas, tengo la necesidad de migrar una aplicacion desarrollada en Delphi 2007 con BD interbase 2007 a una aplicacion Web con MySql, necesito algun tutorial o en su defecto alguna directriz departe de Uds.

Mi duda es si debo diseñar los Form nuevamente, si la logica de los procesos me sirven. O si debo desarrollar todo nuevamente, se trata de un sistema administrativo integrado de muchos form y report el cual tengo la imperiosa necesidad de ponerlo en funcionamento en la Web para todos lo usuarios autorizados.

Gracias por la atencion prestada...

Saludos

Neftali [Germán.Estévez] 26-01-2009 17:26:37

Cita:

Empezado por Bertifox2008 (Mensaje 335934)
Mi duda es si debo diseñar los Form nuevamente, si la logica de los procesos me sirven. O si debo desarrollar todo nuevamente, se trata de un sistema administrativo integrado de muchos form y report el cual tengo la imperiosa necesidad de ponerlo en funcionamento en la Web para todos lo usuarios autorizados.

No soy experto en el tema, pero solución creo que solución directa y única no hay.

(1)
Se me ocurre que podrías intentar programar la misma aplicación utilizando Delphi + Intraweb. Estarías muy limitado por los componentes y los Reports habría que pensar cómo hacerlos. Con esto podrías aprovechar bastante lógica.

(2)
Si cambias de lenguaje (tal vez Delphi no es el más adecuado para Web), pues tendrás que programar todo; No podrás aprovechar nada (tal vez PHP, JAVA, NET,...)

(3)
Otra opción que se me ocurre es que revises Terminal Server. Puedes colocar tu aplicación en un servidor y en las máquinas el cliente de Terminal Server. Hay un cliente web, así que por ahí podrías conectar al servidor y trabajar. Con eso podrías utilizar la aplicación tal como la tienes ahora, aunque debes montar el sistema de TS y tener en cuenta costos y máquina Servidor.

A mi no se me ocurren más soluciones/opciones. Que digan los demás...

Kipow 26-01-2009 17:57:05

Sin tener que reprogramar mucho diria que la opcion que te da Neftali de los Terminal Services es una buena opcion.

Tambien podrias hacer que los usuarios con el sistema instalado en sus pcs, se conectaran remotamente a tu bd. Todo es cuestion de manejar bien los privilegios/seguridad/permisos de uso de la aplicacion.

Bertifox2008 26-01-2009 20:39:42

Gracias por la pronta respuesta.

La opcion 1 me parece, la mas adecuada, aunque tenga que hacer cambios, sobre todo en lo referente a report, pero no me queda claro si debo hacer los form de nuevo.

La opcion 2 la descarto por que tener que programar todo de cero me llevaria años.

En cuanto a la tercera opcion, la verdad que no entendi nada, nunca he utilizado terminal Server.

Les rogaria, si me recomiendan algun instructivo para la implementacion de las opciones 1 y 3.

Muchas gracias por su gran aporte..

Kipow 26-01-2009 20:43:49

En la opcion (1) si que tendrias que reprogramar toda la parte visual (frontend) digase todos los formularios. Los reportes pues dependeria de que reporteador utilizas actualmente podrias colocarles que se exportaran como html y armar un tu servidor de reportes. (hay que trabajar pero no tanto como rehacer todos los reportes).

En la opcion (3) terminal services es un servicio de escritorio remoto de Windows Server. lo que te recomienda Neftali es que todos tus usuarios se conecten por medio de una sesion de escritorio remoto hacia el servidor.

Bertifox2008 26-01-2009 21:10:20

Gracias Kipou, la primera opcion me parece la mas factible, para los report utilizo Qreport la cual tiene la opcion de exportar a varios formatos, por ese lado no habria problema, ahora con los forms tendria que diseñarlos nuevamente y aplicar la programacion Delphi que existe (upongo que se puede). Ahora vere si existe algun utilitario que puede exportar los form a xhtml o similar. si no tendre que darme el trabajo de crearlos nuevamente.

Les pido que me recomienden algun instructivo para convertir la aplicacion a intraweb.

Saludos

AzidRain 26-01-2009 21:59:19

Desgraciadamente un sistema de escritorio y uno web y mas si es hecho a medida no tienen forma de ser "intercambiables" salvo que así se hubieren diseñado desde el principio. A lo mucho lo que pudieras aprovechar sería la base de datos pero dato que usas Interbase en este caso no es posible.

El modelado y diseño que hiciste para tu aplicación Delphi es completamente diferente al modelado que se haría para una aplicación web que hiciera exactamente lo mismo. Simplemente pareciera que son dos mundos distintos, muchas cosas que con Delphi hacemos en tres patadas y con mucha soltura, en una aplicación web (en el lenguaje que sea) nos tomará un buen tanto de líneas adicionales y muchas veces no lograremos replicar el mismo comportamiento.

Hoy en día con Ajax, Flash y demás tecnologías, es posible replicar casi totalmente el funcionamiento de una aplicación de escritorio, sin embargo se requiere mucho más programación de la que estás acostumbrado.

Un punto aparte merecen los reportes, hasta hoy no hay una panacea para generar reportes web, y mas en tu caso que has venido usando QReport, diseñado ex-profeso para aplicaciones desktop.

Sencillamente no hay vuelta de hoja, tienes que retomar el modelo que hiciste para tu aplicación y adaptarlo a las características web y de ahi partir en nuevo diseño, sí, hay que codificar todo prácticamente desde cero y aunque hay formas de hacer que Delphi funcione en la web sencillamente no es su fuerte y tenemos que optar por otras herramientas, lo que nos lleva a otra interrogante: qué utilizar.

Si tienes experiencia programando web o tienes en tu equipo alguién con ese conocimento, sin duda puedes afrontar el reto, de lo contrario ni te metas. Aunque no es "rocket science" dijeran los gringos o "la gran ciencia" los españoles, si requiere su tiempo entender y aplicar como funciona una aplicación web.

Respecto a tu base de datos, ve pensando en un motor con soporte internet, estoy pensando que te sirva Firebird pero bueno ya tendrías que revisarlo a detalle.

Otra cosa, me doy cuenta por tu último mensaje que lo que buscas es realmente muy difcil de lograr, ya que por ejemplo el concepto de "forms" no existe en aplicaciones web como tal. Dados sus fundamentos todo lo que se te ocurra tiene que reducirse a simples páginas html y más nada.

Pero sin duda es un reto interesante y ojalá entre todos encontremos alguna forma sencilla de hacer algo similar, ya que no eres el único a quien le ha pasado.


Por último, ¿Por que no lo sugieres a tu cliente el modificarle esa aplicación para que funcione como un Thick Client, es decir, un programa desktop que lee y escribe datos en una base de datos en internet. De esta forma pueden usar el programa tal como lo tienes pero sin importar en que lugar del planeta se encuentren. Tiene sus asegunes, pero prácticamente no tendrías que cambiar mucho para ello, salvo el motor de BD e instalar un servidor.

mamcx 27-01-2009 01:33:02

Y bueno... que es lo que se quiere y porque?

Lo pregunto porque muchas veces "necesito cambiar a web" es mas por una presion de marketing que porque REALMENTE haya que hacerlo.

Sinceramente, solo hay UNA y UNA SOLA RAZON para hacer una aplicacion web:

Soporta cientos/miles de usuarios por minuto, es de acceso masivo (ie: facebook), es muy simple en su interaccion, no requiere PARA NADA acceder fisicamente la maquina (como por ejemplo: Lector de codigo de barras), y se esta dispuesto a incurrir en todos los costos relacionados.

AzidRain 27-01-2009 01:47:22

gracias mamcx...haz dado en lo que comentar..precisamente es lo que quería transmitir...

poyo 27-01-2009 02:28:45

recién leí este hilo y me acordé de algo y me picó el bichito de la curiosidad... así que decidí abrir abrí otro hilo:

http://www.clubdelphi.com/foros/showthread.php?p=336014

Bueno, la opción de un Terminal Server, particularmente si se trabaja desde una intranet, es una buena alternativa.

[Off Topic]
...mmmm.... otra duda: hay clientes de "Windows Terminal Server" para Linux, no?
[/Off Topic]

Neftali [Germán.Estévez] 27-01-2009 11:10:11

Cita:

Empezado por poyo (Mensaje 336016)
...mmmm.... otra duda: hay clientes de "Windows Terminal Server" para Linux, no?

Hace un tiempo probé instalé una máquina con Ubuntu en el trabajo para probar y una de las primeras cosas que vi fue la conexión a Terminal Server. Me dió por probrla y "voilà"; Perfecto. :D:D
El cliente Web también funciona muy bien.
Link (acceso desde Beryl) y aquí uno desde ubuntu.

Cita:

Empezado por Bertifox2008 (Mensaje 335970)
La opcion 1 me parece, la mas adecuada, aunque tenga que hacer cambios, sobre todo en lo referente a report, pero no me queda claro si debo hacer los form de nuevo.

Les rogaria, si me recomiendan algun instructivo para la implementacion de las opciones 1 y 3.

Entes de continuar, creo que debes tener claro qué es lo que quieres:
(1) Tener una aplicación WEB que haga lo mismo que hace la tuya ahora.
(2) Que se pueda ejecutar tu aplicación actual desde otros ordenadores; Y para ello utilizar "la WEB" o una intranet.

Si la respuesta es 1, debe reprogramar.
Piensa que si utilizas intraweb debes reprogramar de nuevo la Interface de tu aplicación. Utilizas Delphi, pero los componentes de Intraweb son Limitados. Todo debes hacerlo de nuevo, simplemente que ciertas funciones y partes de código te pueden servir. Te recomiendo que te bajas la demos compiladas y les eches un vistazo.

Si la respuesta es 2 creo que Terminal Server es lo que te conviene, ya que significa cambiar 0 líneas de código y en 2 días puedes tener tu aplicación disponible.
Se trata de instalar en un Server tu aplicación y desde los clientes, sea el programa o mediante interface Web acceder a Terminal Server. Lo que obtienes en ese momento es un escritorio remoto. En ese punto ejecutas tu aplicación. Revisa documentación o mira algunos videos (en youtube puedes encontra muchos) y te dará una idea de lo que puedes obtener.

Un saludo.

Bertifox2008 27-01-2009 15:14:04

para AZIDRAIN y MAMCX.
Colegas, cuando diseñe el sistema, lo hice hace +-20 años atrás usando clipper en red novell, luego el mismo diseño lo desarrolle en delphi 3 C/S, luego a D5, como veras las tecnologías cambiaran siempre, ahora tengo la necesidad utilizar Internet no por capricho ni marketing, deseo dar acceso al sistema a quien quiera utilizarlo y para esto solo es posible por la Web, logre compilar el sistema desde D5 a D2007, y me di cuenta de D2007 es muy potente en la programación para Web, solo quiero intentar aprovechar todo ese tiempo invertido en lograr en reutilizar aunque sea en parte los viejos programas. Si esto no es posible creo que utilizare la solución de Terminal Server la cual es la más inmediata y me dara tiempo para enfrentar un nuevo desarrollo.


Una vez mas gracias a todos por sus opiones, todas son valoradas.

:D

Bertifox2008 27-01-2009 15:16:45

Gracias poyo por tu aporte, dare un vistazo al hilo

Bertifox2008 27-01-2009 16:14:00

Cita:

Entes de continuar, creo que debes tener claro qué es lo que quieres:
(1) Tener una aplicación WEB que haga lo mismo que hace la tuya ahora.
(2) Que se pueda ejecutar tu aplicación actual desde otros ordenadores; Y para ello utilizar "la WEB" o una intranet.

Naftali, tomando en cuenta las todas las opinones, tome una decision la cual es la segunda opcion, para esto pienso instalar un Servidor Linux propio, aun que existen servicios hosting de servidor virtual (VPS). Actualmente en mi aplicacion utilizo un DataModule que conecta a la BD por BDE, solo cambiare esto por algun componente (Zeos o DBExpress).

Tendre que investigar como hacer que el cliente se conecte por TS. espero que camine bien, de todos modos comentare una vez realizado.

A pesar de todo esto no renunciare a la opcion 1, aunque sinifique comenzar desde cero, pues me parece un desafio concretar este proyecto, que sin dudas me permitira dar unos cuantos pasos en esto que nos apasiona, la programacion.

Un gran saludo y muchas gracias a todos!!

Neftali [Germán.Estévez] 27-01-2009 17:24:27

Cita:

Empezado por Bertifox2008 (Mensaje 336083)
Neftali, tomando en cuenta las todas las opinones, tome una decision la cual es la segunda opcion, para esto pienso instalar un Servidor Linux propio

Antes de continuar revisa la documentación de Terminal Server (wiki).
Terminal Server necesita ser instalado en un equipo con Windows Server (varias versiones) y no es una opción gratuíta.
Los clientes sí pueden ser máquinas Windows o no, pero que yo sepa el servidor debe tener Windows instalado.

fcios 22-11-2009 07:51:14

Tambien podés instalar el Sala´s Terminal Server www.kood.org/terminal-server-patch , freeware que convierte el XP en un servidor de terminal servers ilimitados, anda excelente, en las terminales podes inclusive instalar ubuntu y nada mas.

Casimiro Notevi 29-11-2017 12:28:01

Cita:

Empezado por S8VK (Mensaje 522973)
Hola

Crea un hilo nuevo. Lee nuestra guía de estilo, gracias.

fjcg02 29-11-2017 14:19:48

Casi, +1 ...

:D


La franja horaria es GMT +2. Ahora son las 12:12:42.

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