Mudanças técnicas

Conheça alguns detalhes técnicos de mudanças implementadas

Refatoração

Refatoração (do inglês Refactoring) é o processo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo. O uso desta técnica aprimora a concepção (design) de um software e evita a deterioração tão comum durante o ciclo de vida de um código.

O Zeev passou por intenso processo de refatoração. Nesse processo conseguimos identificar muitos códigos duplicados, códigos não utilizados mais ou códigos que poderiam ser otimizados. Também identificamos muitas questões de liberação de memória.

Como exemplo, o código .NET que monta a tela de uma tarefa, um dos mais complexos do sistema, possui no BPMS3 cerca de 4.000 linhas. No Zeev conseguimos na mesma tela implementar mais funcionalidades e reduzir o conjunto a 1.800 linhas.

Menos códigos significa menos possibilidade de erro, mais facilidade de manutenção e foco no que é importante: entrega de valor em funcionalidades aos clientes.

Atualmente, o code base do Zeev é composto por mais de 400.000 linhas de códigos, e todas estão sendo revistas ou reescritas nesse projeto.

Foco em API’s REST

Todas as API's baseadas no protocolo SOAP, no Zeev, são depreciadas e não serão mais evoluídas. Serão, entretanto, mantidas e garantido seu funcionamento.

Desde o BPMS3 já havia a criação e disponibilização de API’s usando o padrão REST, e no Zeev isso se torna o padrão. Deve-se evitar utilizar para novos projetos a API legada e, caso exista necessidade de algum método faltante na API nova, informar a equipe da Zeev para análise e priorização.

Redução de parâmetros

O BPMS3 possuia cerca de 90 parâmetros configuráveis via interface, e mais 40 parâmetros configuráveis via arquivo de configuração web.config no servidor.

Esses parâmetros ligam e desligam recursos e definem como os recursos devem funcionar.

Dentro da visão de simplificação, mesmo com a criação de novos parâmetros, conseguimos reduzir para 79 parâmetros via interface e 30 parâmetros via web.config.

Menos parâmetros significa menos tarefas administrativas, menos controles, menos possibilidades de problemas. Os parâmetros excluídos eram considerados irrelevantes, pouco ou nada usados ou depreciados.

Rotas

Todos os links / urls / endereços internos do sistema foram modificados para um novo sistema de Rotas. Com isso, os links ficaram mais amigáveis e reconhecíveis. Vejam alguns exemplos abaixo:

Módulos

Antes

Agora

Página inicial

/workflow/wftoday.aspx

/my/services

Minhas tarefas

/workflow/wftoday.aspx

/my/tasks

Tela de tarefa

/workflow/wfflow_execute.aspx?c=123

/1.0/task?c=123

Tela de relatório

/workflow/wfrel_tracker_detail.aspx?c=123

/1.0/audit?c=123

Apesar que a maioria dos links anteriores devem continuar funcionando, é altamente recomendável que se você possui salvos links ao Zeev em outras plataformas (exemplo, sua intranet), atualize para o novos links.

Atualização da biblioteca Bootstrap 2.3 para Bootstrap 4

O Bootstrap é a biblioteca de componentes front-end mais popular do mundo, focada no desenvolvimento de aplicações responsivas para dispositivos móveis e web. Toda a interface do BPMS está sendo trocada de componentes Bootstrap versão 2.3 para a última versão, 4

Esse é um processo gradual. Além da migração de todas as telas do sistema, temos preocupação com customizações realizadas por clientes em telas do sistema que dependem de componentes do Bootstrap 2.3 ou de sua estrutura HTML.

No momento da liberação do RC1, cerca de 80% das telas do sistema já foram migradas.

Para os que desejarem realizar customizações visuais ou criar skins visuais, podem se basear na documentação do Bootstrap em https://getbootstrap.com/docs/4.2/getting-started/introduction/

Remoção gradual do suporte a dependência de jQuery

jQuery é uma biblioteca central Javascript com foco na manipulação de documentos HTML, CSS e animações. Em maio de 2019 era usada por 73% dos 10 milhões de websites mais populares do mundo. A versão 3 do BPMS possui alta dependência do jQuery.

Nos últimos anos o jQuery tem diminuído sua influência no desenvolvimento web, principalmente devido a navegadores mais robustos e completos e novos frameworks de desenvolvimento.

Na última pesquisa anual do site Stack Overflow, jQuery apareceu na segunda colocação na lista de web frameworks mais temidos por desenvolvedores. O percentual indica o total de desenvolvedores que atualmente usam a tecnologia mas não desejam mais continuar.

A substituição completa do jQuery por componentes nativos Javascript no Zeev ainda poderá levará alguns anos, devido a alta dependência. O guideline geral é que todas as novas telas desenvolvidas usem Javascript nativo. Com isso espera-se a diminuição geral do tamanho das páginas e melhor performance. No momento da liberação do Zeev RC1, cerca de 50% das páginas do Zeev não dependem mais do jQuery.

A utilização do Bootstrap 4.1 poderia representar uma contradição em relação a orientação sobre jQuery, na medida em que o Bootstrap 4.1 depende de jQuery. Para isso o Zeev não utiliza os componentes Javascript padrão do Bootstrap 4.1, dependentes de jQuery, e sim um projeto alternativo, Native Bootstrap, com componentes alternativos sem dependência.

É importante destacar que o Bootstrap 5, em desenvolvimento pela comunidade Open Source, igualmente não dependerá mais de jQuery.

Recomendamos fortemente que não seja mais utilizado o jQuery para customizações de processos.

Em todo o caso, como foi citado antes, processos já existentes e que estejam configurados para usar o “modo de execução 1.0” continuarão a ter a mesma estrutura HTML e de componentes já existentes hoje. Ou seja, nessas páginas, o jQuery continuará existindo e sendo chamado nativamente.

Caso o desenvolvedor deseje usar o novo “modo de execução 2.0” e ainda assim continuar a usar jQuery, poderá fazê-lo, simplesmente adicionando manualmente essa biblioteca no cabeçalho do formulário eletrônico.

Veja, abaixo, uma série de perguntas e respostas sobre a mudança acima.

Perguntas frequentes

Migração plataforma .NET

Originalmente o Orquestra foi desenvolvido utilizando a plataforma .NET Framework 2.0. Na versão BPMS3, a plataforma foi migrada para .NET Framework 4.0. Mais recentemente, as últimas versões do sistema utilizam a plataforma .NET Framework 4.6

O sistema possui uma dependência média da tecnologia de WebForms, um dos componentes da tecnologia ASP.NET, parte do .NET Framework. Cerca de 50% das telas do sistema utilizam componentes WebForms.

Mais recentemente a tecnologia ASP.NET WebForms, assim como .NET Framework X foram depreciados pela Microsoft em substituição a tecnologia Microsoft .NET Core. Além de mais otimizada e escalável, a plataforma tecnológica .NET Core permite rodar sistemas em servidores usando LINUX.

A migração completa do Zeev para .NET Core ainda poderá alguns anos. Entretanto, no momento da liberação do RC1, somente 5% dos módulos / páginas ainda utilizam WebForms. Os demais já foram migrados para um paradigma de HTML, CSS, Javascript e código .NET puros.