sgcWebSockets 2026.10 ist da. Zwei rote Fäden ziehen sich durch diese Version: sgcHTML hat die Teile bekommen, die eine geschäftliche Webanwendung braucht und die Sie nicht mehr von Hand schreiben müssen, und die Kryptografie ist postquantensicher geworden, ohne eine einzige externe Bibliothek hinzuzufügen.
Webanwendungen: die lästigen Teile, erledigt
Sessions, Login und CSRF. Die neue Komponente TsgcHTMLAuth und ihre Session-Stores verwalten das Cookie, beantworten die Login- und Logout-Anfragen, schließen inaktive Sessions und drosseln fehlgeschlagene Anmeldungen. Das CSRF-Token reist in einem Meta-Tag mit, htmx fügt es von selbst zu jeder Anfrage hinzu, und der Server weist einen Post zurück, der es nicht mitführt.
FAuth := TsgcHTMLAuth.Create(Self);
FAuth.SessionStore := TsgcHTMLSessionStore_Memory.Create(Self);
FAuth.CookieName := 'app_session';
FEngine.Auth := FAuth;
Routen, die wie Routen aussehen. Pfadparameter, ein Methodenfilter und Zugriff auf die Header, die Cookies und den Body:
with FRouter.Routes.Add do
begin
Path := '/customers/{id}/edit';
Methods := [hrmGet, hrmPost];
RequireLogin := True;
RequireRoles := 'admin,sales';
end;
Seiten, die Sie testen können. DispatchDirect beantwortet eine Anfrage, ohne dass ein Socket dahintersteckt, und eine neue Unit liest das erzeugte HTML, findet Elemente über id, Klasse, Tag oder Attribut und vergleicht eine Seite mit einer gespeicherten Kopie, sodass eine ungewollte Änderung im Markup von einem Test bemerkt wird und nicht von einem Kunden.
Navigation, die sich wie eine Anwendung anfühlt. Seiten wechseln ohne vollständigen Neuladevorgang und behalten die Scrollposition und das, was der Benutzer gerade eingegeben hat, mit einem Ladebalken, einem Dialog, wenn die Verbindung abbricht, und einer Meldung, wenn eine Anfrage fehlschlägt. All das standardmäßig deaktiviert.
Die vier zentralen Funktionen
Jede davon hat einen eigenen Artikel, der am Ende verlinkt ist, deshalb hier nur, was sie ist:
- MCP Apps. Ein MCP-Tool, das mit einer Seite statt mit einem Absatz antwortet, gerendert in ChatGPT, Claude oder VS Code, aufgebaut aus denselben Komponenten wie jede andere sgcHTML-Seite.
- Der KI-Seitengenerator. Beschreiben Sie eine Seite, oder geben Sie dem Designer einen Screenshot, und er baut sie aus Ihren registrierten Komponenten als Kandidaten, den Sie annehmen oder verwerfen.
- Die CRUD-Komponente. Liste, Suche, Paging, Formular, Löschen und der Schreibpfad eines Datasets, über ein TDataSet oder über Ihr eigenes SQL, mit einem IDE-Assistenten und einem Kommandozeilen-Generator.
- Das AI Data Pack. Stellen Sie einem Grid, einer Data Table oder einer Pivot-Tabelle eine Frage in einfacher Sprache, mit einem regelbasierten Parser, der auch dann antwortet, wenn überhaupt kein API-Schlüssel vorhanden ist.
Push, auf zwei Wegen
Server sent events können jetzt die Aktualisierungen übertragen statt eines WebSocket, mit erneuter Zustellung dessen, was während der Trennung verpasst wurde, und das funktioniert mit dem einfachen HTTP-Server. Web Push erreicht einen Browser, der geschlossen ist. Ein Benachrichtigungs-Posteingang und eine Einstellungstabelle kommen dazu, und die Benachrichtigungskomponente entscheidet, welchen Kanal ein bestimmter Benutzer bekommt.
KI: Antworten, auf die man handeln kann
TsgcAIChat kann jetzt über die neue Methode ChatJSON nach JSON fragen, das einem von Ihnen vorgegebenen Schema folgt, bei OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok und Mistral; die Methode wertet die Antwort aus und fragt bei einem Parsing-Fehler noch einmal nach, diesmal mit dem Fehler im Anhang. Die Chat-Komponente sendet und empfängt jetzt auch Bilder, und BaseUrl wird jetzt von jedem Anbieter berücksichtigt und nicht mehr nur von Ollama, sodass sich jeder von ihnen auf einen Proxy oder ein lokales Gateway richten lässt.
Kryptografie: postquantensicher, in Object Pascal
ML-KEM (FIPS 203), ML-DSA (FIPS 204) und SLH-DSA (FIPS 205), hybride Schlüsseleinkapselung mit X-Wing, postquantensichere X.509-Zertifikate und Zertifizierungsstellen sowie mit ML-DSA signierte JWTs. All das in Object Pascal geschrieben, im sgcCrypto-Paket, ohne externe Bibliothek, geprüft gegen die bekannten NIST-Testvektoren.
Darauf setzt eine native TLS-1.3-Engine auf, ebenfalls in reinem Pascal: ein Client oder ein Server spricht TLS ohne OpenSSL und ohne SChannel, handelt dabei die hybriden postquantensicheren Gruppen aus RFC 10024 aus, mit ALPN, S N I, Client-Zertifikaten und optionaler Nutzung des Vertrauensspeichers des Betriebssystems.
Die klassische Seite wurde im selben Zug gehärtet: geblindetes RSA in konstanter Zeit, Skalarmultiplikation auf elliptischen Kurven in konstanter Zeit und Ed25519, tabellenfreies AES und GHASH, importierte private Schlüssel, die gegen ihre öffentliche Hälfte geprüft werden, und nicht minimale DER-Signaturen, die zurückgewiesen werden.
Korrekturen, die eine Erwähnung wert sind
- Die Signierung und Validierung von JWT mit RSA- und ECDSA-Schlüsseln sowie eine Speicherbeschädigung in 32-Bit-Anwendungen, wenn OpenSSL statisch eingebunden ist.
- Der SChannel-Handler hinterließ bei jeder Verbindung mit einer PFX-Datei eine Kopie des privaten Schlüssels im Windows-Zertifikatspeicher und sendete auf aktuellen Windows-Versionen kein Client-Zertifikat.
- Gleichzeitige SChannel-Verbindungen mit einem Zertifikat aus dem Windows-Speicher scheiterten am Handshake.
- Der OAuth2-Server wies DPoP-Proofs zurück, die mit RSA-Schlüsseln signiert waren.
- Signierte CloudFront-URLs, deren Signatur nicht URL-sicher kodiert war.
.NET
Die .NET-Bibliothek hält Schritt: Auth und Sessions mit einer ClaimsPrincipal-Brücke für ASP.NET Core, der Router, die Test-Hilfsmittel, die SPA-Navigation, der SSE-Transport mit einem nativen Endpunkt, strukturierte Ausgabe, das AI Data Pack, Web Push, MCP Apps und die CRUD-Komponente mit ihren Adaptern, alles mit denselben API-Namen wie in Delphi.
Aktualisierung
Alles Neue ist additiv und standardmäßig deaktiviert. Legen Sie die neuen Units hinzu, bauen Sie Ihre Pakete neu, und eine bestehende Anwendung verhält sich exakt wie zuvor.
Die ausführlichen Versionen
- Führen Sie Ihre Delphi-Anwendung in ChatGPT und Claude aus
- Verwandeln Sie einen Screenshot in eine Delphi-Webseite
- Delphi TLS 1.3 ohne OpenSSL-DLLs
- Eine Delphi-Web-CRUD-Seite in fünf Minuten
- Stellen Sie Ihrem Delphi-Grid eine Frage in einfachem Englisch
- Einen geschlossenen Browser von Delphi aus erreichen
Video ansehen
Dazu gibt es ein kurzes Video auf dem eSeGeCe-Kanal.
Fragen, Feedback oder Hilfe bei der Migration? Kontaktieren Sie uns — Sie erhalten eine Antwort von den Leuten, die den Code geschrieben haben.
