Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Existe el concepto de "PAQUETES" en Delphi? (https://www.clubdelphi.com/foros/showthread.php?t=61914)

rgstuamigo 26-11-2008 19:47:44

Existe el concepto de "PAQUETES" en Delphi?
 
Hola amigos del club, quisiera saber si en Delphi existe el concepto de "paquetes" para crear Modulos en las aplicasiones, es decir por ejemplo:
Tener EL MODULO O PAQUETE DE VENTAS,MODULO O PAQUETE DE INVENTARIO,PAQUETE DE COMPRAS,ETC,ETC; que son cada uno independiente pero que entre todos forman el Sistema entre si.
Pregunto esto por que desconosco si existe esa forma de trabajar en Delphi.
No quisiera crear un conflicto pero en java se trabaja de esta forma con los famosos "paquetes" para que la aplicasion pueda tener las diferentes capas.
Espero que me hayan entendido....;). ya que nesecito saber si se puede para poder implemetarlo en mi Aplicacion....
Muchas gracias de antemano.....:)

maeyanes 26-11-2008 19:52:39

Hola...

En Delphi tenemos el concepto de Packages que bien se podría utirlizar para lo que quieres...

Busca en el foro por pluging o por paquetes y deberás encontrar más información al respecto.



Saludos...

rgstuamigo 26-11-2008 20:04:50

Ya busque y no pude encontrar mucho que digamos, al parecer el concepto de "PAQUETE" en delphi se refiere a otra cosa y no a lo que me estoy refiriendo.
Parece ser que en Delphi el concepto de paquete se refiere mas especificamente a un grupo de componentes que pueden instalarse o crearse en el IDE.
Pero yo no me refiero a eso sino a la forma de trabajar en una aplicasion multicapa.
Espero haberme explicado...;)

Lepe 26-11-2008 21:52:10

Si existe, aunque se usa cuando el sistema es grande, muy grande diría yo. Para mí es grande si el .exe pesa más de 10 megas, pero vamos, es mi criterio.

Aquí un enlace para empezar, después puedes ir tirando del hilo ;)

Aquí otro, busca en el foro por "runtime package" (sin las comillas), algún hilo hablará de componentes, otros de datamodules y formularios... esos son los que te interesa ;).

xEsk 26-11-2008 21:57:01

La idea de paquetes (tal como en Java) en Delphi no existen. Pero de hecho los paquetes en Java (por lo que he visto hasta el momento) no dejan de ser directorios.

Una forma de "emular" esto, seria creando los directorios y meter las units dentro. Asi en el inspector del proyecto, lo puedes tener origanizado por "paquetes".

No se si se me ha entendido... xD

ContraVeneno 26-11-2008 22:03:59

De hecho, los paquetes (Packages) se pueden utilizar para las dos cosas, es decir, tienes paquetes de diseño ("Desing Package" - los componentes que instalas en Delphi) y tienes paquetes de ejecución (RunTime Package), que son los que te interesarían y que puedes crear en Delphi. También tienes los paquetes que son de diseño y ejecución, pero eso ya es más aparte.

Utilizando paquetes (packages) puedes de manera muy sencilla, hacer módulos para tu sistema, en pocas palabras, tendrías un ejecutable (archivo .exe) con el que cargues los paquetes (módulos de tu sistema). Puedes manejar versiones de prueba, estandar, avanzadas, modulares o como lo necesites, simplemente sería cuestión de organizar como distribuyes los archivos de los paquetes (archivos .bpl).

Aquí tienes un ejemplo muy claro sobres como trabajar con paquetes con el que te puedes basar para lograr lo que buscas.

rgstuamigo 26-11-2008 22:06:38

Cita:

Una forma de "emular" esto, seria creando los directorios y meter las units dentro. Asi en el inspector del proyecto, lo puedes tener origanizado por "paquetes".
Si yo habia pensado en eso pero la diferencia es que en Java lo puedes trabajar a nivel de capa, es mas se trabaja con Modelo-Vista-Controlador

y puedes poner en un paquete no solo Form(Frames en java)sino tambien unidades planas, osea sin form(Frame).
En cuanto a lo que dice Lepe me parece como lo he dicho antes que el concepto de Paquete en Delphi va relacionado con componentes.
Los hilo que he visto hablan de form(Componentes)y otros.

rgstuamigo 26-11-2008 22:37:37

Cita:

De hecho, los paquetes (Packages) se pueden utilizar para las dos cosas, es decir, tienes paquetes de diseño ("Desing Package" - los componentes que instalas en Delphi) y tienes paquetes de ejecución (RunTime Package), que son los que te interesarían y que puedes crear en Delphi. También tienes los paquetes que son de diseño y ejecución, pero eso ya es más aparte.

Utilizando paquetes (packages) puedes de manera muy sencilla, hacer módulos para tu sistema, en pocas palabras, tendrías un ejecutable (archivo .exe) con el que cargues los paquetes (módulos de tu sistema). Puedes manejar versiones de prueba, estandar, avanzadas, modulares o como lo necesites, simplemente sería cuestión de organizar como distribuyes los archivos de los paquetes (archivos .bpl).


