NOVERA.Software

03 · Architektúra

Egy alkalmazás, négy réteg.

Felület

Razor PagesKeretrendszer nélkülBuild-lépés nélkülDesign tokenek21 közös vezérlőelem5 nyelvMobile-first

Modulok

Főkönyv, szállítók és vevőkBankÁfaKimutatásokBefektetésekDokumentum-MIE-mailÜzenetküldésNaptárJegyzetekÉrtesítések

Szolgáltatások

Könyvelési motorPénzügyi adattárÁfamotorKimutatás-adattárBefektetési motorDokumentumkitöltésDevizaárfolyamokFordítás82 szolgáltatás

Adatok

SQL ServerHQFLAUEUNyelvi katalógusKézzel írt SQLKötött paraméterekORM nélkül

MI-átjáró

  • Egy szolgáltatás, minden hívás
  • Alapértelmezés: Claude Sonnet 4.5
  • Kulcs kizárólag környezeti változóból
  • Sem kulcs, sem tartalom nem kerül naplóba

Külső szolgáltatások

  • EKB-árfolyamok
  • Piaci árfolyamforrás
  • Tranzakciós e-mail
  • SMS-átjáró
  • Web Push

Háttérfolyamatok

  • Emlékeztetők rendszeres feldolgozása
  • Értesítések kézbesítése
  • Beérkező levelek osztályozása
  • Számlafigyelő

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ó.