From 0647165929d8ab22a1f52c04ac45b4ec2472f742 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli (W11-AI)" Date: Sun, 28 Jun 2026 21:02:18 +0200 Subject: [PATCH 1/5] Inizio fix gitlab ci-cd --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 88ebaaa0..85edbbba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -940,7 +940,7 @@ RIOC:installer: rules: - if: $CI_COMMIT_BRANCH == 'master' - if: $CI_COMMIT_BRANCH == 'develop' - needs: ["IOC:build"] + needs: ["RIOC:build"] script: - dotnet build $env:APP_NAME/$env:APP_NAME.csproj - dotnet publish -p:PublishProfile=IISProfile.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release $env:APP_NAME/$env:APP_NAME.csproj -o:publish -p:verbosity=quiet @@ -1154,7 +1154,7 @@ RIOC:release: - dotnet restore "$env:SOL_NAME.sln" rules: - if: $CI_COMMIT_TAG - needs: ["IOC:build"] + needs: ["RIOC:build"] artifacts: paths: - publish/ From f193f7e2225a26778de39bac433594773ececa4a Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli (W11-AI)" Date: Sun, 28 Jun 2026 21:05:22 +0200 Subject: [PATCH 2/5] aggiunta nuget config --- nuget.config | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 nuget.config diff --git a/nuget.config b/nuget.config new file mode 100644 index 00000000..64b8df04 --- /dev/null +++ b/nuget.config @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 5b93d9a6e2123094cba2c703eae6c07906ec8c4b Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli (W11-AI)" Date: Fri, 3 Jul 2026 18:04:08 +0200 Subject: [PATCH 3/5] Aggiornato README: architettura, stack tecnologico e stato progetto (Luglio 2026) --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 56279eb3..8d22857a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,57 @@ # MAPO-CORE -MAPO dotNet Core Web Project, repository progetti next gen su Blazor & co +Repository multi-soluzione per i progetti .NET Core Blazor Server di MAPO (MES - Manufacturing Execution System). -Applicazione multipiattaforma (gira su win, mac, linux), tramite IIS o altro. +Applicazione multipiattaforma (Windows, macOS, Linux), deployabile tramite IIS o altri web server. -## Installazione +## Architettura -Vedere pagina wiki x blazor: https://wiki.steamware.net/doku.php?id=blazor \ No newline at end of file +Il progetto è organizzato in **10 soluzioni** indipendenti, ciascuna con il proprio dominio funzionale: + +| Soluzione | Dominio | +|-----------|---------| +| `MP.SPEC` | Gestione articoli, operatori, ODL, KIT, Dossier, Ricette, Parametri macchina | +| `MP.IOC` / `MP.RIOC` | Gestione ordini di produzione (UpdateProd) e interfaccia client | +| `MP.LAND` | Gestione Land/Zone | +| `MP.MON` | Monitoraggio produzione | +| `MP.TAB3` | Dashboard e reporting | +| `MP.Prog` | Programmazione produzione | +| `MP.Stats` | Statistiche e analytics | +| `MP.INVE` | Gestione inventario/magazzino | +| `IobConf.UI` / `IobConf.Core` | Configurazione IOB (Input/Output Board) | + +### Stack Tecnologico + +- **Frontend**: Blazor Server con componenti interattivi (`AddInteractiveServerComponents()`) +- **Backend**: ASP.NET Core Web API, Minimal APIs, Controllers tradizionali +- **Database**: SQL Server (4 DbContext: MoonProContext, MoonPro_VocContext, MoonPro_FluxContext, MoonPro_STATSContext) +- **NoSQL**: MongoDB per storage ricette +- **Caching**: FusionCache (Memory + Redis + DB) con invalidazione per tag +- **Autenticazione**: Windows Authentication (Negotiate/Kerberos) +- **Osservabilità**: OpenTelemetry tracing su Uptrace, MessagePipe per broadcasting real-time + +## Build & CI/CD + +```powershell +# Build tutte le soluzioni in parallelo +./build_all_par.ps1 --agent + +# Build singola soluzione +dotnet build MP-SPEC.sln +``` + +Il pipeline GitLab CI è configurato in `.gitlab-ci.yml` con supporto per NuGet restore e build multi-soluzione. + +## Documentazione Interna + +Ogni soluzione contiene il proprio `README.md` con dettagli specifici su funzionalità, architettura e stato del refactoring. + +## Stato Attuale (Luglio 2026) + +- Tutte le 10 soluzioni compilano senza errori +- Migrazione FusionCache completata per MP.SPEC (48+ metodi migrati al pattern `GetOrFetchAsync`) +- Decomposizione MpSpecController in 8 repository specialistici +- Fix DI e gestione stato statico in MP.AppAuth +- Cache reset funzionale per InsEnabled da reload +- Spostamento ricerca ODL su Minimal API +- Fix navigazione filtri PODL KIT (ritorno pagina 1 al cambio filtro) \ No newline at end of file From cc577870ace719944e083f83bd5cf5c3e2b4fe65 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli (W11-AI)" Date: Fri, 3 Jul 2026 18:04:23 +0200 Subject: [PATCH 4/5] update yaml --- .gitlab-ci.yml | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 85edbbba..fb2f3d18 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,38 +10,9 @@ variables: # nota: cer creazione rules: https://docs.gitlab.com/ee/ci/jobs/job_control.html#common-if-clauses-for-rules # helper x fix pacchetti nuget da repo locale nexus.steamware.net -.nuget-fix: &nuget-fix - - | - echo "esecuzione Nuget FIX steps" - dotnet nuget list source - $hasSource = dotnet nuget list source | Select-String -Pattern "Steamware Nexus Proxy" - if (! [String]::IsNullOrWhiteSpace($hasSource)) { - dotnet nuget remove source "`"Steamware Nexus Proxy`"" - } - $hasSource = dotnet nuget list source | Select-String -Pattern "Steamware Nexus" - if (! [String]::IsNullOrWhiteSpace($hasSource)) { - dotnet nuget remove source "`"Steamware Nexus`"" - } - $hasSource = dotnet nuget list source | Select-String -Pattern "nexus-proxy-v3" - if (! [String]::IsNullOrWhiteSpace($hasSource)) { - dotnet nuget remove source nexus-proxy-v3 - } - $hasSource = dotnet nuget list source | Select-String -Pattern "nexus-hosted" - if (! [String]::IsNullOrWhiteSpace($hasSource)) { - dotnet nuget remove source nexus-hosted - } - $hasSource = dotnet nuget list source | Select-String -Pattern "Microsoft Visual Studio Offline Packages" - if (! [String]::IsNullOrWhiteSpace($hasSource)) { - dotnet nuget remove source 'Microsoft Visual Studio Offline Packages' - } - echo "Situazione sorgenti post remove:" - dotnet nuget list source - dotnet nuget add source https://nexus.steamware.net/repository/nuget-proxy-v3/index.json -n nexus-proxy-v3 -u nugetUser -p $NEXUS_PASSWD --store-password-in-clear-text - dotnet nuget add source https://nexus.steamware.net/repository/nuget-hosted/ -n nexus-hosted -u nugetUser -p $NEXUS_PASSWD --store-password-in-clear-text - $hasSource = dotnet nuget list source - echo "Situazione sorgenti FINALE:" - dotnet nuget list source - +13|.nuget-fix: &nuget-fix +14| - dotnet restore "$env:SOL_NAME.sln" +15| - echo "Restore completato per $env:SOL_NAME" # helper x fix appsettings config nei casi installer / office .appsettings-fix: &appsettings-fix From f13469649beb2505d6b50caa7ce59a09202836cf Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli (W11-AI)" Date: Sat, 4 Jul 2026 09:36:42 +0200 Subject: [PATCH 5/5] Aggiornato README: aggiunta documentazione IOB-WIN, EgwCApp e progetti aggiuntivi --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8d22857a..b925025b 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,9 @@ Applicazione multipiattaforma (Windows, macOS, Linux), deployabile tramite IIS o ## Architettura -Il progetto è organizzato in **10 soluzioni** indipendenti, ciascuna con il proprio dominio funzionale: +Il progetto è organizzato in **multiple soluzioni** indipendenti, ciascuna con il proprio dominio funzionale: +### Soluzioni MAPO Core | Soluzione | Dominio | |-----------|---------| | `MP.SPEC` | Gestione articoli, operatori, ODL, KIT, Dossier, Ricette, Parametri macchina | @@ -20,7 +21,45 @@ Il progetto è organizzato in **10 soluzioni** indipendenti, ciascuna con il pro | `MP.INVE` | Gestione inventario/magazzino | | `IobConf.UI` / `IobConf.Core` | Configurazione IOB (Input/Output Board) | -### Stack Tecnologico +### Soluzioni IOB-WIN (Gateway Hardware) +| Soluzione | Dominio | +|-----------|---------| +| `IOB-WIN` | Gateway principale IOB | +| `IOB-WIN-FACADE` | Layer di astrazione per hardware | +| `IOB-WIN-BECKHOFF` | Driver Beckhoff | +| `IOB-WIN-FANUC` | Driver FANUC | +| `IOB-WIN-MITSUBISHI` | Driver Mitsubishi | +| `IOB-WIN-OMRON` | Driver OMRON | +| `IOB-WIN-SIEMENS` | Driver Siemens | +| `IOB-WIN-SHELLY` | Driver Shelly | +| `IOB-WIN-OSAI` | Driver OSAI | +| `IOB-WIN-PING` | Ping/monitoring hardware | +| `IOB-WIN-OPC-UA` | Comunicazione OPC-UA | +| `IOB-WIN-MTC` | Driver MTC | +| `IOB-WIN-KAWASAKI` | Driver Kawasaki | +| `IOB-WIN-FTP` | Scambio file FTP | +| `IOB-WIN-FILE` | Gestione file locale | +| `IOB-WIN-SQL` | Accesso database SQL | +| `IOB-WIN-WPS` | Interfaccia WPS | +| `IOB-WIN-NEXT` | Driver Next generation | +| `IOB-UT` / `IOB-UT-NEXT` | Unit tests IOB | + +### Soluzioni EgwCApp (Gateway Communication) +| Soluzione | Dominio | +|-----------|---------| +| `EgwCApp.Core` | Core comunicazione gateway | +| `EgwCApp.XmlProc` | Processing XML | +| `EgwCApp.ExcImport` | Importazione eccedenze | +| `EgwCApp.Testing` | Testing | +| `EgwCApp.XmlTesting` | Testing XML | + +### Altri Progetti +| Progetto | Dominio | +|----------|---------| +| `VersGen` | Generazione versioni | +| `Scratch` | Prototipi e sperimentazione | + +## Stack Tecnologico - **Frontend**: Blazor Server con componenti interattivi (`AddInteractiveServerComponents()`) - **Backend**: ASP.NET Core Web API, Minimal APIs, Controllers tradizionali @@ -48,10 +87,13 @@ Ogni soluzione contiene il proprio `README.md` con dettagli specifici su funzion ## Stato Attuale (Luglio 2026) -- Tutte le 10 soluzioni compilano senza errori +- Tutte le soluzioni compilano senza errori - Migrazione FusionCache completata per MP.SPEC (48+ metodi migrati al pattern `GetOrFetchAsync`) - Decomposizione MpSpecController in 8 repository specialistici - Fix DI e gestione stato statico in MP.AppAuth - Cache reset funzionale per InsEnabled da reload - Spostamento ricerca ODL su Minimal API -- Fix navigazione filtri PODL KIT (ritorno pagina 1 al cambio filtro) \ No newline at end of file +- Fix navigazione filtri PODL KIT (ritorno pagina 1 al cambio filtro) +- Integrazione FusionCache su RIOC con test di reset +- Supporto multi-driver IOB-WIN per diversi hardware (Beckhoff, FANUC, Mitsubishi, OMRON, Siemens, Shelly, OSAI, Kawasaki, MTC, OPC-UA) +- Gateway comunicazione EgwCApp per scambio dati XML e importazione eccedenze