Insisto todo lo que se ha dicho sobre los paquetes en Delphi(Paquetes dinamicos,etc)al parecer es a nivel de componentes.Si me equivoco corrijanme.;).

maeyanes 26-11-2008 22:42:58

Hola...

Si bien los paquetes mayormente se usan para instalar componentes en el IDE, como bien te comenta ContraVeneno, también se pueden usar para lo que quieres. Estos son los llamados paquete en tiempo de ejecución.

Un paquete puede contener unidades de funciones y procedimientos, clases y/o formas.

Podrías tener un paquete Ventas.bpl con una clase TVentas, la cual al instanciarla como un objeto te cree las formas y demás para tu módulo de ventas. De tal forma que si tu aplicación no encuentra el paquete "Ventas.bpl" no activa esa opción.

Revisa bien los enlaces que ya te han proporcionado y verás que si se puede hacer lo que quieres.



Saludos...

ContraVeneno 26-11-2008 22:46:57

Cita:

Empezado por rgstuamigo (Mensaje 328217)
Si me equivoco corrijanme.;).

Estas equivocado, te corrijo :D. Los paquetes como ya hemos mencionado, pueden ser de diseño y/o de ejecución. Por lo que veo, solo has visto/leído sobre paquetes de diseño. Lo que a ti te interesa son los paquetes de ejecución (Runtime packages).

En el enlace que te puse, viene un ejemplo bien claro sobre como utilizar los paquetes para lograr lo que tu quieres (paquetes cargados dinámicamente). Concretamente, al final de la página vienen los ejemplos utilizados en el artículo y el que más te debería interesar es el tercer ejemplo.

rgstuamigo 26-11-2008 23:27:59

Ok saco mis conclusiones:
Al parecer Delphi en un lenguaje mas orientado a componente por tanto el concepto de PAQUETE es diferente que otros Lenguajes por tal razon la opcion de crearse Paquetes es un poco tediosa pero se puede aunque es distinta la forma de trabajar.
Les agradesco su tiempo y sus comentarios.....;):)
Saludos.....

ContraVeneno 26-11-2008 23:37:51

será que no conozco como hacen en otros lenguajes, pero el método de Delphi a mi no me parece tedioso, la verdad es que utilizando paquetes puedes realizar eso que necesitas y mucho más.

Un ejemplo, con los archivos:

MiSistema.Exe .- Archivo ejecutable para cargar dinámicamente los paquetes
Conexion.bpl .- Paquete con las funciones necesarias para realizar una conexión a base de datos. Tanto el .exe como todos los .bpl utilizan este mismo archivo, por tanto tienes una misma conexión para todos los módulos.
Ventas.bpl .- Paquete con los formularios para el módulo de ventas
Clientes.bpl .- Paquete con los formulario para el catálogo de clientes

Ahora, en cada paquete puedes incluir el número de versión y puedes tener por ejemplo:
Ventas.bpl - Versión 1 - paquete de prueba, con solo las funciones necesarias.
Ventas.bpl - Versión 2 - Paquete completo y funcional.

Si un cliente quiere el módulo de clientes, solo le envías la aplicación y su módulo de clientes. Y aquí podrías incluir el paquete de ventas en su versión de prueba. Si a tu cliente le gusta, solo es necesario enviar el archivo de la versión completa del módulo de ventas, no requiere instalación ni nada extra, solo cambiar el paquete (archivo .bpl).

Es que tu comentario de "crear paquetes es tedioso" no le encuentro sentido o explicación. Yo he trabajo con paquetes de la misma manera en la que trabajarías con varios formularios en un solo ejecutable.

rgstuamigo 26-11-2008 23:53:00

Cita:

Es que tu comentario de "crear paquetes es tedioso" no le encuentro sentido o explicación. Yo he trabajo con paquetes de la misma manera en la que trabajarías con varios formularios en un solo ejecutable.
Te das cuenta contraveneno que estas hablando de Formularios(Componente), es lo que decia y recalcaba,:).
y aqui va una pregunta :
Y que pasa si quiero tener un paquete(Modulo de negocio) sin ningun formulario , es decir son puras unidades planas sin ni siquiera heredar de algun componentes?:confused:.¿Es posible hacerlo?
Por eso digo que el concepto es diferente entre un lenguaje y otro.

Héctor Randolph 27-11-2008 00:28:08

Los paquetes en tiempo de ejecución en Delphi generan bibliotecas (*.BPL) que son simplemente bibliotecas (*.DLL) con características especiales para cada versión de Delphi.

Dicho de otra manera, si solamente quieres incluir código compilado dentro de un paquete, obtendrás el mismo resultado que generar una DLL.

Sin embargo, la principal característica de los BPL, es precisamente que te permiten incluir las clases, formularios, componentes, recursos en general y llamarlos directamente desde Delphi sin mayor problema.

Saludos.

diegofhernando 27-11-2008 00:39:54

Cita:

