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!