Compare commits

...

6 Commits

Author SHA1 Message Date
Samuele E. Locatelli (W11-AI) f13469649b Aggiornato README: aggiunta documentazione IOB-WIN, EgwCApp e progetti aggiuntivi 2026-07-04 09:36:42 +02:00
Samuele E. Locatelli (W11-AI) cc577870ac update yaml 2026-07-03 18:04:23 +02:00
Samuele E. Locatelli (W11-AI) 5b93d9a6e2 Aggiornato README: architettura, stack tecnologico e stato progetto (Luglio 2026) 2026-07-03 18:04:08 +02:00
Samuele E. Locatelli (W11-AI) f193f7e222 aggiunta nuget config 2026-06-28 21:05:22 +02:00
Samuele E. Locatelli (W11-AI) 0647165929 Inizio fix gitlab ci-cd 2026-06-28 21:02:18 +02:00
Samuele Locatelli 1c4cfdb3ef Merge tag 'CommonFusionCacheService_01' into develop
Fusion cache gestita x RouteWeight, tutto come servizio condiviso
IOC/RIOC
2026-06-22 17:25:44 +02:00
3 changed files with 118 additions and 38 deletions
+5 -34
View File
@@ -10,38 +10,9 @@ variables:
# nota: cer creazione rules: https://docs.gitlab.com/ee/ci/jobs/job_control.html#common-if-clauses-for-rules # 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 # helper x fix pacchetti nuget da repo locale nexus.steamware.net
.nuget-fix: &nuget-fix 13|.nuget-fix: &nuget-fix
- | 14| - dotnet restore "$env:SOL_NAME.sln"
echo "esecuzione Nuget FIX steps" 15| - echo "Restore completato per $env:SOL_NAME"
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
# helper x fix appsettings config nei casi installer / office # helper x fix appsettings config nei casi installer / office
.appsettings-fix: &appsettings-fix .appsettings-fix: &appsettings-fix
@@ -940,7 +911,7 @@ RIOC:installer:
rules: rules:
- if: $CI_COMMIT_BRANCH == 'master' - if: $CI_COMMIT_BRANCH == 'master'
- if: $CI_COMMIT_BRANCH == 'develop' - if: $CI_COMMIT_BRANCH == 'develop'
needs: ["IOC:build"] needs: ["RIOC:build"]
script: script:
- dotnet build $env:APP_NAME/$env:APP_NAME.csproj - 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 - 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 +1125,7 @@ RIOC:release:
- dotnet restore "$env:SOL_NAME.sln" - dotnet restore "$env:SOL_NAME.sln"
rules: rules:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
needs: ["IOC:build"] needs: ["RIOC:build"]
artifacts: artifacts:
paths: paths:
- publish/ - publish/
+94 -4
View File
@@ -1,9 +1,99 @@
# MAPO-CORE # 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 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 |
| `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) |
### 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
- **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 soluzioni compilano senza errori
- Migrazione FusionCache completata per MP.SPEC (48+ metodi migrati al pattern `GetOrFetchAsync<T>`)
- 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)
- 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
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<!-- Rimuove tutte le sorgenti predefinite -->
<add key="nexus-proxy-v3" value="https://nexus.steamware.net/repository/nuget-proxy-v3/index.json" />
<add key="nexus-hosted" value="https://nexus.steamware.net/repository/nuget-hosted/" />
</packageSources>
<packageSourceCredentials>
<nexus-proxy-v3>
<add key="Username" value="nugetUser" />
<add key="ClearTextPassword" value="$env:NEXUS_PASSWD" />
</nexus-proxy-v3>
<nexus-hosted>
<add key="Username" value="nugetUser" />
<add key="ClearTextPassword" value="$env:NEXUS_PASSWD" />
</nexus-hosted>
</packageSourceCredentials>
</configuration>