PowerBuilder vs. Delphi - PFC: PowerBuilder Foundation Classes

10 - PFC: PowerBuilder Foundation Classes

[editar]
Curso gratis creado por José Manuel. Extraido de: http://www.lawebdejm.com
30 de Noviembre de 1999
La librería PFC se compone de un conjunto de objetos de propósito general (je, je, no se lo creen ni ellos) que nos permiten hacer las tareas más habituales de dos ratonazos.

No se puede decir que el PFC sea el equivalente a la VCL de Delphi, ya que este último se trata de una librería de componentes visuales (Botones, Listas, etc.) y en PowerBuilder estos vienen “de fábrica” y son inamovibles.

Los objetos incluidos en el PFC son de más alto nivel y se basan en los componentes visuales para construir interfaces (ventanas de opciones, de listados, mantenimientos maestro-detalle a N niveles, opciones de impresión, etc.), objetos auxiliares (pilas, colas, algoritmos de ordenación, parsers de SQL, soporte para multi-idioma, etc.), componentes compuestos (calculadoras, calendarios, barras de progreso...) u otro tipo de objetos (hasta un total de unos 300 objetos listos para ser utilizados).

La principal característica que introduce es un nuevo concepto de programación: la arquitectura basada en servicios. Es una técnica de diseño para programación orientada a objetos y se basa en que cada objeto tendrá disponibles distintos servicios que pueden ser activados en un momento dado para proporcionar una funcionalidad concreta.

Pongamos un ejemplo para analizar: necesitamos un objeto reutilizable que presente un árbol jerárquico. Este árbol, además debe:

  • Recuperar y almacenar los elementos en una tabla de base de datos.
  • Permitir imprimir los datos en modo gráfico, ya sea en color o blanco y negro.
  • Permitir enviar correo electrónico con un archivo adjunto indicando los datos del árbol.
  • Soportar Drag & Drop para añadir y eliminar nodos.

Un primer diseño de la clase que haga esto podría ser crear una nueva clase heredada de TTreeview en la que iremos añadiendo los métodos para cada una de las acciones requeridas (LeerBD, GrabarBD, Imprimir, EnviarMail, AceptarDrop y IniciarDrag), además de algunos métodos para configurar estas acciones (ConectarBD, DesconectarBD, ConfigurarBD, ConfigurarImpresion, AniadirAdjuntoMail, ConfigurarMail, y ConfigurarDragDrop). Como podemos ver, la clase ya está creciendo considerablemente, y se puede apreciar como las funciones se pueden dividir en cuatro grupos, según las requisitos pedidos: Base de datos, Impresión, Correo y Arrastre.

En notación UML podríamos representar esta clase según aparece en la Figura 1.

Sin embargo la arquitectura basada en servicios ofrece otra solución muy distinta: se separan las distintas funcionalidades en clases distintas (llamadas Servicios), teniendo como atributo la clase “madre” en cada uno de los servicios. Estos servicios se crearán sólo cuando se requiera la funcionalidad, y no estarán continuamente en memoria.

El diagrama en UML podemos verlo en la Figura 2: el objeto Treeview (de la clase TTreeview) puede activar su servicio de base de datos para leer/grabar datos a una base de datos (activar el servicio sería crear un objeto de la clase TTreeviewSrvBD a través de la función ActivarSrvBD), el servicio de impresión, para imprimir su contenido (crear un objeto de la clase TTreeviewSrvPrint llamando a la función ActivarSrvPrint), el servicio de envío por correo electrónico de sus datos (TTreeviewSrvMail con la función ActivarSrvMail) o bien el servicio de “arrastrar y soltar” (TTreeviewSrvDragDrop a través del a función ActivarSrvDragDrop).

Figura 1

Figura 2

De este modo, el programador sólo irá activando (creando) los distintos servicios cuando se requiera su funcionalidad, y no residirá continuamente en memoria todo el código (ya que la mayoría de las veces no se utilizan todas las funcionalidades). Otra ventaja es que se separa la implementación de las distintas funcionalidades en distintas clases, creándose varias clases pequeñas, en vez de una gran clase que lo hace todo. A priori puede parecer que se complica demasiado la programación, pero para proyectos grandes es una gran ventaja, ya que el código queda muy organizado.

La librería PFC está creada sobre un árbol de herencia muy ingenioso, que permite introducir nuestras modificaciones y objetos en medio de este árbol. Es decir, en Delphi siempre tenemos que heredar por debajo de la VCL, no es posible crear una especialización de TWinControl (llamada por ejemplo TjmWinControl) y que todos los objetos de Delphi (el TButton, el TForm y demás) se aprovechen de la nueva definición de TWinControl, o que el TSaveDialog muestre una ventana personalizada en vez de la ventana de Windows. PFC sí que permite esto, a través de lo que denominan extensiones, algo así como puertas de entrada al árbol de herencia. Inicialmente PFC vienen con dos niveles de extensión (cada nivel sería un punto por donde se “entrar” al árbol), aunque es posible incluir todos los niveles que queramos a través de una herramienta especial que viene incluida (PFC Library Extender).

[editar]

13 opiniones

Ruth Avalos Ruiz

te amo Ruth Avalos Ruiz. Mi enfermera favoria...
ruth avalos

Ruth Yanira Avalos Ruiz te amo
mmnm

Creo que todo Lneguaje de Programacion tiene sus ventajas y desventajas, Power Builder es muy bueno si se trata de hacer Aplicaciones sobre la Marcha, no eh usado Delphi, pero creo que visual Basic, Visual c#, c y java son los mejores e inigualables
What?..comparación?

No veo la comprarción, ya que solo comentas las características de PB...De todas maneras Delphi es inigualable.
Horror.

Porque ponen el título power builder vs. Delphi si se pasan describiendo lo que hace pb y apenas dedican parrafos cortitos para delphi? no va el título y encontre muchos errores a la hora de las comparaciones, en cuestiones de conexión a bd, deberian conocer mejor la herramienta para poder realizar dichas comparaciones. En fin... Imparcialidad? muchas gracias.
1 2 3 | siguiente >

Cursos gratis relacionados con 'PowerBuilder vs. Delphi'

Una comparativa entre estas dos herramientas de programación. Puede servir para que los programadores de... Más »

Autor y licencia de 'PowerBuilder vs. Delphi'


Curso gratis de José Manuel. Extraido de: http://www.lawebdejm.com CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.