| | | A GeneXus X incrementa a produtividade de desenvolvimento com Data Providers e Data Seletor |
|
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 |
| | | | | | | | |
| |