03 · Architektúra
Egy alkalmazás, négy réteg.
A platform leírása
A platform architektúrája
A NOVERA egyetlen, Razor Pages-re épülő ASP.NET Core 8 alkalmazás, amelyet egyetlen assemblyként telepítünk, és a felszín alatt egyszerű. Nagyjából 320 C#- és Razor-fájl tartalmaz mintegy 182 000 sor alkalmazáskódot, amelyet 82 szolgáltatás és körülbelül 22 000 sor stíluslap egészít ki.
Két döntés határoz meg minden mást.
- A projekt pontosan egy csomaghivatkozást tartalmaz, és új csomag nem vehető fel.
- A megoldásban sehol nincs objektum-relációs leképező (ORM), front-end keretrendszer vagy build-lépés.
Adatelérés. Minden SQL kézzel írt, verbatim interpolált karakterláncokban, mindenütt típusos, kötött paraméterekkel. Az egyetlen csomaghivatkozás az általa hozott SQL-kliens könyvtár miatt szerepel; a projekt nem használ leképezőt.
- Előny: a rendszer által kiadott minden utasítás elolvasható, megmagyarázható és hangolható. Ez nagyon sokat számít egy szokatlan konvenciókat követő, húszéves főkönyv esetében.
- Költség: a helyesség keretrendszer helyett fegyelmen múlik, ezért létezik a Fejlesztés részben ismertetett ellenőrzőkapu-készlet.
Front end. Egyszerű HTML és CSS, körülbelül egy tucat kis, keretrendszer nélküli JavaScript-modullal, bundler nélkül.
- Egy token-stíluslap határozza meg a színpalettát, a térközöket és a lekerekítéseket; az alkalmazás stíluslapja erre épül; egy harmadik fájl tartalmazza a töréspontokat, és soha semmit nem színez át.
- Huszonegy közös Razor partial szolgál újrafelhasználható vezérlőelemként (lapozó, fordítható kártya, részletező panel, dokumentummegjelenítő, mezőszerkesztő, gazdálkodóegység-jelölő, formázottszöveg-szerkesztő és mások), így egy szabályt egy helyen rögzítünk, és az mindenhol öröklődik.
- A megjelenés sötét tengerészkék és arany arculat, saját szerveren kiszolgált betűtípusokkal, mobile-first elrendezésben öt elnevezett képernyősávra, egyszerre egyetlen látható navigációs felülettel és negyvennyolc pixeles érintési célterületekkel.
Nyelvek és háttérfeladatok. A felület öt nyelven érhető el, 3196 kulccsal, amelyek egyetlen csomagként együtt mozognak; az adatbázisban tárolt neveket újbóli kulcsolás helyett gyorsítótárazott fordító fordítja le. Négy háttérszolgáltatás fut az alkalmazáson belül: emlékeztetők, értesítések, e-mail-osztályozás és a számlafigyelő.
A biztonság ugyanezt a konzervatív irányt követi:
- cookie-alapú hitelesítés, a gazdálkodó egységet claimek hordozzák;
- a jelszavak PBKDF2-SHA256-tal, 210 000 iterációval hash-elve;
- gyakoriságkorlátozott bejelentkezés és két óra után lejáró munkamenetek;
- minden titok rendszerszintű környezeti változóban, soha nem a webszerver által kiszolgált fájlban;
- a nem megbízható HTML szanitizálása minden megjelenítési ponton;
- az éles katalógusokon futtatott SQL-diagnosztika szabály szerint csak olvasható.