sgcWebSockets 2026.10 jest już dostępny. Przez tę wersję przewijają się dwa wątki: sgcHTML urósł o elementy, których potrzebuje biznesowa aplikacja webowa i których nie musisz już pisać ręcznie, a kryptografia stała się postkwantowa bez dodania choćby jednej zewnętrznej biblioteki.
Aplikacje webowe: nudna część, załatwiona
Sesje, logowanie i CSRF. Nowy komponent TsgcHTMLAuth i jego magazyny sesji utrzymują ciasteczko, odpowiadają na żądania logowania i wylogowania, zamykają nieaktywne sesje i ograniczają nieudane próby logowania. Token CSRF podróżuje w znaczniku meta, htmx dodaje go samodzielnie do każdego żądania, a serwer odrzuca post, który go nie niesie.
FAuth := TsgcHTMLAuth.Create(Self);
FAuth.SessionStore := TsgcHTMLSessionStore_Memory.Create(Self);
FAuth.CookieName := 'app_session';
FEngine.Auth := FAuth;
Trasy, które czyta się jak trasy. Parametry ścieżki, filtr metod oraz dostęp do nagłówków, ciasteczek i treści żądania:
with FRouter.Routes.Add do
begin
Path := '/customers/{id}/edit';
Methods := [hrmGet, hrmPost];
RequireLogin := True;
RequireRoles := 'admin,sales';
end;
Strony, które można testować. DispatchDirect odpowiada na żądanie bez żadnego gniazda za nim, a nowa jednostka odczytuje wygenerowany HTML, znajduje elementy po id, klasie, znaczniku lub atrybucie i porównuje stronę z zapisaną kopią, dzięki czemu niezamierzoną zmianę w znacznikach wychwytuje test, a nie klient.
Nawigacja, która przypomina aplikację. Strony zmieniają się bez pełnego przeładowania i zachowują pozycję przewijania oraz to, co użytkownik akurat wpisywał, z paskiem ładowania, oknem dialogowym, gdy połączenie się zrywa, i komunikatem, gdy żądanie się nie powiedzie. Wszystko to domyślnie wyłączone.
Cztery najważniejsze funkcje
Każda z nich ma osobny artykuł, podlinkowany na końcu, więc tutaj tylko czym jest:
- MCP Apps. Narzędzie MCP, które odpowiada stroną zamiast akapitem, renderowaną wewnątrz ChatGPT, Claude lub VS Code, zbudowaną z tych samych komponentów co każda inna strona sgcHTML.
- Generator stron oparty na AI. Opisz stronę albo daj projektantowi zrzut ekranu, a on zbuduje ją z twoich zarejestrowanych komponentów jako kandydata, którego akceptujesz albo odrzucasz.
- Komponent CRUD. Lista, wyszukiwanie, stronicowanie, formularz, usuwanie i ścieżka zapisu jednego zbioru danych, na TDataSet albo na twoim własnym SQL, z kreatorem w IDE i generatorem z linii poleceń.
- AI Data Pack. Zadaj pytanie w zwykłym języku siatce, tabeli danych albo tabeli przestawnej, z parserem opartym na regułach, który odpowiada nawet wtedy, gdy nie ma żadnego klucza API.
Push, na dwa sposoby
Server sent events mogą teraz przenosić aktualizacje zamiast WebSocketu, z odtworzeniem tego, co zostało pominięte podczas rozłączenia, i działa to ze zwykłym serwerem HTTP. Web Push dociera do przeglądarki, która jest zamknięta. Razem z nimi pojawiają się skrzynka powiadomień i tabela preferencji, a komponent powiadomień decyduje, który kanał otrzymuje dany użytkownik.
AI: odpowiedzi, na których można działać
TsgcAIChat może poprosić o JSON zgodny ze schematem, który podasz, w OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok i Mistral, przez nową metodę ChatJSON, która analizuje odpowiedź i pyta ponownie, dołączając błąd analizy, gdy nie da się jej odczytać. Komponent czatu wysyła i odbiera teraz także obrazy, a BaseUrl jest teraz respektowany przez każdego dostawcę, a nie tylko przez Ollama, więc każdego z nich można skierować na proxy albo lokalną bramę.
Kryptografia: postkwantowa, w Object Pascalu
ML-KEM (FIPS 203), ML-DSA (FIPS 204) i SLH-DSA (FIPS 205), hybrydowa enkapsulacja kluczy X-Wing, postkwantowe certyfikaty X.509 i urzędy certyfikacji oraz JWT podpisywane ML-DSA. Wszystko napisane w Object Pascalu w pakiecie sgcCrypto, bez żadnej zewnętrznej biblioteki, zweryfikowane wobec znanych wektorów odpowiedzi NIST.
Na tym opiera się natywny silnik TLS 1.3, także w czystym Pascalu: klient albo serwer mówi w TLS bez OpenSSL i bez SChannel, negocjując hybrydowe postkwantowe grupy z RFC 10024, z ALPN, S N I, certyfikatami klienta i opcjonalnym użyciem magazynu zaufania systemu operacyjnego.
Klasyczna strona została wzmocniona przy tej samej okazji: zaślepione RSA w stałym czasie, mnożenie skalarne krzywej eliptycznej w stałym czasie i Ed25519, AES i GHASH bez tabel, importowane klucze prywatne sprawdzane wobec ich publicznej połowy oraz odrzucane niezminimalizowane podpisy DER.
Poprawki warte wymienienia
- Podpisywanie i walidacja JWT kluczami RSA i ECDSA oraz uszkodzenie pamięci w aplikacjach 32-bitowych, gdy OpenSSL jest linkowany statycznie.
- Obsługa SChannel zostawiała kopię klucza prywatnego w magazynie kluczy Windows przy każdym połączeniu korzystającym z pliku PFX i nie wysyłała certyfikatu klienta na nowszych wersjach Windows.
- Równoczesne połączenia SChannel korzystające z certyfikatu z magazynu Windows kończyły się niepowodzeniem uzgadniania.
- Serwer OAuth2 odrzucał dowody DPoP podpisane kluczami RSA.
- Podpisane adresy URL CloudFront, których podpis nie był zakodowany w sposób bezpieczny dla URL.
.NET
Biblioteka .NET nadąża: uwierzytelnianie i sesje z mostkiem ClaimsPrincipal dla ASP.NET Core, router, narzędzia testowe, nawigacja SPA, transport SSE z natywnym punktem końcowym, ustrukturyzowane wyjście, AI Data Pack, Web Push, MCP Apps i komponent CRUD wraz z adapterami, wszystko pod tymi samymi nazwami API co w Delphi.
Aktualizacja
Wszystko, co nowe, jest addytywne i domyślnie wyłączone. Dodaj nowe jednostki, przebuduj swoje pakiety, a istniejąca aplikacja będzie zachowywać się dokładnie tak jak wcześniej.
Pełne wersje
- Uruchom swoją aplikację Delphi wewnątrz ChatGPT i Claude
- Zamień zrzut ekranu w stronę webową Delphi
- Delphi TLS 1.3 bez DLL-i OpenSSL
- Strona internetowa CRUD w Delphi w pięć minut
- Zadaj pytanie swojej siatce Delphi prostym językiem angielskim
- Dotrzyj do zamkniętej przeglądarki, z Delphi
Zobacz wideo
Jest na ten temat krótkie wideo na kanale eSeGeCe.
Pytania, uwagi lub pomoc przy migracji? Skontaktuj się z nami — otrzymasz odpowiedź od osób, które napisały ten kod.
