Saltar para o conteúdo principal
Versão: 20

Notas de lançamento

tip

Leia O que há de novo no 4D 20, a postagem do blog que lista todos os novos recursos e aprimoramentos no 4D 20.x LTS.

4D 20.5 LTS

Destaques

  • 4D 20.5 LTS é certificado no Windows 11 24H2.
  • O 4D 20.5 LTS é certificado no macOS Sequoia (macOS 15).
Problema conhecido no Windows 11 24H2

No Windows 11 24H2, a geração de PDF usando o driver Microsoft Print to PDF pode falhar devido a um problema que ainda está sendo investigado. Se você imprime PDFs com frequência com sua aplicação 4D, atualmente recomendamos que não faça a atualização para o Windows 11 24H2.

4D 20.4 LTS

Destaques

4D 20.3 LTS

Destaques

  • CEF atualizado para o Chromium 5993
  • SpreadJS atualizado para a versão 16.2.6 (em 4D 20.2 HF1).
  • Lista de bugs corrigidos: lista de todos os erros corrigidos no 4D 20.3 LTS.

Mudanças de comportamento

  • A partir do 4D 20.3, para permitir a verificação da senha quando o diretório de usuários 4D usa o algoritmo bcrypt, o valor da "senha" no parâmetro connectionInfo do comando `Open datastore` agora é enviado em texto claro por padrão. Certifique-se de que seu método banco de dados "On REST authentication" possa lidar com senhas em formato claro (o terceiro parâmetro é False) e que Open datastore criptografe sua conexão passando a opção "tls" para True em connectionInfo. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para compatibilidade (consulte o comandoOpen datastore).

4D 20.2 LTS

Destaques

  • 4D 20.2 é certificado em macOS Sonoma (macOS 14).
Nota de segurança

Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a atualização para a versão 4D 20.2 LTS build 100956 ou superior. Para obter mais informações, consulte este boletim de segurança.

Versão mínima cliente para 4D Server v20.2 e posterior

Por razões internas, a versão de clientes remotos conectando ao 4D Server 20.2 e posterior deve ser pelo menos 4D 20.2.

Mudanças de comportamento

  • A partir da 20.2, o 4D 20 LTS não é mais compatível com o Windows Server 2012 R2.
  • Aviso: O valor inicial do offset/deslocamento dos objetos 4D.FileHandle foi incorretamente definido como 1 em vez de 0. Foi feita uma correção no 4D a partir das versões 20.2 (20.1 HF1) e 20 R2 e o valor agora é 0.

4D 20.1 LTS

Destaques

4D 20.1 reconstrução do índice e versões cliente/servidor

4D 20.1 também inclui uma atualização da biblioteca ICU, que tem as seguintes consequências:

  • Isso forçará uma reconstrução automática dos índices do tipo alfa, texto e objeto.
  • Por causa da consistência de ordenação, é necessário que os clientes remotos 4D e o 4D Server usem a mesma versão: somente o 4D 20.1 remoto pode se conectar ao 4D Server 20.1 e vice-versa.

4D 20 LTS

Destaques

Reconstrução dos índices

4D 20 inclui uma atualização da biblioteca ICU (veja abaixo) que forçará uma reconstrução automática dos índices do tipo alfa, texto e objeto. Dependendo do tamanho do ficheiro de dados, esta operação pode demorar algum tempo e pode necessitar de ser planeada.

