Architektura
Systém je postavený ze dvou částí - Administrace (CMS) a Frontendové části (MVC). CMS je postavené na open-source platformě Orchard Core CMS s použitím nuget balíčků od BiQ pux a.s. CMS je dostupný administrátorů a slouží pro správu obsahuje a nastavení webové aplikace. Data jsou uložena v relační databázi Sql Server v dokumentové podobě - díky YesSql ORM. MVC je webová aplikace poskytující obsah koncovému uživateli. Obsah si získává od CMS přes GraphQL API.

Struktura databáze
center
CMS Moduly
Přehled povolených modulů je k dispozici v administraci v Configuration/Features. Jejich dokumentace je dostupná na https://docs.orchardcore.net/en/main/reference/ adrese. CMS kromě Orchard Core modulů dále využívá moduly vyvinuté BiQ pux a.s., které lze snadno rozpoznat PuxOrchard předponou. Popis povolených modulů lze nalézt níže. Nepovolené moduly nejsou součástí dodaného díla, tudíž nejsou zdokumentovány a za jejichž funkčnost není ručeno.
PuxOrchard.Content.Forms
Modul rozšiřuje práci s formuláři. Jedná se jmenovitě o ukládání dat z vyplněných formulářů, jejich zobrazení, filtrace a export. Dále přidává aktivity do Workflows modulu jako jsou
-
LiquidValidateFormFieldTask
-
LogFormDataErrorsTask
-
RegexValidateFormFieldTask
-
ValidateEmptyFormFieldsTask
-
ValidateFormFieldsSettingsTask
PuxOrchard.Content.Components
Modul rozšiřuje práci s Bag Content Part, přidává tlačítka pro hromadnou práci s Autoroute Part a přidává Part pro filtrování dle taxonomie.
PuxOrchard.Content.Core
Modul obsahuje následující funkcionalitu :
-
Klonování content itemu z jedné lokalizace do druhé
-
Validace ReCaptcha tokenu
-
Rozšíření liquid filtrů
-
Rozšíření trumbowyg editoru
-
Základní službu pro komunikaci s MVC
PuxOrchard.Content.Core.ClearCacheAutomatization
Modul zodpovědný za odesílání zprávy o smazání statické cache do MVC aplikace.
PuxOrchard.Content.Core.CloneInCulture
Modul přidává funkci klonování content itemu z jedné lokalizace do druhé.
PuxOrchard.Content.Fields
Modul přidává ContentLinkField, AutoGeneratedField a SqlPicker Fieldy do CMS a GraphQL (kromě AutoGeneratedField). ContentLinkField lze použít v případě, že daný field má reprezentovat vazbu na existující content item. SqlPickerField je vhodný při vytváření vazby na data v relační tabulce. AutoGeneratedField je vhodný pro hodnoty, které se májí generovat.
PuxOrchard.Content.Localization
Modul přidává PuxLocalizationPart Content Part pro správu lokalizovaných dat, controller pro
PuxOrchard.Content.SEO
Modul PuxOrchard.Content.SEO rozšiřuje platformu Orchard Core o množství nástrojů pro pokročilou správu SEO (Search Engine Optimization) na vícero doménách či instancích v rámci jednoho tenanta. Dále přidává integraci na Let's Encrypt.
PuxOrchard.Content.SEO.MultipleConfigurations
Multiple Configurations Management v modulu PuxOrchard.Content.SEO umožňuje správu a editaci více SEO konfigurací v rámci jednoho tenanta. Tato funkcionalita je navržena pro případy, kdy jeden Orchard Core tenant běží na více doménách, přičemž každá z nich využívá odlišné nastavení.
PuxOrchard.Content.SEO.RedirectPartAutomatization
Modul umožňuje definovat trvalá i dočasná přesměrování mezi stránkami.
PuxOrchard.Core
Modul obsahuje převážne extension a helper třídy a slouží jako společný základ pro ostatní moduly. Jeho přítomnost elimunje zbytečné vazby mezi moduly a duplikaci kódu.
PuxOrchard.Data.PartedFileContentDefinition
Modul přidává store pro Content Type a Content Part entity, který ukládá jejich definice na souborový systém. Umístění těchto definicí na systému souborů je užitečné při přenášení změn v definicích mezi více instancemi CMS aplikací.
PuxOrchard.Email
Modul rozšiřuje práci s emaily v CMS. Přidává možnost emaily odesílat v rámci fronty pro větší robustnost, ovládací prvky do Workflows a obrazovky pro zobrazení informací o frontě.
PuxOrchard.EventLog
Modul rozšiřuje práci s logy v CMS. Přidává obrazovku s výčtem logů jak z CMS, tak z MVC aplikace. Logy jsou sdruženy v rámci requestů a je možné je filtrovat a řadit.
PuxOrchard.GraphQL.Server
Modul rozšiřuje GraphQL typy a query v CMS. Přidává dekorátory pro Media Field a obecné filtry. Dále přidává query pro drobečkovkou navigaci, Flow Part, Taxonomy a url adresy content itemu.
PuxOrchard.System.Info
Modul poskytuje informace o verzích balíčků, na kterých systémy (CMS a MVC) běží, a využití paměťových zdrojů.
MVC Moduly
Povolené MVC moduly jsou definované v appsettings.json souboru pod klíčem : "OrchardCore.Default.Features". Pod tímto klíčem je uložená Json Array, která obsahuje jednotlivá jména modulů.
PuxOrchardClient.Core
Základní modul pro klientskou aplikaci. Obsahuje nástroje pro komunikaci s CMS, integraci Let's Encrypt, podporu pro SEO (robots.txt a sitemap.xml) a spoustu pomocných metod, tag helperů, apod. pro další klientské moduly.
PuxOrchardClient.EventLog
Modul, který zpřístupňuje aplikační logy z systému souborů klienté aplikace v CMS.
PuxOrchardClient.Generators.StaticSite
Modul přidává podporu staticky generovaných stránek. Při prvním přístupu na stránku je její obsah získán z CMS, controller vykreslí HTML obsah, který je poté uložen na systému souborů. Při dalším přístupu na stránku se vrací uložená verze stránky.
PuxOrchardClient.GraphQL
Modul přidává možnost definovat soubory s GraphQL dotazy, směrovací algoritmy a komunikační službu s CMS.
PuxOrchardClient.GraphQL.Core
Modul přidává tranformaci webových adres na položky obsahu, které jsou poskytovány. Zároveň poskytuje atributy pro controllery, které na endpointech přidávají možnost definovat akce, které podporují statické cachování stránek a rozlišení přihlášené sekce.
PuxOrchardClient.Routing.Components
Modul přidává podporu Repeater komponenty, fulltext vyhledávání a drobečkové navigace.
PuxOrchardClient.System
Modul přidává získávání informací o verzi systému a využití zdrojů klienskou aplikací a jejich distribuci do CMS aplikace.
Návody pro lokální vývoj, testování a ladění aplikace
Pro spuštní CMS aplikace je nutné mít nainstalován .NET runtime (viz dále). Pro MVC aplikaci je nutné mít nainstalován Node v14. Aplikaci lze sestavit a spustit jako standardní ASP.NET Core MVC aplikaci. Volba nástroje je ponechána na čtenáři. Doporučené je použit Visual Studio IDE, dle dokumentace od Microsoftu.
Pokyny pro sestavení (build) a nasazení aplikace
-
V kořenovém adresáři projektu spusťte:
dotnet build
-
Pokud sestavení proběhne úspěšně, zobrazí se hláška Build succeeded.
Spuštění aplikace
Spusťte vývojový server:
dotnet run
Užitečné odkazy
-
Oficiální dokumentace: [https://learn.microsoft.com/aspnet/core]
-
Šablony projektů .NET: [https://learn.microsoft.com/dotnet/core/tools/dotnet-new]
-
Visual Studio: [https://visualstudio.microsoft.com/]
Konfigurace a instalace
Struktura IIS
Aplikace vyžaduje vytvoření dvou IIS webových stránek pro každé prostředí (např. testovací a produkční):
-
CMS_Project_Prod -- administrační část systému (Orchard Core)
-
MVC_Project_Prod -- frontendová část pro veřejnost
Adresářová struktura
Jednotlivé složky pro IIS sites:
-
CMS-- pro administrační část -
MVC-- pro frontend