Definições de compatibilidade – tudo o resto (Parte 4)

Tradução automática de Deepl

Começámos uma série de posts no blogue sobre configurações de compatibilidade e as opções secretas que podem ajudar drasticamente a melhorar o desempenho e comportamento das suas aplicações(QUERY BY FORMULA, Transactions and period and comma). Este post final da série dará uma visão geral das restantes configurações.

Aqui está um exemplo de uma estrutura criada há muitos anos. As opções de compatibilidade estão desactivadas, o que significa que está a funcionar inteiramente no modo v17.

Tenha em mente que as configurações de compatibilidade permitem imitar um comportamento mais antigo, mas não é suposto serem permanentes. Concedem-lhe um tempo de migração prolongado, mas não espere muito tempo… ao longo do tempo as opções de migração desaparecem. Considerando que as estruturas criadas recentemente não permitem a utilização destas configurações antigas, são cada vez menos testadas, aumentando o risco de comportamentos inesperados.

Modo unicode

OS X, Windows NT, e 4D v11 (e mais recentes) são concebidos e executados apenas para Unicode. O motor de base de dados 4D só funciona com Unicode. A linguagem suporta um modo de compatibilidade, onde cada linha executada converte texto de/para Unicode a fim de emular a manipulação de codificação MacRoman. E sim, isto diminui o desempenho. Durante os últimos 10 anos, tem havido muitas notas técnicas, sessões 4D Summit e formações sobre como migrar para Unicode. Se ainda não o fez, é altura de começar agora.

Com Unicode activado, deve activar também a configuração de compatibilidade “Guardar métodos como Unicode”. Uma vez activado, cada novo método parsed é guardado em Unicode, permitindo que conjuntos de caracteres estendidos sejam utilizados como caracteres literais no seu código. Não há qualquer problema de compatibilidade com métodos de gravação em Unicode, excepto se utilizar plugins antigos para ler/escrever directamente métodos (que já foram depreciados há muito tempo).

Por último (mas não menos importante), a notação de objectos só é possível com Unicode.

Utilizar o tipo de data em vez do formato de data ISO nos objectos

Esta opção é nova em v17, consulte as datas dentro de objectos postados no blogue para saber mais.

Usar nova arquitectura para implementações de aplicações

Esta opção facilita a criação de aplicações só de leitura e uma vez que o caminho para o último servidor ou ficheiro de dados utilizado já não está armazenado dentro da aplicação, também ajuda a implementar actualizações. Saiba mais neste post do blogue.

Prevenir a queda de dados não provenientes de 4D

Se esta configuração estiver activada, as suas aplicações ainda funcionam no modo 4D v2004, onde não foi possível arrastar e largar de outras aplicações para 4D (para além de texto e imagens).

Se ainda não o fez, chegou o momento de suportar o arrastar e largar. Para mais informações, leia os capítulos Arrastar e largar e Gerir cartão de pasta na documentação.

Não utilizar o novo modo de referência de contexto

Este cenário é tão antigo que, sinceramente, nem me lembro se isto emula 4D 6.0 ou 6.5.

Se não usar o Servidor Web 4D, basta desactivá-lo. Se o usar, está activado, e não toca no seu código há 15 anos, é altura de uma actualização …

Remover “/” em URLs desconhecidos

Isto coloca o Servidor Web no modo 4D v2003. Se esta configuração estiver activada, é altura de reescrever o seu código.

Atribuição automática de variáveis

Se activado: URGENTE – LEIA ISTO AGORA!

Este é um potencial problema de segurança, possivelmente enorme (dependendo do seu código).

Há 20 anos atrás, esta era uma característica de conforto que foi rapidamente substituída por uma abordagem mais segura (e exigia mais codificação).

Quando activado, as variáveis HTML utilizadas num formulário HTML são automaticamente mapeadas para variáveis 4D, desde que definidas no Compiler_Web. Embora apenas um pequeno subconjunto de variáveis seja tipicamente definido aí, permanece uma ameaça potencial de que essas variáveis possam ser sobrescritas por um hacker.

Uma melhor forma de atribuir variáveis (introduzida com 4D 6.5) é utilizar WEB GET VARIABLES.

4D recomenda vivamente que reescreva o seu código (se necessário) e desactive esta definição.

… em conclusão

Este post final completa a série sobre configurações de compatibilidade, esperamos que tenha gostado. Agora divirta-se com os seus novos conhecimentos de compatibilidade e divirta-se a configurar as suas aplicações para funcionarem em segurança e de forma óptima!

Thomas Maul
• VP de Estratégia, Linha de produtos 4D - Quando a filial Alemanha de 4D foi criada em 1988, Thomas entrou para a empresa como Diretor Técnico, ajudando a criar a comunidade de desenvolvedores 4D tanto na Alemanha quanto na Áustria. Depois de muitos anos apoiando aos clientes com problemas técnicos e estando cada vez mais envolvido em questões de vendas e a gestão, foi promovido a Diretor Geral de 4D Alemanha em 1999. Como membro da junta executiva desde 2005, passou a formar parte da estratégia mundial da empresa, o que o levou a seu cargo atual de Vice-presidente de Estratégia, Linha de Produtos 4D, responsável de definir e executar a estratégia global para a linha de Produtos 4D em relação às equipes de Programa, I+D, Vendas e Marketing.