Ver Mensaje Individual
  #2  
Antiguo 11-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por mjjj Ver Mensaje
El punto es que no se por donde comenzar aprender todo esto... encontre algunos documentos realizados por Neftali, pero me gustaría comnezar con algo mas sencillo... algo bastante mas sencillo, y asñí poder familiarizarme con todo esto.

Una de las principales problemas que tuve con estos documentos, fue que no pude generar a partir de cero, los archivos bpl que necesito.

Ojala me ouedan ayudar, explicando desde el principio como escribir todo el codigo que necesito para esto.

Además, si es que realmente vale la pena desarrollar esta aplicaión de la forma propuesta.
Bueno, si ya has revisado lo que hay en mi web, no te enviaré otra vez a que la mires...
En la web y embarcadero puedes encontrar documentación al respecto y algunos artículos interesantes.

En cuanto al diseño de la aplicación me parece el correcto. Es más, yo comencé con el diseño de packages en una aplicación grande por una motivación similar. Diferentes módulos de la aplicación y la característica de que los diferentes usuarios cargan diferentes módulos.
La aplicación es un ERP (bastante grande) y aproximadamente cuenta con 25/30 módulos. Por lo tanto no era "aceptable" que todos los usuarios cargaran TODOS los módulos.
Hay usuarios que usan 4, los hay que usan 10 y los hay que los usan todos (admins).

Nuestra estructura de packages es algo así; Cuenta con varias partes "conceptualmente":

* EXE (1 fichero): Básicamente en el formulario principal y algo de código inicial, para iniciar la aplicación, cargar el resto de packages,...
* PACKAGES DE LIBRERÍAS (6 BPL): Contienen los packages que son el CORE de la aplicación; Conexiones a Base de Datos, Controles visuales, librerías genéricas, el core de la interficie y el core para la capa de negocio.
* PACKAGES BÁSICOS (2 BPL): Contiene las clases básicas para la capa de negocio. Son clases genéricas y que debe acceder todo el mundo, de ahí que se carguen de forma estática.
* N PACKAGES NEGOCIO (N BPL): Por último están los packages de negocio. Que son el resto de clases/modulos con los que cuenta la aplicación.
* N PACKAGES VCL.

El EXE carga de forma estática (es decir que están linkados estáticamente al EXE) los packages de la VCL, los 6 packages de librerías y los 2 packages básicos. Si estos packages no se encuentran la aplicación genera error.

Al cargar este core, y segun el usuario que se ha accedido, el sistema sabe qué packages debe cargar (de los N de negocio) y estos son los que se cargan de forma dinámica (utilizando LoadPackage), de forma diferente para cada usuario. de esta forma cada usuario tiene "la parte de la aplicación" que va a utilizar.

Más adelante podemos discutir la carga/descarga dinámica (bajo petición).

Para empezar te recomiendo que hagas un EXE y una BPL con clases y formularios. Línkalo de forma estática y de forma dinámica y en ambos casos debes acceder a ellos.
Cuando tienes carga dinámica tendrás que acceder utilizando RTTI, así que tendrás que empezar a familiarizarte con estos temas.

Más adelante podemos hablar de las actualizaciones de packages "por separado" y de que no es tan bonita como a primera vista parece...

Te recomiendo que pruebes y que experimentes. Si tienes dudas plantéalas. A priori la complejidad aumenta al utilizar packages y aparecen algunos problemas que de otra forma no tendrías, pero considero que para aplicaciones grandes son casi imprescidibles.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita