Lähdekoodidokumentaatio
Huom! Tämän dokumentaation kuvaama lähdekoodi ei ole julkisesti saatavilla. Pääset tutustumaan siihen ottamalla yhteyttä projektin omistajaan
GitHub-profiilin kautta.
Tämän dokumentaation painopiste on lähdekoodissa. Mikäli Blazor ei ole tuttu, paras tietolähde sen kotisivujen jälkeen on YouTube.
Paras ohjelmointiympäristö on mielestäni ilmainen Visual Studio Community,
ei ainoastaan Blazor-sovellusten, vaan yleisemminkin .NET-sovellusten rakentamiseen.
Lähdekoodit
Sovelluksen suunnittelumalli on modulaarinen monoliitti. Jos termi ei ole tuttu, kyseessä on arkkitehtuurimalli, jossa sovellus on jaettu useisiin itsenäisiin moduuleihin, mutta kaikki moduulit toimivat yhdessä yhtenä kokonaisuutena.
Tämä malli tarjoaa etuja, kuten helpomman ylläpidon ja kehityksen, koska moduulit voidaan kehittää ja testata erikseen, mutta ne jakavat saman sovellusympäristön.
Mitä se sitten tarkoittaa? Se tarkoittaa, että sovelluksen eri osat on jaettu selkeisiin osioihin, joita kutsutaan myös moduuleiksi, ja jotka käännetään yhdeksi kokonaisuudeksi. Ohjelmistokehityksen trendit ovat viime vuosina suosineet mikropalveluarkkitehtuuria, jossa sovellus jaetaan pieniin, itsenäisiin palveluihin.
Modulaarinen monoliitti tarjoaa kuitenkin tasapainon monoliittisen ja mikropalveluarkkitehtuurin välillä, jolloin kehittäjät voivat hyödyntää molempien mallien etuja.
Nyt on kuitenkin otettu askeleet sovelluksen hajoittamiseen erillisten palveluiden käyttöön. Sovellus käyttää Api-palveluita sisäisen tietokannan hallinnan sijaan. Jotta homma pysyisi kasassa on
ydinkomponentti shared-dll jossa on kaikkien palveluiden rajapinnat ja muut tarvittavat asiat tiedon hallittun siirtoan palveluiden välillä.
Selain ja verkkosivu
Käyttöliittymä
Android/Windows client
Palvelin
Blazor server prosessi
Tietokanta
Kirjautuminen Api-palvelu
Aikaleima Api-palvelu
click, jne...
DOM-päivitykset
SignalR
Sovelluksen rakenne
Sovellus rakenne on nyt pilkottu dll-tiedostoihin. Ainosstaan serverside sovelluksen peruskoodit on jätety ssr-sovellukseen.
Seuraavasssa vaiheessa voidaan kierrättää tiedostot wasm-sovellukseen . Sovellus on muutettu nyt myös niin että kaikki tietokantatoiminnot
toteutetaan AikaleimaApiClient Ja KirjautumineApiClient-kirjastolla.
Kirjautuminen API-palvelu
Kirjautuminen Api-palvelu
Järjestelmään kirjautuminen on siirrety nyt erilliseen palveluun ja tietokantaan. Rajapinnaan avulla toteutetaan
perustunnistautuminen. mmahdollinen kaksivaiheinen kirjautuminen ja pinkoodin käsittely.
Api-palvelu on kuvattu linkissä.
Aikaleima API-palvelu
Aikaleima Api-palvelu
joka hoitaa tietokantaoperaatiot. Apua käytetään rajapinnan avulla jotka on esitelty Shared-dll:ssä.
Rajapinta koostuu kolmesta osasta: pyynnöistä (request), vastauksista (response) ja palveluista (services).
Api-pavelu on kuvattu linkissä.
Shared
Shared-dll
-moduuli, joka sisältää jaetut luokat, kuten API-rajapinnan kutsut,request ja response-rakenteet.
Käyttöliitymä komponentit
käyttöliittymä komponentit
Käyttöliittmä komponentit on nyt siirrettty SharedUi-dll tiedostoon
Domain
Domainkomponentit
Sovlluksen domain on nyt erillisessä domain.dll projektissa.
Sovellus ydintoiminnot
Ydintoiminnot hoitavat sovelluksen käynnistyksen, konfiguroinnin ja HTTP-pyyntöjen käsittelyn.
Ne vastaavat myös palveluista, eri näkymien renderöinnistä ja käyttäjän syötteiden välittämisestä käyttöliittymäkomponenteille.