Mudanças de comportamento

  • Para conformidade com HTTP RFC, HTTPRequestClass.response.headers propriedade devolve agora todos os nomes de cabeçalho em minúsculas. Se quiser que o seu código continue a funcionar como antes, utilize a nova propriedade HTTPRequestClass.response.rawHeaders.
  • Os certificados TLS agora são validados automaticamente por 4D ao enviar solicitações HTTP com 4D.HTTPRequest.new() e rejeitados com um erro se forem inválidos. Uma nova propriedade option permite-lhe controlar esta validação.
  • TLS v1.0 e TLS v1.1 são obsoletos, não são mais suportados como Min TLS versão no 4D Server. A versão 1.3 agora é selecionada por padrão sendo usada automaticamente se as constantes _o_TLSv1_0 ou _o_TLSv1_1 forem definidas com SET DATABASE PARAMETER.
  • Para fins de consistência, todos os botões, caixas de seleção e botões de rádio agora são renderizados com um tipo "3D" em tempo de execução: respectivamente Object type 3D button, Object type 3D checkboxe Object type 3D radio button são retornados por OBJECT Get type para esses objetos.
  • A partir de 4D 20, 4D para Mobile não está mais instalado por padrão no ambiente 4D. Para se beneficiar da 4D para recursos de desenvolvimento móvel em 4D, você precisa instalar o componente 4D Mobile App na pasta "Components" de seus projetos. Se um projeto convertido usar recursos do componente 4D Mobile App Server, certifique-se de instalá-lo também na pasta "Components" do projeto.

4D 19 R8

Leia O que há de novo no 4D v19 R2, a postagem do blog que lista todos os novos recursos e aprimoramentos no 4D v19 R2.

Destaques

::: - suporte a temas em tabelas: novos comandos VP SET TABLE THEME e VP Get table theme, suporte a opções de tema no VP CREATE TABLE - novo comando VP Get table dirty rows

Mudanças de comportamento

  • Para conformidade com HTTP RFC, HTTPRequestClass.response.headers propriedade devolve agora todos os nomes de cabeçalho em minúsculas. Se quiser que o seu código continue a funcionar como antes, utilize a nova propriedade HTTPRequestClass.response.rawHeaders.
  • Quando um botão chanfrado com menu pop-up vinculado é atribuído a uma ação padrão, a ação padrão não é mais gerada se uma opção de menu pop-up for selecionada.
  • Nas áreas da Web que usam blink (CEF), as caixas de diálogo exibidas a partir de scripts externos agora estão bloqueando se não forem chamadas a partir de uma função setTimeout() JS. Isso se deve às atualizações atuais da CEF, nas quais as caixas de diálogo exibidas por funções como alert() ou print() não são mais tratadas pelo sistema operacional, mas pela área da Web. Veja WA Avaliar JavaScript e WA EXECUTE JAVASCRIPT.

4D 19 R7

Leia O que há de novo em 4D 19 R7, o post do blog que lista todas as novas funcionalidades e melhorias em 4D 19 R7.

Destaques

Mudanças de comportamento

  • Para manter a consistência com as interfaces padrão (por exemplo, exploradores de arquivos do sistema operacional), as regras da caixa de listagem para seleção de linhas/arrastar e soltar foram modificadas. Uma seleção contínua ou descontínua de linhas pode ser arrastada simplesmente clicando e movendo uma linha selecionada; a tecla Alt não é mais necessária (mas ainda pode ser usada como na versão anterior). Quando a tecla Shift ou Ctrl/Command é pressionada, um clique do mouse é levado em consideração quando o clique é para baixo. Para obter mais informações sobre arrastar e soltar em caixas de listagem, você pode consultar esta postagem do blog e fazer download do este projeto HDI 4D.
  • A numeração de compilação interna do 4D foi modificada a partir do 4D 19 R7:
    • as versões até 4D 19 R6 (inclusive) são numeradas como 282xxx,
    • lançamentos de 4D 19 R7 serão numerados 100xxx.
      Note que uma versão 4D específica ainda é identificada exclusivamente por um nome de branch e um número de compilação. O número de build aumenta cronologicamente.
  • A capacidade de usar o protocolo REST do Wakanda/4D Mobile para chamar um método de projeto foi removida. Você pode usar ORDA data model class funções ou /4DACTION urls em vez disso.

