
Apresentamos GeneXus 18, a nova versão da Plataforma de Desenvolvimento Low-Code que permite construir sistemas mais complexos de forma mais simples e rápida, mantendo-se à prova de futuro.
O mundo acelera, vivemos em um contexto de realidades voláteis onde as mudanças ocorrem continuamente e com pressa. Com GeneXus 18, você pode se adaptar e se manter competitivo, pois permite desenvolver soluções de missão crítica que criam experiências totais, a uma velocidade nunca vista na indústria.
Além disso, a aceleração não prejudica o investimento futuro porque com GeneXus 18, hoje mais do que nunca, construímos com base no conhecimento formalizado e tudo o que pode ser automatizado é automatizado.
Bem-vindo à nossa nova e melhor versão!
Neste vídeo vamos tentar dar uma visão mais em perspectiva e não tão em detalhe, para descobrir quando é conveniente usar as fórmulas de acordo com seu tipo e quando podemos usar uma solução alternativa, em quais casos temos restrições e como podemos ultrapassá-las, que custo implica adicionar redundância e outras observações que nos ajudem a integrar os conceitos sobre este tema.
O que acontece quando adicionamos novos atributos a uma transação e já existem registros inseridos em sua tabela.
É apresentado como fazer com que atributos inferidos e fórmulas, que por definição não são atributos armazenados em um banco de dados, possam ser definidos como redundantes e se tornarem mais um campo em uma tabela. Analisa-se também como se mantém o valor dessas redundâncias alterando os valores dos atributos inferidos e também na eventualidade de a fórmula ter de ser recalculada.
É feito um percurso, como um resumo, pelos diferentes casos de uso de subtipos vistos em cursos anteriores. Além disso, é apresentado um novo estudo de caso onde se analisa por que devemos evitar a relação referencial.
Através de um estudo de caso, analisa-se um cenário de modelo de desenho no qual se for executado o form das transações, GeneXus não pode controlar a integridade referencial dos dados de forma automática.
Possibilidade de criar várias transações com um mesmo identificador: para que servem, o que compartilham e em que se diferenciam.
Como configurar as propriedades do grupo Data de um objeto transação para que seu Data Provider associado possa obter informações de outras fontes de dados.
Anteriormente, vimos como associar um Data Provider a uma transação para preenchê-la com dados. Vemos agora que o Data Provider pode ser utilizado para recuperar as informações da transação de outras fontes de dados. Isto terá como consequência que a transação não tenha tabelas associadas e que se comporte como uma "visão" da base de dados.
São revisados os eventos disponíveis no nível das transações, e se resolve um novo requisito que permite codificar o evento After Trn.
Neste vídeo vamos tentar analisar diferentes temas relacionados com o desenho de transações e como as decisões que tomamos se refletem nas estruturas da base de dados criadas, ou na funcionalidade da aplicação. Ao contrário dos vídeos anteriores sobre o tema onde se seguiu o guia do desenvolvimento de um exemplo, neste caso iremos abordar casos específicos que nos permitem analisar diferentes situações práticas que podem ser úteis na construção da nossa solução.
Existe o servidor de base de dados e seu cliente, que é o programa no servidor da aplicação. Toda consulta é iniciada no cliente e pode ser resolvida inteiramente no servidor de base de dados ou não, o que impactará no desempenho.
A partir da sintaxe geral do For each, é revisada cada parte, com exemplos esclarecedores, de forma a obter uma visão sintética e integrada, válida para outras formas de consulta (grupos de Data Providers, grids com tabela base, Data Selectors).
Veremos formas de manipular e personalizar diferentes tipos de paginação: o gerado automaticamente pelo Pattern Work With For Web de uma transação, um gerado manualmente para um grid de um Web panel, o de um comando For Each ou um grupo de Data Provider com tabela base).
No vídeo "Design system predeterminado" do curso CORE, já havia sido mostrada a paginação de grids.
O desenvolvedor escreve cláusulas order (condicionais ou não) que são otimizadas pelo especificador de GeneXus quando possível, embora seja o DBMS que tem a última palavra. Exploramos o tema com exemplos.
Esta cláusula do For each (mas também de Data Providers e Grids) permite processar unicamente os registros diferentes de acordo com alguns de seus atributos. Quando e como utilizá-la. Exemplos e restrições.
Cómo se determina la tabla base de un for each (u otro tipo de consulta) cuando no se especifica transacción base. Se analiza también el caso de for eachs anidados.
São formalizados os 3 casos de for each aninhados: Join, Produto Cartesiano e Corte de Controle, e se aprofunda em suas possibilidades. Exemplos: o que acontece quando há relação 1 a N através de subtipos, o que acontece se são colocados no aninhado atributos que só são alcançáveis a partir do for each principal
Através de um estudo de caso, é revisto tudo o que, de uma transação de 2 níveis, é executado quando é desejado inserir através de seu business component. Como condicionar regras e eventos a serem executados apenas para web ou apenas para BC. Algumas considerações sobre métodos e mensagens de erro.
São mencionados: método Check, Success, Fail, environment attributes (atributos de ambiente).
Continua o estudo de caso da parte 1. Aqui é revisto tudo o que de uma transação de 2 níveis é executado quando é desejado atualizar através de seu business component e também quando é desejado excluir. É analisado como trabalhar com as linhas com o BC e os erros que podem ocorrer.
São mencionados: métodos Success, Fail, Load, GetbyKey, RemoveByKey, new.
Estudamos um caso de inserção batch por meio de um Business Component e o tornamos mais complexo para fazer um Update se houver um registro ou um Insert caso contrário, para cada instância a ser manipulada. Também mostramos a solução de mais alto nível para carregar o BC com um Data Provider.
São apresentadas e discutidas as diferenças entre os métodos para trabalhar com a base de dados (Load, Insert, Update, Save, atribuição direta de chave primária, InsertOrUpdate) e é apresentado um exemplo de uso de Data Provider para carregar dados.
Recomenda-se ter visto o vídeo " Business Component de um e dois níveis: Comparação".
É analisado em profundidade o que deve fazer o desenvolvedor para atualizar através de uma variável BC (de dois níveis) e o que faz GeneXus por trás. São avaliadas todas as possibilidades.
São utilizados os métodos: Load, Update, Save, Remove, RemoveByKey, GetByKey.
A partir do que foi analisado em nível teórico no vídeo “Update with Business Component. Behind the Scenes” aqui são apresentados exemplos práticos de atualização de um BC de dois níveis, mostrando todas as possibilidades.
É visto como atualizar quando a variável está em modo Update e como, quando está em modo Insert. É apresentado o caso de carga através de Data Provider.
Os objetos GeneXus do tipo Transação e Procedimento oferecem a propriedade Commit on exit que pode assumir o valor Yes ou No. Desta forma, os programas gerados executarão um Commit automático ou não. Este vídeo apresenta exemplos que explicam este comportamento. Também é apresentado o conceito de Níveis de isolamento para controlar a leitura de dados e o controle de concorrência.
O que acontece quando mais de um usuário pretende acessar de forma simultânea a Base de Dados?
Se apresenta o objeto Query, sua estrutura e conceitos fundamentais. São explicados passo a passo da construção de um par de consultas que são visualizadas em execução através de gráficos em painéis web.
São apresentados dois exemplos do uso do objeto Query, recebendo parâmetros, e modificando em execução o formato da saída da consulta.
Objeto para apresentar em um web panel, indicadores que permitam uma análise dividida das informações (Indicadores de Desempenho - kPIs).
Temos que desenhar uma aplicação web e uma nativa para uma agência de viagens. Como expressamos o desenho da tela no GeneXus com o novo objeto Design System? Nesta palestra construiremos uma solução em poucos minutos, modelando o desenho no GeneXus. O objetivo principal é apresentar esta inovação, uma nova forma de modelar o design que se incorpora ao GeneXus para reduzir a distância entre designers e desenvolvedores. Tudo isso dentro do pano de fundo geral que se aplica a toda a filosofia GeneXus: como expressar o máximo e dizer o mínimo.
Muitas vezes é necessário acessar dados que não estão armazenados na base de dados de nossa aplicação. Aqui é apresentada uma introdução aos possíveis métodos que serão desenvolvidos nos vídeos seguintes.
Muitas vezes é necessário acessar bases de dados externas. Para isso, GeneXus oferece um processo de engenharia reversa que permite resolver todo o necessário para alcançá-lo. Aqui se realiza um exemplo, ao mesmo tempo que são introduzidos os conceitos necessários.
Neste vídeo revisamos brevemente como publicar e consumir web services com GeneXus. Nos próximos vídeos deste tema, focaremos em aspectos avançados que nos fornecem mais flexibilidade no uso de web services.
Neste vídeo vamos nos concentrar na publicação, teste e personalização de serviços SOAP com GeneXus, como por exemplo atribuir um namespace a ele, ou incluir mais de um método em um único web service.
Neste vídeo mostraremos um exemplo de publicação de um serviço REST utilizando o objeto API e as vantagens que ele oferece, pois adiciona uma camada intermediária que separa a interface dos detalhes de implementação, o que permite que futuras alterações na programação nos objetos, não afete a forma como são invocados pelas aplicações externas.
Neste vídeo veremos como testar um serviço SOAP publicado com GeneXus a partir do próprio GeneXus, importando-o como objeto externo. Em seguida, nos concentraremos em aspectos de segurança, de rastreamento e direcionamento, que permite que um consumidor de serviços indique o ponto de extremidade para o qual o serviço deve enviar sua resposta em uma invocação, como alterar a location de um serviço e como podemos obter o resultado de uma invocação e tratar os erros.
Neste vídeo veremos um exemplo de consumo de um serviço REST OpenApi de uma API pública a partir do GeneXus, como consumir um serviço REST seguro e como personalizar o consumo por meio da invocação aos métodos HTTP (Get, Post, Put, Delete) através de uma variável do tipo httpclient, processando o código de status resultante da operação realizada.
Ao receber modificações feitas por outros desenvolvedores, podem acontecer conflitos. Este vídeo explica o que é um conflito, o momento em que um conflito pode ocorrer e suas possíveis soluções.
Objetivo
Completar o terceiro nível (depois do curso Core e do Advanced), na incorporação da lógica de GeneXus, de tal forma a atingir um nível de Analista Sênior GeneXus que permita integrar equipes de desenvolvimento que exigem altos níveis de qualidade e expertise.
Pré-requisitos
Ter os conhecimentos fornecidos nos cursos GeneXus Core e GeneXus Advanced, que incluem a experiência adquirida em práticos e workshop.
Sobre o conteúdo do curso
É composto por:
● vídeos considerados essenciais para o curso
● vídeos extras que agregam conhecimento adicional
Vários dos vídeos (aqueles que trabalham fundamentalmente a lógica) complementam, sintetizam ou integram temas vistos nos dois cursos anteriores, principalmente no Advanced, por isso, se não estiverem recentes em sua mente, sugere-se pausar o vídeo em que você está, reproduzir novamente aqueles outros vídeos, para depois retornar. Em cada vídeo é indicado o que é conveniente ter sido visualizado antes.
Outros vídeos abordam temas que, embora não sejam de lógica, são importantes no momento de desenvolver aplicações complexas (como a utilização de web services, por exemplo).
E outros são apenas introdutórios a novas tecnologias ou de temas úteis para o desenvolvimento.
A maioria dos vídeos foi filmada com GeneXus 17, mas são válidos no GeneXus 18 (se existe alguma diferença entre versões, isso é indicado no vídeo).
Este curso não tem prático, e é de autoestudo, por isso não tem fórum ou aulas online ao vivo, mas você poderá fazer um exame.
Duração dos vídeos
9 horas e meia (sem incluir os “vídeos extras”)