Introdução à plataforma GNU de desenvolvimento

A plataforma GNU de desenvolvimento é uma coleção de ferramentas de software livre para o desenvolvimento de aplicativos para as plataformas Windows, Linux, BSD, Mac OS e Unix. Ela é a mais importante ferramenta para desenvolvimento de software para Linux/Unix, é poderosa, estável e completa, mas ainda é pouco popular. Esse artigo apresenta os componentes essenciais dessa plataforma.

[ Hits: 53.569 ]

Por: Renato Merli em 26/02/2010


Banco de dados



As funcionalidades de banco de dados na plataforma GNU são implementadas através de um projeto chamado GDA, de Gnome Data Access.

GDA é independente de SGBD, ou seja, permite operar com servidores diferentes através de uma mesma API, permitindo trocar o servidor de banco de dados sem alterar o aplicativo. Para permitir isso, GDA provê um elevado nível de abstração dos tipos de dados operados por cada tipo de SGBD em particular.

Como outras ferramentas para acesso a SGBDs, GDA oferece os seguintes componentes básicos:

1) um componente para conexão com o banco de dados
2) um componente facilitador para a criação de querys;
3) Modelos de dados que guardam o resultado das consultas
4) Componentes para exibição dos dados contidos nos modelos de dados na forma de tabelas e listas.

Uma consulta é feita usando o componente de conexão (1) e opcionalmente o componente facilitador para construção de querys (2), que retorna os dados em um modelo de dados (3), que é então associado aos componentes de exibição, chamados visões (4). Esse procedimento é bastante similar em diversas ferramentas de programação, que normalmente implementam variações em torno desse modelo básico.

Para a versão de GDA utilizada nesse exemplo, a versão 3, apenas o componente de conexão e os modelos de dados estão na biblioteca GDA, enquanto que os objetos gráficos estão em um projeto chamado libgnomedb.

Vamos ver como inicializar libgnomedb++, a ligação em C++ para a biblioteca libgnomedb, e criar uma conexão com o SGBD:
Linux: Introdução à plataforma GNU de desenvolvimento
Inicializamos a biblioteca, na linha 5, para em seguida criarmos um objeto Client, na linha 7, que entre outras coisas, manipula um conjunto de conexões. É através desses objetos que mantemos uma ou, segundo os manuais, varias conexões simultâneas com SGBDs.

Utilizamos apenas uma conexão, com servidor SQLite, como pode ser observado pelos parâmetros da conexão, nas linhas 10 e 11, que incluem também o nome de usuário(login) e a senha para conexão com o servidor de banco de dados.

Se temos um objeto de conexão, temos também acesso aos dados, já que é através do objeto de conexão que são feitas consultas e operações no banco.

No próximo exemplo vamos realizar uma consulta e então associar os dados retornados a dois dos componentes gráficos de interface (visões) disponíveis, um form e um grid.
Linux: Introdução à plataforma GNU de desenvolvimento
Até a linha 11 são realizados os procedimentos que já conhecemos, realmente nos interessam as linhas 13, 14 e 16.

Na linha 13 é criado um modelo de dados, que guarda os dados da consulta ao servidor de banco de dados.

Na linha 14, usando o objeto de conexão, executamos a instrução "SELECT * FROM titulos" no servidor de banco de dados, armazenando o resultado da consulta no modelo de dados "model" que havíamos criado na linha 13.

Para a visualização dos resultados das consultas ao banco, a maioria das ferramentas de programação oferece componentes para exibição dos resultados no formato de tabelas, que podem receber nomes como datagrid, dbgrid, dbview etc. Na plataforma GNU nós os chamamos simplesmente de grids: criamos um deles na linha 16.

Além dos bem conhecidos grids, GDA conta também com um componente para visualização de dados na forma de formulário, chamado form, que criamos na linha 17.

Os forms representam uma ferramenta eficiente para acelerar o desenvolvimento de aplicativos de acesso a banco de dados. Eles têm a seguinte aparência:
Linux: Introdução à plataforma GNU de desenvolvimento
Enquanto que os grids são assim:
Linux: Introdução à plataforma GNU de desenvolvimento
Como você deve ter percebido pelos ícones na parte inferior, em GNOME-DB os grids e os forms podem ser usados para realizar inclusão, alteração e deleção de registros. Para isso basta programar as querys correspondentes, o que é muito simples, mas não será demonstrado aqui.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criação de interfaces: desenho
   3. Criação de interfaces: programação
   4. Banco de dados
   5. Colocando tudo junto: programação do aplicativo
Outros artigos deste autor

Ensaio acerca de bibliotecas de código aberto para abstração de acesso a banco de dados em linguagem C++

Leitura recomendada

Ponteiros void na linguagem C (parte 2)

Reprodução de arquivos WAV com SDL_mixer e linguagem C

Programando em Qt

Criando aplicativos para o Mac OS X no GNU/Linux

Detectando assalto na multidão com visão computacional

  
Comentários
[1] Comentário enviado por danielsa em 26/02/2010 - 15:54h

Olá Renato Merli,

Parabéns pelo artigo, nunca tinha visto um tão completo.

Consigo usar esta plataforma para desenvolver aplicações para window e/ou multi plataforma?

Obrigado

[2] Comentário enviado por doradu em 26/02/2010 - 17:23h

fez tudo isso no Windows?

