Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f13469649b | |||
| cc577870ac | |||
| 5b93d9a6e2 | |||
| f193f7e222 | |||
| 0647165929 | |||
| 1c4cfdb3ef |
+5
-34
@@ -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/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
Reference in New Issue
Block a user