Empezado por rgstuamigo (Mensaje 328232)
Te das cuenta contraveneno que estas hablando de Formularios(Componente), es lo que decia y recalcaba,:).
y aqui va una pregunta :
Y que pasa si quiero tener un paquete(Modulo de negocio) sin ningun formulario , es decir son puras unidades planas sin ni siquiera heredar de algun componentes?:confused:.¿Es posible hacerlo?
Por eso digo que el concepto es diferente entre un lenguaje y otro.

Si te refieres a que si puedes modularizar en uno de estos paquetes las "reglas de negocio" de tu aplicación la respuesta es SI y como comentan algunos amigos foristas, no es necesario u obligatorio que tengas componentes visuales dentro del paquete para que funcione, si solo quieres tener una función que reciba un parametro para generar un resultado bien lo podrias hacer.

Salu2

roman 27-11-2008 02:04:59

Si bien pueden haber variaciones de un lenguaje a otro, yo creo que el concepto de paquete es, a fin de cuentas lo mismo: separar la aplicación en unidades lógicas que puedan intercambiarse sin afectar a las demás.

Como ya han mencionado, en un paquete de delphi se pueden meter componentes, formularios, unidades, planas, y demás recursos.

Nuestro amigo rgstuamigo insiste mucho en que los paquetes de delphi no son como en otros lenguajes, pero quizá sería bueno que aclarase más qué es lo que esperaría. Porque, por ejemplo, en java, los paquetes, hasta donde sé, únicamente contienen clases, pues, de hecho, en java sólo hay clases, no unidades "planas".

// Saludos

duilioisola 27-11-2008 10:45:11

Opción 1:
Pues no se si se llaman paquetes, pero puedes hacer una dll por cada módulo de la aplicación.

Opción 2:
Hay una forma de dividir la aplicación que hagas en diferentes "paquetes". Lo malo es que no recuerdo como se llaman. Funcionan de forma similar a una dll... se cargan en momento de ejecución y luego hay que liberarlas al cerrar el programa (o el módulo del programa)

rgstuamigo 27-11-2008 20:26:27

Cita:

Si te refieres a que si puedes modularizar en uno de estos paquetes las "reglas de negocio" de tu aplicación la respuesta es SI y como comentan algunos amigos foristas, no es necesario u obligatorio que tengas componentes visuales dentro del paquete para que funcione, si solo quieres tener una función que reciba un parametro para generar un resultado bien lo podrias hacer.
Pero como se hace esto?:confused: Necesito un ejemplo basico.

Cita:

Nuestro amigo rgstuamigo insiste mucho en que los paquetes de delphi no son como en otros lenguajes, pero quizá sería bueno que aclarase más qué es lo que esperaría. Porque, por ejemplo, en java, los paquetes, hasta donde sé, únicamente contienen clases, pues, de hecho, en java sólo hay clases, no unidades "planas".
Desde luego que en Java solo hay clases y no unidades pues cada clase se guarda en un archivo diferente es decir cada clase es un archivo con el mismo nombre de la clase y claro esta que eso es por orden; en DELPHI puedo tener mas de una clase en un solo archivo de ahi el concepto de Unidad . Entrealgunas Ventajas de trabajar como lo hace java seria:
  • Los paquetes son una forma de organizar grupos de clases. Un paquete contiene un conjunto de clases relacionadas bien por finalidad, por ámbito o por herencia.
  • Los paquetes resuelven el problema del conflicto entre los nombres de las clases. Al crecer el número de clases crece la probabilidad de designar con el mismo nombre a dos clases diferentes.
  • Las clases tienen ciertos privilegios de acceso a los miembros dato y a las funciones miembro de otras clases dentro de un mismo paquete.
Por poner un ejemplo cuando hacemos una clase en Delphi logicamente no se ve obligada a pertenecer a un paquete(en la forma como lo trabaja Delphi), en cambio en Java cuando creamos una clase esta OBLIGADAMENTE DEBE pertenecer a un paquete.Es por que el mismo entorno del lenguaje esta estructurado asi.
Lo menos que quiero es crear una polemica sobre el caso , lo bonito es que podemos discutir este asunto con diplomacia y cada uno sacar sus conclusiones y aportar para el conocimiento de todos.
Recapitulando alguna duda que aun me queda les preguntaria lo siguiente:
Ustedes que tienen mas experiencia en el desarrollo de aplicaciones en delphi,¿Como hacen para trabajar en Delphi cuando tienen que hacer su aplicacion a nivel de capas(capa de negocio, capa de datos, capa de presentacion)?,¿Como lo organizan?,¿de que forma lo trabajan?,¿Alguien ha hecho alguna ves aplicaciones a nivel de capas en Delphi, que vaya acorde con la teoria de UML 2.0?¿Se podria tambien crear sub-Paquetes en Delphi para poder organizar mejor mis clases?:confused:.
Es verdad que son varias preguntas pero necesito opiniones concretas para tomar deciciones claras en mi Sistema...
Saludos.....:)


La franja horaria es GMT +2. Ahora son las 22:34:49.

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