4D 19 R6

  • Nova classe HTTPRequest.
  • Funções de coleção que podem chamar código agora suportam objetos de função como parâmetro fórmula: .every(), .filter(), .find(), .findIndex(), .map(), .orderByMethod(), .reduce(), .some(), .sort()
  • As células de listbox suportam preenchimento horizontal e vertical.
  • 4D View Pro: novos comandos VP CREATE TABLE e VP REMOVE TABLE para lidar com tabelas em planilhas.
  • Capacidade de ver atributos relacionados, computados e de alias no Web Data Explorer.
  • Para nos ajudar a tornar nossos produtos cada vez melhores, agora coletamos automaticamente dados sobre estatísticas de uso em aplicativos 4D Server em execução. Este fato não terá qualquer impacto no desempenho. Veja a nova página que explica por que e como 4D coleta dados.
  • Componentes compilados para Silicon: Nas plataformas macOS Silicon (CPUs ARM da Apple), os componentes devem ser recompilados com o 4D 19 R6 ou superior para serem usados com esta versão.

4D 19 R5

  • O arquivo directory.json do projeto agora pode ser incorporado ao servidor no momento da compilação, permitindo a implementação de um aplicativo cliente/servidor com uma configuração básica de segurança de usuário e grupo.

  • Agora você pode desmarcar módulos inúteis em seus aplicativos criados.

  • A biblioteca MeCab está incluída por padrão em todos os aplicativos 4D no macOS. Em versões anteriores, essa biblioteca, especificamente projetada para gerenciar texto em japonês, estava disponível apenas na versão japonesa do 4D no macOS. Se não precisar dessa biblioteca em seus aplicativos finais, agora você pode desmarcá-la.

  • Otimização cliente/servidor: novas funções de classe permitem que você manipule o cache ORDA e o conteúdo de um contexto de otimização. Consulte pré-configurando contextos e Cache ORDA para obter mais informações.

    Essas funções são destinadas a desenvolvedores que precisam personalizar os recursos padrão do ORDA para configurações específicas. Na maioria dos casos, você não precisará usá-los.

  • Classe DataClass: A nova função .getCount() retorna o número de entidades em uma classe de dados.

  • O arquivo 4DDiagnosticLog.txt registra apenas informações de alto nível por padrão (nível INFO). Agora é possível selecionar o nível de informação a ser registrado (por exemplo, informações de nível DEBUG) usando o seletor Diagnostic log level do comando SET DATABASE PARAMETER ou o arquivo de configuração de log.

  • Chamar Use() em um objeto não compartilhado ou em uma coleção não compartilhada não faz nada (não gera mais um erro). Portanto, agora é inútil testar se o objeto ou coleção passado para Use() é realmente compartilhado.

  • Para fins de esclarecimento, dois comandos SQL foram prefixados: GET DATA SOURCE LIST foi renomeado para SQL GET DATA SOURCE LIST, Get current data source foi renomeado para SQL Get current data source.

  • 4D View Pro:

  • Áreas Web:

    • Novo mecanismo de renderização do sistema Windows: As áreas da Web que usam o mecanismo de renderização do sistema Windows agora são baseadas no Microsoft Edge WebView2. Isto afeta as seguintes funcionalidades:
      • Os comandos WA Create URL history menu e WA GET URL HISTORY retornam apenas o URL atual.
      • A variável Progression não é mais atualizada.
      • Os recursos de arrastar e soltar são gerenciados por uma API do Windows que é classificada como "experimental" pela Microsoft. Consequentemente, as áreas da Web podem não funcionar como esperado quando essa API não estiver instalada: Arrastar e soltar pode parecer permitido mesmo quando a preferência WA enable URL drop tiver sido definida como False. No entanto, a ação de soltar é bloqueada por padrão, e você pode controlar os URLs permitidos usando o evento On Window Opening Denied (veja abaixo).
    • (Somente Windows) Quando o usuário seleciona Print... em uma área da Web usando o mecanismo de renderização da Web incorporado, uma nova janela de configurações de impressão é exibida.
    • Para refletir seu efeito real nas áreas da Web (aumentar ou diminuir o nível de zoom da página), dois comandos foram renomeados: WA SET PAGE TEXT LARGER foi renomeado para WA ZOOM IN, WA SET PAGE TEXT SMALLER foi renomeado para WA ZOOM OUT.
    • Segurança aprimorada em áreas da web que utilizam o motor de renderização da web incorporado ou o motor de renderização do sistema Windows (baseado no Microsoft Edge WebView2):
      • As políticas CORS agora se aplicam ao acesso a arquivos em disco em áreas da Web. Por exemplo, ao abrir um arquivo .html com WA OPEN URL, esse arquivo .html não pode conter links que apontem para arquivos fora de sua pasta
      • Soltar um conteúdo externo dentro das áreas da web agora está bloqueado e aciona o evento On Window Opening Denied quando a preferência WA enable URL drop for definida como Verdadeiro (quando definido como falso, a preferência WA enable URL drop modifica só o ícone de cursor e filtra o evento On Window Opening Denied). Para permitir uma ação de soltar, você precisa executar um código adicional no método de objeto da área da Web:
WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea"))

4D 19 R4

  • Atributos de alias estão disponíveis nas classes ORDA.
  • Suporte a instruções break e continue em loops.
  • Suporte para a declaração return e return expression para retornar valores.
  • Suporte para operadores de atribuição compostos, operadores de curto-circuito e operador ternário
  • O Code Editor agora inclui uma ferramenta suspensa e suporta marcadores para melhorar a navegação do código.
  • Novas Preferências: Incluir tokens nos arquivos de origem do projeto e a opção Mostrar pranchetas na página de Métodos.
  • Nova solicitação REST para bloquear/desbloquear entidades.
  • 4D View Pro capítulo adicionado com novos comandos: VP Copy to object, VP MOVE CELLS, VP PASTE FROM OBJECT.
  • Nova classe SystemWorker.
  • A constante Alias selection foi renomeada para Allow alias files para resolver um conflito resultante do suporte de atributos de alias no ORDA.
  • Para melhor conformidade com as especificações ORDA, a propriedade de campo Map NULL values to blank values agora está desmarcada por padrão em bancos de dados criados com 4D 19 R4 e superior. Você também pode ativar esse comportamento padrão em seus bancos de dados convertidos de versões anteriores selecionando a configuração de compatibilidade Mapear valores NULOS para valores em branco desmarcada por padrão na criação do campo. Agora é recomendável trabalhar com valores nulos, pois eles são totalmente compatíveis com o ORDA.
  • Por causa do suporte do operador ternário, o dois pontos ":" não é mais permitido em nomes de variáveis, campo, constante, função, plugin e o método do projeto. Se o seu banco de dados/projeto contiver identificadores com dois-pontos, você deverá substituí-los antes de convertê-lo para a v19 R4 ou superior; caso contrário, poderão ocorrer erros no seu código. Por exemplo, se você tiver uma variável denominada a:b, ela poderá ser interpretada como sintaxe de operador ternário:
$value:=($size>1000)? a:b // Aqui 'a:b' é visto como um operador ternário.

4D 19 R3

// "concate" function of myClass Function concate ($param1 : Text ; $param2 : Text)
ALERT($param1+" "+$param2)
// Calling method
$class:=cs.myClass.new()
$class.concate("Hello";" world") // Displays "Hello world"
$class.concate("Hello") // Displays "Hello "
$class.concate() // Displays " "

