Chess960 webes projekt fejlesztése
Fájlok
Dátum
Authors
Folyóirat címe
Folyóirat ISSN
Kötet címe (évfolyam száma)
Kiadó
DOI
Absztrakt
A Chess960 webalkalmazás technológiai alapját a Microsoft .NET 9 / ASP.NET Core keretrendszer adja, amelyet erős teljesítménye, a beépített Dependency Injection és a szerveres sakk-logika biztonságos kikényszeríthetősége miatt választottam. A frontend oldal Blazor WebAssembly segítségével valósult meg, ami lehetővé tette, hogy mind a szerver, mind a kliens egyazon C# kódbázison alapuljon, megszüntetve a kétnyelvű fejlesztés (C# + JavaScript) produktivitási veszteségeit. A valós idejű multiplayer kommunikációt az ASP.NET Core SignalR biztosítja, amely WebSocket-alapú, kétirányú csatornán keresztül juttatja el a lépéseket mindkét játékos böngészőjébe, beépített automatikus újracsatlakozási mechanizmussal kiegészítve. Az adatréteghez az Entity Framework Core ORM-et és az SQLite adatbázismotort alkalmaztam: az EF Core Code-First migrációi verziókövethető sémakezelést biztosítanak, az SQLite egyetlen fájlba csomagolja az adatbázist, ami ideálissá teszi Docker-alapú telepítéshez. A vizuális megjelenítéshez a Tailwind CSS utility-first keretrendszer szolgál, amelynek PurgeCSS-integrációja minimálisra csökkenti a produkciós CSS-fájl méretét, közvetlenül javítva a Blazor WASM kezdeti betöltési idejét. Az alkalmazás Docker Multi-stage build folyamattal kerül konténerizálásra, amelynek végeredménye csupán ~150-200 MB méretű produkciós image, szemben az egyébként lehetséges 1-2 gigabájtos csomaggal. Végül a sakk-logika szerveres validálásához a Rudzoft.ChessLib nyílt forráskódú C# könyvtárat integráltam, amelynek bitboard-alapú belső reprezentációja ezredmásodpercek alatt generálja az összes lehetséges lépést, garantálva a hibamentes és teljesítménye szempontjából elhanyagolható késleltetésű szabályellenőrzést.