PDA

Ver la Versión Completa : Sobre proyectos, exes y ejecutables.


r1d2m3
24-06-2011, 19:19:19
Hola amigos, quisiera preguntar lo siguiente y, por las dudas sea un bolazo, pido disculpas de antemano. El tema es el siguiente: teniendo en cuenta un sistema de mediano a grande, ¿todo lo que se desarrolle termina compilado en un solo ejecutable?. He visto que en el explorador de proyectos, se crea un grupo de proyectos, luego el proyecto y dentro de este, todos los formularios, clases, etc, etc,. Que pasa cuando pongo mas de un proyecto en un grupo de proyectos, ¿se genera un ejecutable para cada proyecto?, de ser así, ¿existe la forma de interacturar de exe a exe o cada un mantiene su espacio de memoria y no se puede establecer ningún mensaje entre ellos?

Espero que me hayan comprendido, saludos y quedo a la espera de vuestros comentarios.

Caral
24-06-2011, 19:25:33
Hola
Puedes tener varios EXE y trabajar con varios a la vez incluso enviar datos entre ellos, abrirlos desde un solo exe o varios etc, etc.....
Saludos

r1d2m3
24-06-2011, 19:33:34
Fantástico, planteo el siguiente escenario, tengo un ejecutable que actuará como disparador de otros ejecutables (todos dentro del mismo sistema), este ejecutable podría tener un menú del cual seleccionar lo que quiero iniciar, ¿no te molestaría poner un ejemplito con código para ver como se resuelve este diseño?, si no tuvieras ese código, ¿tenes algunos links en donde pueda mirar un poco?.

Saludos.

Caral
24-06-2011, 20:17:31
Hola
Si los programas estan en la misma carpeta que el programa que los llama se haria asi:

WinExec(PChar('ElPrograma.exe'),SW_SHOWNORMAL);
Como ves poniendo el nombre del programa que quieres llamar es suficiente.
Saludos

LoPiTaL
24-06-2011, 21:21:16
Pero recuerda que NO se pueden depurar varios exes a la vez. Sólo puedes estar depurando un único ejecutable cada vez. Por eso, cuando haces doble click sobre el nombre de uno de los proyectos que tienes en el mismo grupo de proyectos, su nombre se pone en negrita (se activa). Ese es el exe que puedes lanzar para depurar.

Un saludo,
LoPiTaL

mamcx
25-06-2011, 01:22:59
En primer lugar, que te hace creer que lo que piensas es necesario?

http://es.wikipedia.org/wiki/Optimización_prematura

El antipatrón de diseño la optimización prematura ocurre cuando un programador permite que las consideraciones de costo en tiempo o espacio afecten el diseño de un componente de software antes de tener un diseño correcto, lo que puede resultar en un diseño más complicado que lo necesario.



-----

Especialmente iniciando, es cuando menos te debe de importar. Dudo que tengas un proyecto como Microsoft Office. No te preocupes: Un ejecutable de 10 MB no estan horrible como parece. Ni siquiera uno de 100 MB.


Por mucho, es la codificacion correcta y el diseño adecuado lo que afecta el desempeño y eficiencia de una aplicacion.

Asi que por el momento, enfocate solo en hacer codigo limpio, sin redudancias, y con buen diseño.

r1d2m3
25-06-2011, 01:49:48
Salvando todas las distancias con Microsoft y Officce, comprendo tu punto de vista sobre si es necesario o no desarrollar un solo exe para todo un proyecto, pero mi punto de vista se concentra en el siguiente escenario, empresa departamentalizada, sector cobranzas, sector tesorería, sector atención al público, etc, todos estos subsistemas, llamemosle asi, consumen y alimentan la misma base de datos, pregunto, ¿porqué tendria que tener un solo exe kilométrico con toda la aplicación si cobranzas nunca va a usar ninguna parte del código que se desarrolló para, por ej. tesorería? Por supuesto que podría desarrollar cada subsistema como un sistema independiente del resto accediendo a la misma bd, pero me surgió la pregunta en función de poder organizar de manera mas eficiente el desarrollo, implementación y mantenimiento del sistema.

mamcx
25-06-2011, 04:33:40
Una forma popular de hacerlo es utilizando un sistema de plugins.

El problema es que desarrollar una aplicacion desacoplada es relativamente mas dificil, y si es la primera vez que lo haces te espera un largo camino de aprendizaje. Un problema por ejemplo, es el de la depuracion. Otro, el de tener coordinado la interfaz publica de las clases con los clientes que la utilizan. Otro, es el diseño de las clases. Y asi sucesivamente


Con todo, porque esperar a hacerlo después ;)

Lo que debes hacer es primero aprender como hacer una aplicación multinivel (n-capas), y separar la lógica de negocios de la UI del acceso a datos.

En mis primero años intente en el primer intento de hacerlo, y la verdad, me dio mucha dificultad... así que con la experiencia que tengo diría que un primer buen paso es por lo menos separar la GUI de lo de demás... osea, como se explico en:

http://blog.elmalabarista.com/post/4263479306/click-click-tap-run-crash-un-mejor-rad

http://edn.embarcadero.com/article/32388

http://blog.elmalabarista.com/post/4263477878/paafuera-y-no-paadentro

P.D: Si te aburre leer todo eso te lo resumo: En vez de usar multiples TDataSet/TDBConnection tener una sola clase que hace todo lo de la base de datos, y crear clases de negocio que la utilizan y crean dinamicamente TDataSet que se conecten a TDataSource.
O mejor aun, tomar un framework que tiene todo el cuento incorporado (si puedes pagarlo, realmente lo vale):

http://www.remobjects.com/


---

O quizas hay una opcion mas simple, si estas dispuesto a descargar parte del trabajo en la BD usando juiciosamente procedimientos almacenados y funciones (para ello, debes cambiar a acces por algo mas potente como Firebird - la favorita de los de este foro! - o Sql server o mysql, o postgress).

Eso se llama un app de 2 capas. Puedes poner, usando el lenguaje particular de la BD que eligas, logica centralizada en la BD y las apps clientes (que pueden ser distintos ejecutables) reusan clases bases que encargan de acceder la BD.

Es una manera mas simple de hacerlo.

Neftali [Germán.Estévez]
27-06-2011, 13:43:59
El tema es el siguiente: teniendo en cuenta un sistema de mediano a grande, ¿todo lo que se desarrolle termina compilado en un solo ejecutable?.

Antes de seguir adelante, yo te recomendaría que leyeras sobre el tema de Packages; Es un tema importante y que puede/debe afectar al diseño de tu aplicación.

Actualmente un proyecto mediano/grande no me lo imagino en un sólo ejecutable.

Aquí en los foros hemos hablado del tema, en mi blog puedes encontrar información al respecto y en Interet también encontrarás artículos al respecto.