Para obter informações pormenorizadas, consulte esta publicação do blogue. Para beneficiar desta simplificação global, é necessário recompilar tanto os métodos chamados como os que são chamados; assim, os componentes devem ser recompilados.

  • A depuração das sessões do servidor web é mais fácil no 4D Server.

  • O novo componente 4D NetKit permite que você se conecte a APIs de terceiros, como o Microsoft Graph.

  • 4D 19 R3 usa um algoritmo hash mais forte para senhas de usuários 4D: Bcrypt. Esse novo algoritmo é usado automaticamente quando uma senha é alterada usando a Caixa de ferramentas, o comando CHANGE PASSWORD ou o comando Set user properties . Depois que a senha for modificada, abrir o banco de dados com uma versão anterior ao 4D 19 R3 causará uma recusa de autenticação para essa conta. Se você usa senhas 4D, é altamente recomendável fazer backup do arquivo .4db (bancos de dados binários) ou do arquivo directory.json (projetos) antes de atualizar para o 4D 19 R3 ou posterior.

  • Para fins de precisão, a constante 4D digest foi renomeada para 4D REST digest.

  • Gerenciamento de fim de linha e BOM para comandos XML: Quando abertos no 4D 19 R3, os projetos ou bancos de dados criados com versões anteriores se comportam de forma diferente em relação aos caracteres de fim de linha padrão e ao gerenciamento de BOM em documentos XML: os caracteres de avanço de linha (LF) são usados em vez de CR (no macOS) e as marcas de ordem de byte (BOM) não são incluídas. Isso permite uma melhor compatibilidade com as ferramentas VCS. Se necessário, você pode restaurar o comportamento da v19 R2 usando o comando XML SET OPTIONS . Em projetos ou bancos de dados convertidos de versões anteriores ao 19 R2, essas opções são gerenciadas por duas configurações de compatibilidade.

  • Atalho do Runtime Explorer removido em projetos criados: O atalho Cmd/Ctrl+Shift+F9 não exibe mais a janela do Runtime Explorer em aplicativos de projetos mesclados de usuário único. Esse atalho agora pode ser um atalho de aplicativo do usuário. Você pode chamar a janela do Runtime Explorer usando o novo comando OPEN RUNTIME EXPLORER .

  • Recursos de depuração ampliados com o 4D Server: No modo interpretado, o 4D Server agora pode depurar todos os tipos de processos, incluindo sessões da Web escalonáveis. Isso está disponível quando o depurador está conectado ao servidor ou a um cliente remoto.
    Aviso: No modo interpretado, para disponibilizar a depuração estendida no computador do servidor, todos os processos do servidor agora são executados automaticamente no modo cooperativo quando o depurador está conectado ao servidor (configuração padrão). Isso pode ter um impacto significativo no desempenho de seus aplicativos convertidos quando eles são executados com o 4D Server v19 R3 e superior. Para restaurar a execução preemptiva no servidor nesse caso, tudo o que você precisa fazer é desconectar o depurador do servidor (e conectá-lo a um cliente remoto, se necessário).

  • No Windows, os projetos e bancos de dados 4D criados com o 4D 19 R3 e superior usam a API DirectWrite em formulários. Essa API melhora a renderização de texto, especialmente em configurações de DPI alto. O DirectWrite é usado para renderização de texto com texto estático e de entrada, caixas de seleção, botões e botões de rádio. Observe que as caixas de listagem já usam DirectWrite. Uma opção de compatibilidade permite que você ative o DirectWrite em projetos e bancos de dados criados com versões anteriores do 4D.

  • Se você usar componentes compilados com o 4D 19.0 para Silicon (CPUs ARM da Apple) que chamam o comando Count parameters, recomendamos recompilá-los com o 4D 19 R3 para oferecer compatibilidade com o 4D 19 R3 e versões futuras. Se um componente não for compilado para o Silicon, não será necessário recompilar.

4D 19 R2

4D 19.x LTS

Veja Notas de lançamento para 4D 19.x LTS.

Tabela das bibliotecas (4D 20 LTS)

BibliotecaVersão atualAtualizado em 4DComentário
ICU73.220.1Essa grande atualização força uma reconstrução automática dos índices alfanuméricos, de texto e de objetos.
CEF11820.3Chromium 5993
Hunspell7.3.2720Usado para verificação ortográfica em formulários 4D e 4D Write Pro
PDFWriter4.320Dependência FreeType na 12.2.1
SpreadJS16.2.620.2 HF1Motor 4D View Pro
19.620
OpenSSL3.1.620.4 HF2
libZip19.520Utilizado pelos componentes zip class, 4D Write Pro, svg e serverNet
LZMA5.4.120
Zlib14.1.620
webKitWKWebView19
PHP8.2.420
libldap2.6.420
libsasl2.1.2820