Skip to content

Architecture - vue d'ensemble

Principe general

Nanoxi StarterKit v3 est un CMS maison bati sur Umbraco 7.15.10 (.NET Framework 4.8), en architecture hybride ASP.NET WebForms + MVC5 (heritage Umbraco 7). Un seul socle de code sert 30+ sites clients. Le code est organise en trois grandes couches :

  1. Base (src/Nanoxi.Cms.Base/, ~35 projets) : le socle CMS commun a tous les clients. Compilee via StarterKitv3_base.sln. Toujours buildee.
  2. Shop (src/Nanoxi.Cms.Shop/, ~28 projets) : la couche e-commerce uCommerce 8.4.1. Compilee via StarterKitv3_shop.sln, uniquement si le client active le shop.
  3. Custom (src/Nanoxi.Cms.Custom/<Client>/) : l'implementation specifique d'un client. Une solution StarterKitv3_<skin>.sln par client.

Le build assemble ces couches dans le dossier website/ (racine ASP.NET WebForms), point de deploiement final.

Couches base / shop / custom

Base (Nanoxi.Cms.Base.*)

FamilleProjetsResponsabilite
App.ApiNanoxi.Cms.Base.App.ApiControllers API (UmbracoApiController)
App.MvcNanoxi.Cms.Base.App.MvcControllers MVC, vues
App.HandlerNanoxi.Cms.Base.App.HandlerHandlers HTTP / evenements Umbraco
App.JobNanoxi.Cms.Base.App.JobJobs Quartz.NET
App.Mail / App.EmailMonitoring...Envoi et monitoring d'emails
App.Member.Data / App.Member.Mvc...Espace membre / intranet
App.I18n...Dictionnaire / traductions
App.Validation...Validation
App.License...Verification de licence Nanoxi
App.UrlRewriting / App.LinkChecker...Reecriture d'URL, verification de liens
App.Install / App.InstallPackages / App.Migrations...Installation et migration du site
App.Backoffice / App.Plugins / App.Tree...Personnalisation backoffice Umbraco
App.Ioc.Configuration / App.Ioc.Models...Configuration IoC (Autofac)
App.Aspose...Generation documents (Aspose.Cells/Pdf/Email)
Content.Data / Content.Search / Content.Widget / Content.Syndication / Content.Extension...Coeur contenu : donnees, recherche Examine, widgets, RSS, extensions
Contour.Providers / Forms.Security...Umbraco Forms (ex-Contour) + securite

Shop (Nanoxi.Cms.Shop.*)

ProjetResponsabilite
Shop.ApiEndpoints API shop (ex. ProductSynchroApiController)
Shop.UCommerce / Shop.UCommerceWebFormsIntegration uCommerce
Shop.Module / Shop.DataLogique metier + acces donnees shop
Shop.SynchronizationSynchro catalogue (conteneur Castle Windsor)
Shop.Shipping / Shop.Stock / Shop.TrackAndTraceLivraison, stock, suivi
Shop.Print / Shop.ExportDocuments PDF, exports
Shop.Member.Data / Shop.Member.MvcComptes clients shop
Shop.Widget / Shop.Mvc / Shop.WebFormsUI shop
Shop.IedsUtilUtilitaires specifiques au client IEDS

Custom (Nanoxi.Cms.Custom.<Client>.*)

Un dossier par client (Cmveo, Ieds, Davidchoco, Biofruits, ...). Sous-structure typique : Data, Mvc, Shop. Chaque client a sa propre solution StarterKitv3_<skin>.sln. Voir ../modules/customer-skins.md.

Hybride WebForms + MVC

Umbraco 7 melange ASP.NET WebForms (.aspx, Site/, webparts) et MVC5 (controllers, vues Razor .cshtml). Les deux coexistent dans website/. Les nouveaux developpements passent par MVC ; certaines parties heritees (et uCommerce) restent en WebForms.

IoC (injection de dependances)

  • Autofac : cote Nanoxi / Umbraco (App.Ioc.Configuration, App.Ioc.Models).
  • Castle Windsor : utilise par uCommerce et la synchronisation shop (Shop.Synchronization.SynchroWindsorContainer).

Les deux conteneurs coexistent : Autofac pour le CMS, Windsor pour la pile uCommerce.

Acces aux donnees

  • Contenu editorial : API Umbraco (noeuds, IPublishedContent).
  • Tables custom : petaPoco (ORM par defaut d'Umbraco), tables prefixees nanoxi_* (ex. nanoxi_IchMatchingGlobalMedia).
  • Schema de base : scripts db/u7_base-<version>.sql ; donnees de seed dans data/.

Flux de build (assemblage)

  1. Clean (bin/obj base + shop + customer)
  2. Build : StarterKitv3_base.sln
  3. Build-Shop : StarterKitv3_shop.sln (si IsShopEnabled())
  4. Build-Customer : StarterKitv3_<skin>.sln (si la solution existe)
  5. Download-Umbraco : recupere/prepare les binaires Umbraco
  6. Postbuild : copie vues, templates, JS, ressources, LESS compiles vers website/
  7. uCommerce setup : extraction + installation des packages uCommerce (si shop)
  8. Umbraco packages : extraction + installation (Umbraco Forms, ...)
  9. Database : restore / create / scratch SQL (cibles Review-App)

Detail dans build-deploy.md. La cible CI-Build produit un website/ deployable sans toucher a la DB ni a IIS.

Fichiers cles

SujetFichier
Orchestration buildbuild.cake
Bootstrapperbuild.ps1
Includes Cakecake/PostBuildSkins.cake
Config par clientdoc/StarterKitv3_InfosTechniques.json (+ _Schema.json)
Versioningsrc/SharedAssemblyInfo.cs
Patches Umbracosrc/Nanoxi.Cms.Resources/Umbraco/
Synchro shop IEDSsrc/Nanoxi.Cms.Custom/Ieds/... + Shop.Synchronization

Contributors

No contributors

Changelog

No recent changes