Linux como plataforma de
Linux como plataforma de
desarrollo
desarrollo
Framework GNOME
Franco Catrin L.
[email protected]
GNOME Framework
GNOME Framework
● Es un conjunto de bibliotecas
● Facilitan el desarollo de aplicaciones
● Gran parte de la aplicacion ya esta probada
● Mejoras en la biblioteca, mejoran la
aplicacion en forma automatica
● Como resultado de obtienen aplicaciones
consistentes e interoperables
Bibliotecas de GNOME
Bibliotecas de GNOME
● glib : funciones standard para C
● gdk : primitivas graficas
● pango : manejo de fonts
● gtk : widgets graficos
● libgnome : aplicaciones GNOME
● libbonobo : componentes
● libbonobo-ui : componentes graficos
● gnome-vfs : virtual file systems
Biblioteca GLIB
Biblioteca GLIB
● Permite abstraer el lenguaje C de la
plataforma
● Cada plataforma maneja algunas cosas de
manera distinta
● Es la forma de garantizar que la aplicacion
sea portable
● Implementa funcionalidad generica base
GLIB : tipos de datos
GLIB : tipos de datos
● Provee tipos de datos portables (gint,
gboolean, gchar, etc)
● Permite manejar strings de forma comoda
● Implemeta listas enlazadas (simples,
dobles)
● Arrays dinamicos
GLIB : estructuras complejas
GLIB : estructuras complejas
● Arboles binarios
● Relaciones y tuplas
● Caches
● Implementa Hashtables (llave/valor)
GLIB : utilitarios
GLIB : utilitarios
● Carga de modulos (plugins)
● Asignacion de memoria
● Temporizadores o timers
GLIB : intercomunicacion de
GLIB : intercomunicacion de
procesos
procesos
● Colas asincronas (mensajes)
● IO channels (files/pipes/sockets)
GLIB : procesos/hebras
GLIB : procesos/hebras
● Manejo abstracto de threads
● Ejecucion de procesos
GLIB : manipulacion de datos
GLIB : manipulacion de datos
● Conversion de set de caracteres
● Manejo de fechas
GLIB : ayudas para desarrollo
GLIB : ayudas para desarrollo
● Logging con manejos de niveles
● Debugging (mensajes, assert)
GLIB : parsers
GLIB : parsers
● Lexical scanner
● Xml parser simple
Biblioteca GDK
Biblioteca GDK
● Capa que abstrae el despliegue e
interaccion de la plataforma
● Existe para X11 pero hay otros ports
(directfb)
● Permite llevar aplicaciones graficas a otras
plataformas de forma sencilla
GDK : funciones
GDK : funciones
● Primitivas graficas (lineas, rectangulos, etc)
● Manejo de pixmaps
● Manejo de eventos
● Metodos de entrada o interaccion (input)
Biblioteca GTK
Biblioteca GTK
● Permite construir interfaces graficas
● Tiene un conjunto de elementos de interfaz
llamados widgets
● Opera con GDK y no directamente con X
(portable)
● Las interfaces son una coleccion de widgets
GTK : funciones
GTK : funciones
● Permite definir aceleradores (shortcuts)
● Provee soporte de drag and drop
● Los widgets soportan rendering
personalizado
● Provee iconos predefinidos
● Provee ventanas de dialogo comunes
● Provee soporte de clipboard
GNOME
GNOME
● glib/gtk/gdk son suficientes para
aplicaciones simples
● Hay aspectos no cubiertos
● Ninguno maneja uso de componentes
● No garantizan comportamiento comun
GNOME y CORBA
GNOME y CORBA
● CORBA es un pilar de GNOME
● Es un standard de la OMG
● Fue creado para proveer una arquitecutura
de objetos distribuida
● Es independiente de lenguaje y plataforma
● Es transparente a nivel de red
BONOBO
BONOBO
● Es una capa para manejo de Componentes
● Un componente es mucho mas que un
objeto
● Un componente publica su interfaz y
propiedades
● BONOBO utiliza CORBA en forma
transparente para el desarrollador
BONOBO Activation
BONOBO Activation
● Reemplaza a OAF (Object Activation
Framework)
● Permite activar objetos CORBA en forma
sencilla
● Simplifica la ubicacion de servidores
Biblioteca libBonobo
Biblioteca libBonobo
● Es la biblioteca para usar BONOBO
● Maneja Property Bags
● Manejo de eventos via suscripcion
(listeners)
● Provee funciones para persistencia de
objetos
Biblioteca libBonoboUI
Biblioteca libBonoboUI
● Bonobo orientado a interfaz grafica
(controles)
● Un control tiene retroinspeccion
● Permite encapsular GtkWidget como un
componente Bonobo
Biblioteca Pango
Biblioteca Pango
● Se preocupa del rendering de fonts
● Soporta multiples lenguajes, incluyendo
orientales
● Tiene metodos para desplegar con layouts
● Soporta markups (bold, italic, color, etc)
● Soporta distintos tipos de fonts (x, xft)
Biblioteca libgnome
Biblioteca libgnome
● Perrmite crear una aplicacion GNOME
"standard"
● Realiza la inicializacion basica de la
aplicacion
● Maneja configuracion via gconf
● Soporte de i18n
● Provee soporte de ayuda en linea
Biblioteca GNOME-VFS
Biblioteca GNOME-VFS
● Sistemas de archivos virtuales
● Acceso a archivos en forma independiente
de su ubicacion fisica
● Permite ubicar directorios standard
(papelera)
● Monitoreo de cambios de archivos
● Manejo de MIME types
Conclusiones
Conclusiones
● GNOME provee un framework para
desarrollar aplicaciones en Linux
● Las aplicaciones GNOME son portables en
la medida que sus bibliotecas se
implementan en otras plataformas
● Se pueden acceder a distintos niveles de
abstraccion
Referencias
Referencias
● Sitio de desarrolladores de GNOME
– http://developer.gnome.org
● Object Management Group
– http://www.omg.org
Comentarios de: Linux como plataforma de desarrollo - Framework GNOME (0)
No hay comentarios