PDA

Ver la Versión Completa : Dividir la Aplicacion en Partes


brandolin
07-07-2005, 04:08:44
Hola a todos, les comento el problema que tengo esperando hacerme entender y recurrir a ustedes por alguna respuesta.

Tengo una aplicacion desarrollada en Delphi 7 la cual tiene sus forms, datamodule, etc etc y esta genera su correspondiente EX de algo asi de 7 MB. EL problema es que se esta cambiando los forms constantemente y se esta desarrollando algunas partes nuevamente. Lo que implica que cada vez que se debe hacer algun cambio en un form debemos llevar a nuestros clientes todos los 7MB del EXE nuevo.

La idea seria dividir a este EXE en un EXE pequeño y varias librerias (como DLL). Hemos probado las DLL pero son dificiles de depurar en tiempo de diseño y se complica la comunicacion y llamadas a otras parte de la aplicacion. Ademas perdemos el acceso a las propiedades de algunos forms por que quedan ocultos por la interfece de la Dll.

Tambien probamos con los Packages (DPK) aparentemente estaseria la mejor opcion pero surgen varias dudas ya que generamos un EXE pequeño pero en los clientes nos piden un monton de DPL que viene con Delphi (rtl*.dpt, etc etc) cosa que no quisieramos tener que distribuir estos.

Ademas con estos DPK se nos complica el desarrollo en tiempo de ejecucion por la compilacion de los mismos.

Alguna idea de como solucionar estos ? o mejor dicho... a alguien le ha pasado lo mismo, ¿como lo solucionaron? ¿de donde puedo conseguir info del manejo de estos DPK?

desde ya muchas gracias

mamcx
07-07-2005, 04:54:18
Hay varias formas de resolver el problema:

1- Sigue con los paquetes. Recuerda que delphi es un compilador, asi que puedes compilar los paquetes que sean estaticos o que no cambian (como los de Delphi) y dejar el resto por aparte.

2- Usa una libreria de plugins. Por ejemplo en

http://www.remobjects.com/page.asp?id={84F6BA20-8322-4C2F-8D22-4409CD6DCDA6}

http://www.tmssoftware.com/

3- Usar una libreria de scripts que soporte forms

4- Crear los formularios basados en archivos externos... o sea una version de usar los scripts...

5- Usa un componente que permite modificar los controles de los formularios en tiempo de diseño. Se mezcla con 3.

De google encuentro esto: http://www.greatis.com/delphicb/formdes/

y hay mas por ahi...

La mas barata es la 1 y la mas facil es la 2. La 3/4 es la mas dinamica pero solo justifica para cosas complejas. La 5 es entre la 2/4 y la 2 es facilidad.

En definitiva, de acuerdo al tiempo y dinero que tengas... :)

Neftali [Germán.Estévez]
07-07-2005, 09:42:54
A parte de las comentadas por MAMCX (estoy de acuerdo en todo), hay otra que no implica modificar nada del diseño, y que puede reducir el tamaño del ejecutable bastante. Se trata de utilizar un compresor de ejecutables. Lo expliqué detalladamente hace un tiempo, así que revisa éste hilo:

http://www.clubdelphi.com/foros/showpost.php?p=65216&postcount=3

mamcx
07-07-2005, 17:04:47
Y algo adicional: Puedes usar un componente que actualize el ejecutable de forma similar al windows update... de TMS Software hay uno que sale barato y por ahi existen otros mas. Si ademas los comprimes te queda mas pequeño y te alivia la redistribucion del sistema. Si buscas un poco mas, veras que hay componentes que hacen patchs (como lo que hizo Borland con el Update 3) un patch es la diferencia binaria entre dos archivos y luego se le aplica (similar a como se hace un diff y luego un merge en un sistema de control de codigo fuente)

brandolin
07-07-2005, 20:37:36
Gracias a todos, me he inclinado por la utilizacion de package y usare dinamocos y estaticos.

Basicamente lo que estaba evitando es distribuir los BPL que estan en Delphi. La idea era tener los archivos asi: aplicacion.exe, pack1.bpl, pack2.bpl, etc etc sin mas archivos a instalar, ahora veo que usando pack debo distribuir los rtl70.bpl, vcl.bpl, etc que es lo que queria evitar.

Estoy intentando con los pack dinamicos y ver que pasa. ¿Alguien tiene informacion o documentacion de como hacer programacion con pack correctamente?

Desde ya muchas gracias...

Neftali [Germán.Estévez]
08-07-2005, 10:02:14
Busca el artículo de "Vino Rodrígues" sobre packages en Internet; Seguro que lo encuentras sin problemas y está bastante bien.

brandolin
08-07-2005, 23:44:04
Si del articulo de "Vino Rodriguez" es que saque datos de los package dinamicos, el tema es que he podido hacer funcionar la aplicacion cuando se utilizan pack dinamicos y estáticos y cuando se utiliza un DataModule principal desde los Pack dinamicos.

Alguna ayudita, u otro artículo quizas??? :confused: