INSTITUCIONAL
COMUNIDADE
BLOG
AJUDA
MINHA CONTA
EN PT ES

GX_icono data provider

A GeneXus X incrementa a produtividade de desenvolvimento com Data Providers e Data Seletor

(02/12/2008-09:21)
A GeneXus X incorpora objetos no IDE que incrementam a produtividade. Hoje falaremos acerca do que eles são e de como os Data Providers e os Data Seletor otimizam o trabalho.

Em se tratando de incrementar a produtividade no desenvolvimento com o GeneXus, Data Providers e Data Seletor têm função protagonista.

O caminho do GeneXus desde sua origem foi ser declarativo: um repositório de conhecimento, independente da tecnologia.

O que é ser declarativo quando desenvolvemos? Ser declarativo implica indicar “o que fazer” em vez de “como fazê-lo”.

Hoje em dia (quase 20 anos depois), esta começa a ser uma tendência mundial e fala-se muito de ter linguagens mais declarativas. O GeneXus é basicamente declarativo, mas suas Procedures, embora de muito alto nível no acesso aos dados, não o são, os data-os Providers representam um grande passo para minimizar a necessidade de codificação procedural.


O que são os Data Providers e que funções cumprem?

Os Data-os Providers são objetos 100% declarativos (ver quadro) que substituem uma determinada classe de procedimentos: aqueles que recebem uma entrada realizam um processo e seu objetivo final é devolver um conjunto de dados em um formato estruturado. Nesse contexto, os Data Providers apontam a diminuir drasticamente o número de procedimentos.

Dado um processo da forma: entrada, transformação e saída, no qual na transformação se obtêm dados geralmente da base de dados, para em seguida ser devolvidos na saída em algum formato estruturado hierárquico, os Data Providers põem o foco nesta saída, de tal forma que, em definitiva o que se faz é indicar ao GeneXus “o que se quer obter” e não “como fazer para obtê-lo”.

Depois, esta saída, pode facilmente ser convertida para algum formato padrão (XML, JSON, etc).

Exemplo comparativo:

Assim seria o código de um procedimento para criar um XML com uma listagem de passageiros de uma linha aérea. 


Olhando para esse código procedural podemos ver que está desordenado, meio confuso e não dá para ver claramente a intenção do que se deseja obter com ele.

Com os Data Providers, tenta-se resolver estas carências que a programação procedural tem nos objetos procedimento.


O objetivo é programar o mesmo em forma declarativa. Então temos bem identificadas a entrada e a saída do processo, ou seja, é bem clara a intenção do que se tem programado e como é possível observar, poupa-se muitíssimo código.

Os Data Provider terão, portanto, uma estrutura como a da imagem, na qual, do lado esquerdo, vemos os campos a devolver (e adicionalmente aprecia-se a estrutura que terá a saída) e do lado direito, o que irá se atribuir a cada campo da estrutura (em geral atributos). Também será possível utilizar sentenças de controle (ver Documentação: Data Provider Language).

Será possível receber parâmetros de entrada (serão sempre de in) e a saída do DP será um SDT (ou BC) o que é indicado no seu property Output.

As principais utilidades destacam-se na escritura de arquivos XML (Web services, rss feeds), o preenchimento do SDT (associados aos User Controls, por exemplo) e o preenchimento de estruturas de business components.

Data Selectors e a otimização do conhecimento

Data Selectors, é um novo tipo de objeto que permite armazenar um conjunto de orders, filtros e cláusulas defined by, para poder reutilizá-los em diferentes partes da KB.

Isto potencia muitíssimo o que é a reutilização de código, por exemplo, se tivermos uma tabela de clientes e for preciso filtrar os clientes ativos em muitos objetos, iremos fazê-lo definindo-o com um Data Selector e referenciando-o em todos os lugares onde se quiser aplicar o mencionado filtro. Além disso, os Data Selector podem ser aplicados para filtrar grades, grupos de Data Providers e na definição de fórmulas.

Como resultado, otimiza-se o conhecimento porque a programação fica mais simples e clara ao potencializar a economia e a reutilização de código que irá se definir uma só vez; facilita a manutenção já que as modificações serão feitas num único lugar e otimiza o conhecimento armazenado na KB com o nível de encapsulamento que fornecem.

Para continuar aprofundando na linguagem declarativa, as possibilidades de Data Providers e Data Selector na GeneXus X, veja as duas palestras ministradas no XVIII Encontro Internacional GeneXus:

GeneXus X IDE –Getting Started II do Fabián Bonilla

Data Providers do Luis Murillo

Relacionado
Funcionalidades que incrementam a produtividade na GeneXus X (II): tipo de dado Expression.
How to: Exemplos de Data Providers com condições
Data Providers e Business Components para inicializar dados
Inicializando dados: um passo além
Especial #GeneXusOMelhorDe2014 :: Cloud Computing, Internet das Coisas, GeneXus X Evolution 3, Casos de Sucesso, Smart Devices e... Muitos mais!
Apps móveis: a chave para o crescimento de uma PME
Beacons: um olhar para o futuro do marketing tecnológico
#GX25 #Call4Speakers Nada mais, nada menos que 25 Encontros GeneXus
Avianca, a companhia aérea oficial do #G25 oferece descontos especiais para voos internacionais
A Comunidade GeneXus #Brasil organiza uma excursão partindo de Porte Alegre para assistir ao #GX25
GeneXus lança no SAP Forum Brasil GeneXus Early Adopter Program for SAP HANA Cloud Platform
GeneXus X Evolution 3 Upgrade 7
Novos parceiros acadêmicos no Brasil!