[3] Comentário enviado por fernandoamador em 27/02/2010 - 13:31h

Parabéns pelo artigo...

[4] Comentário enviado por vinipsmaker em 28/02/2010 - 12:29h

parabéns pelo artigo, ficou muito bom mesmo.
+10

[5] Comentário enviado por xadouron em 01/03/2010 - 17:08h

Ola rmerli,

Parabéns pelo artigo.

Só uma coisa:

O link para baixar o código fonte não esta funcionando ( http://uniksys.com.br/renato/pub/exemplodb1.tar.gz ).

Abraços,

[6] Comentário enviado por edkiller em 06/03/2010 - 12:03h

Olá rmerli,

Parabéns pelo artigo !!

Ficou excelente!


[7] Comentário enviado por pedrocipoli em 07/06/2010 - 13:58h

Parabéns rmerli!

Estava pensando em começar a explorar o gtk e essa foi uma excelente introdução.


[8] Comentário enviado por psfdeveloper em 27/08/2010 - 23:20h

Cara, que artigo magnífico.

Eu programei durante muitos anos para Windows mas nunca me envolvi com programação gráfica. Quando migrei para Linux as coisas ficaram mais complicadas ainda para mim. Vou fazer um Bookmark nesse artigo para poder revê-lo futuramente com mais cuidado.

A única reserva que eu tenho é quanto ao uso do GTK. O GTK é portátil, podendo, inclusive, ser utilizado no MinGW, mas no Windows e no Mac OS X eles não se parecem com as widgets nativas, o que deixa os programas com uma cara meio de "estrangeiro". O Mac OS X, pelo menos, com o XQuartz, possui o X Window como interface padrão e qualquer programa X consistente pode ser um programa do Macintosh. Para garantir uma interface consistente entre plataformas, eu acho o WxWidgets mais interessante.

Mas, como tudo em programação, nenhuma solução é 100% boa para tudo. Usar GTK, Qt ou WxWidget depende do gosto do desenvolvedor. O Java Swing também pode ser utilizado para fazer interfaces gráficas multiplataforma, mas ele tem o mesmo problema de estrangeirismo do GTK. Mas uma coisa eu preciso dizer: para interfaces gráficas em Linux, o GTK é praticamente imbatível, a não ser que você esteja fazendo software específico para KDE. Nesse caso é melhor usar o Qt.

Caro Renato Merli, imensos parabéns para seu artigo! Nota 10!

[9] Comentário enviado por fhespanhol em 01/12/2010 - 20:29h

Muito bom seu artigo é justamente o que estamos precisando por aqui. Alguém com objetivos sérios e vontade de compartilhar seus conhecimentos. Parabéns.

[10] Comentário enviado por removido em 14/03/2011 - 17:06h

Parabéns, amigo! Muito bom seu artigo!

[11] Comentário enviado por removido em 13/05/2011 - 01:35h

Também gostei! Muito bom!

[12] Comentário enviado por fernandoamador em 20/06/2011 - 11:09h

Parabéns pelo artigo.

[13] Comentário enviado por rony_souza em 17/04/2012 - 21:14h

Muito bom me ajudou a ficar sabendo sobre programacao ...

[14] Comentário enviado por Ditador Nicastro em 29/09/2012 - 17:37h

Parabéns pelo artigo e obrigado.

[15] Comentário enviado por rbbarretojr em 04/10/2012 - 23:20h

Parabéns pelo artigo.

[16] Comentário enviado por david23.7 em 05/11/2012 - 09:54h

Parabéns! Me deu um bom ponto de partida!

[17] Comentário enviado por rmerli em 05/11/2012 - 12:11h


[8] Comentário enviado por psfdeveloper em 27/08/2010 - 23:20h:

Cara, que artigo magnífico.

Eu programei durante muitos anos para Windows mas nunca me envolvi com programação gráfica. Quando migrei para Linux as coisas ficaram mais complicadas ainda para mim. Vou fazer um Bookmark nesse artigo para poder revê-lo futuramente com mais cuidado.

A única reserva que eu tenho é quanto ao uso do GTK. O GTK é portátil, podendo, inclusive, ser utilizado no MinGW, mas no Windows e no Mac OS X eles não se parecem com as widgets nativas, o que deixa os programas com uma cara meio de "estrangeiro". O Mac OS X, pelo menos, com o XQuartz, possui o X Window como interface padrão e qualquer programa X consistente pode ser um programa do Macintosh. Para garantir uma interface consistente entre plataformas, eu acho o WxWidgets mais interessante.

Mas, como tudo em programação, nenhuma solução é 100% boa para tudo. Usar GTK, Qt ou WxWidget depende do gosto do desenvolvedor. O Java Swing também pode ser utilizado para fazer interfaces gráficas multiplataforma, mas ele tem o mesmo problema de estrangeirismo do GTK. Mas uma coisa eu preciso dizer: para interfaces gráficas em Linux, o GTK é praticamente imbatível, a não ser que você esteja fazendo software específico para KDE. Nesse caso é melhor usar o Qt.

Caro Renato Merli, imensos parabéns para seu artigo! Nota 10!



Obrigado.

Concordo com tudo que disse e confesso que nunca dei a devida importancia ao que voce devidamente define como "estrangeirismo" .Vou passar a considerar esse requisito em projetos futuros.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts