sgcWebSockets 2026.10 è disponibile. Due fili conduttori attraversano questa versione: sgcHTML è cresciuto con le parti di cui ha bisogno un'applicazione web aziendale e che non dovrai più scrivere a mano, e la crittografia è diventata post-quantistica senza aggiungere una sola libreria esterna.
Applicazioni web: la parte noiosa, fatta
Sessioni, login e CSRF. Il nuovo componente TsgcHTMLAuth e i suoi archivi di sessione gestiscono il cookie, rispondono alle richieste di login e logout, chiudono le sessioni inattive e limitano i tentativi di accesso falliti. Il token CSRF viaggia in un meta tag, htmx lo aggiunge da solo a ogni richiesta, e il server rifiuta un post che non lo porta con sé.
FAuth := TsgcHTMLAuth.Create(Self);
FAuth.SessionStore := TsgcHTMLSessionStore_Memory.Create(Self);
FAuth.CookieName := 'app_session';
FEngine.Auth := FAuth;
Rotte che si leggono come rotte. Parametri di percorso, un filtro sui metodi, e accesso agli header, ai cookie e al corpo:
with FRouter.Routes.Add do
begin
Path := '/customers/{id}/edit';
Methods := [hrmGet, hrmPost];
RequireLogin := True;
RequireRoles := 'admin,sales';
end;
Pagine che puoi testare. DispatchDirect risponde a una richiesta senza che ci sia un socket dietro, e una nuova unità legge l'HTML generato, trova gli elementi per id, classe, tag o attributo e confronta una pagina con una copia salvata, così un cambiamento non voluto nel markup viene notato da un test e non da un cliente.
Una navigazione che sembra un'applicazione. Le pagine cambiano senza un ricaricamento completo e mantengono la posizione di scorrimento e ciò che l'utente stava digitando, con una barra di caricamento, una finestra di dialogo quando la connessione cade e un messaggio quando una richiesta fallisce. Tutto disattivato di default.
Le quattro funzionalità principali
Ognuna di queste ha un proprio articolo, collegato alla fine, quindi qui trovi solo che cos'è:
- MCP Apps. Uno strumento MCP che risponde con una pagina invece che con un paragrafo, renderizzata dentro ChatGPT, Claude o VS Code, costruita con gli stessi componenti di qualsiasi altra pagina sgcHTML.
- Il generatore di pagine con IA. Descrivi una pagina, o consegna al designer uno screenshot, e la costruisce a partire dai tuoi componenti registrati come un candidato che accetti o scarti.
- Il componente CRUD. Elenco, ricerca, paginazione, form, eliminazione e il percorso di scrittura di un dataset, su un TDataSet o sul tuo SQL, con una procedura guidata nell'IDE e un generatore da riga di comando.
- L'AI Data Pack. Fai una domanda in linguaggio semplice a un grid, a una data table o a una tabella pivot, con un parser basato su regole che risponde anche quando non c'è alcuna chiave API.
Push, in due modi
I server sent events possono ora trasportare gli aggiornamenti al posto di un WebSocket, con la ripetizione di ciò che è stato perso durante la disconnessione, e funzionano anche con il semplice server HTTP. Web Push raggiunge un browser che è chiuso. Con loro arrivano una casella di notifiche e una tabella delle preferenze, e il componente di notifica decide quale canale riceve un determinato utente.
IA: risposte su cui puoi agire
TsgcAIChat può richiedere un JSON che segua uno schema fornito da te, su OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral, tramite il nuovo metodo ChatJSON, che analizza la risposta e chiede di nuovo, allegando l'errore di analisi, quando non riesce a leggerla. Il componente di chat ora invia e riceve anche immagini, e BaseUrl è rispettato da ogni provider e non solo da Ollama, così ognuno di essi può essere puntato verso un proxy o un gateway locale.
Crittografia: post-quantistica, in Object Pascal
ML-KEM (FIPS 203), ML-DSA (FIPS 204) e SLH-DSA (FIPS 205), incapsulamento ibrido delle chiavi X-Wing, certificati X.509 post-quantistici e autorità di certificazione, e JWT firmati con ML-DSA. Tutto scritto in Object Pascal nel pacchetto sgcCrypto, senza alcuna libreria esterna, validato rispetto ai vettori di risposta noti del NIST.
Sopra a tutto questo si trova un motore TLS 1.3 nativo, anch'esso in Pascal puro: un client o un server parla TLS senza OpenSSL e senza SChannel, negoziando i gruppi ibridi post-quantistici della RFC 10024, con ALPN, S N I, certificati client e uso opzionale dell'archivio di attendibilità del sistema operativo.
Il lato classico è stato irrobustito nello stesso passaggio: RSA a tempo costante e con blinding, moltiplicazione scalare su curva ellittica a tempo costante ed Ed25519, AES e GHASH senza tabelle, chiavi private importate verificate rispetto alla loro metà pubblica, e firme DER non minime rifiutate.
Correzioni degne di nota
- La firma e la validazione dei JWT con chiavi RSA ed ECDSA, e una corruzione di memoria nelle applicazioni a 32 bit, quando OpenSSL è collegato staticamente.
- Il gestore SChannel che lasciava una copia della chiave privata nell'archivio chiavi di Windows per ogni connessione che usava un file PFX, e che non inviava il certificato client sulle versioni recenti di Windows.
- Le connessioni SChannel concorrenti che usavano un certificato dall'archivio di Windows che fallivano l'handshake.
- Il server OAuth2 che rifiutava le prove DPoP firmate con chiavi RSA.
- Gli URL firmati di CloudFront la cui firma non era codificata in modo sicuro per URL.
.NET
La libreria .NET tiene il passo: autenticazione e sessioni con un ponte ClaimsPrincipal per ASP.NET Core, il router, gli strumenti di test, la navigazione SPA, il trasporto SSE con un endpoint nativo, l'output strutturato, l'AI Data Pack, Web Push, MCP Apps e il componente CRUD con i suoi adattatori, tutto con gli stessi nomi di API di Delphi.
Aggiornamento
Tutto ciò che è nuovo è additivo ed è disattivato di default. Aggiungi le nuove unit, ricompila i tuoi pacchetti, e un'applicazione esistente si comporterà esattamente come prima.
Le versioni complete
- Esegui la tua applicazione Delphi dentro ChatGPT e Claude
- Trasforma uno screenshot in una pagina web Delphi
- Delphi TLS 1.3 senza DLL OpenSSL
- Una pagina web CRUD in Delphi in cinque minuti
- Fai una domanda alla tua grid Delphi in inglese semplice
- Raggiungi un browser chiuso, da Delphi
Guardalo in video
C'è un breve video su questo sul canale eSeGeCe.
Domande, feedback o aiuto per la migrazione? Mettiti in contatto — riceverai una risposta dalle persone che hanno scritto il codice.
