diff --git a/Directory.Build.props b/Directory.Build.props
index ca9a00a..0f40bc6 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,8 +1,14 @@
+
+ net10.0
latest
enable
enable
false
+
+ en
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 0000000..883efc0
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,68 @@
+
+
+ true
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/PLAN-Linux-Portierung.md b/docs/PLAN-Linux-Portierung.md
index da3410c..b64a601 100644
--- a/docs/PLAN-Linux-Portierung.md
+++ b/docs/PLAN-Linux-Portierung.md
@@ -145,23 +145,36 @@ sind aussagekräftig.
---
-## 3. Phase 1 — .NET 10 (1,5–2,5 PT)
+## 3. Phase 1 — .NET 10 ✅ **erledigt (2026-08-06)**
-Bewusst **vor** dem Avalonia-Umbau: eine Baustelle nach der anderen, und das Shell-Projekt
-entsteht dann direkt auf dem Zielframework.
+**Abnahme erreicht:** `dotnet build` → 0 Fehler, 8 Warnungen (alle vorbestehend, 2 weniger
+als vorher). `dotnet test` → **100 bestanden, 0 Fehler, 1 übersprungen**, Testhost
+`net10.0`. Alle Projekte laufen auf `net10.0`, WinFormsHost auf `net10.0-windows`.
-### AP 1.1 — Zentrale Frameworkverwaltung
-`Directory.Build.props` erweitern:
-```xml
-net10.0
-latest
-enable
-enable
-```
-`` aus allen `.csproj` entfernen (Ausnahme: WinFormsHost →
-`net10.0-windows`). Empfohlen: zugleich `Directory.Packages.props` mit
-`ManagePackageVersionsCentrally` einführen — bei 7+ Projekten mit überlappenden Paketen
-verhindert das künftige Versionsdrift.
+Ergebnis gegenüber der Planung:
+
+| Erwartung | Tatsächlich |
+|---|---|
+| Swashbuckle 6.9 → 10.x „wahrscheinlichster Reibungspunkt", ggf. Wechsel auf `AddOpenApi()` | **Keine Bruchstelle.** Der genutzte API-Ausschnitt (`AddSwaggerGen`/`SwaggerDoc`/`UseSwagger`/`UseSwaggerUI`) ist stabil geblieben. Kein Umbau nötig. |
+| EF Core 8 → 9 „überschaubar" | Bestätigt, keine Anpassung nötig |
+| SQLite-Sicherheitswarnung „löst sich mit dem EF-Bump von selbst" | **Falsch** — EF Core 9.0.18 zieht SQLitePCLRaw 2.1.10, weiterhin von GHSA-2m69-gcr7-jv3q betroffen. Behoben über einen expliziten transitiven Pin auf 2.1.12. |
+
+Bewusst **vor** dem Avalonia-Umbau erledigt: eine Baustelle nach der anderen, und das
+Shell-Projekt entsteht direkt auf dem Zielframework.
+
+### AP 1.1 — Zentrale Frameworkverwaltung ✅
+`Directory.Build.props` setzt `TargetFramework=net10.0` zentral; `` aus
+allen `.csproj` entfernt (Ausnahme: WinFormsHost → `net10.0-windows`). Zusätzlich zentral:
+`SatelliteResourceLanguages=en`, das bisher in vier Projekten einzeln stand.
+
+`Directory.Packages.props` mit `ManagePackageVersionsCentrally` eingeführt — 21 Pakete,
+Versionen aus allen `.csproj` entfernt. Zusätzlich
+`CentralPackageTransitivePinningEnabled`, um Sicherheits-Pins auf transitive
+Abhängigkeiten setzen zu können.
+
+**Nicht angefasst:** `Spike/Spike.csproj` — leeres Restprojekt ohne Quelldateien, nicht in
+der Solution, baut auch im Ist-Zustand nicht (`CS5001: keine Main-Methode`). Kandidat zum
+Löschen, aber nicht Teil dieser Portierung.
### AP 1.2 — Paketmatrix
@@ -178,7 +191,12 @@ verhindert das künftige Versionsdrift.
| `Microsoft.Extensions.Http` / `.Hosting.Abstractions` / `.Logging.Abstractions` | 8.0.x | 10.0.x | |
| `Microsoft.NET.Test.Sdk` / `xunit` / `Moq` / `coverlet` | aktuell | prüfen | |
-### AP 1.3 — Erwartete Bruchstellen
+Tatsächlich aufgelöste Versionen (verifiziert über `dotnet list package`): EF Core 9.0.18,
+Pomelo 9.0.0, Serilog 4.4.0 / Extensions.Logging 10.0.0 / Sinks.File 7.0.0 /
+Sinks.Console 6.1.1, Swashbuckle 10.2.3, Test-SDK 18.8.1, coverlet 10.0.1.
+Sicherheits-Pin: SQLitePCLRaw 2.1.12 (statt transitiv 2.1.10).
+
+### AP 1.3 — Erwartete Bruchstellen *(Rückblick: keine eingetreten)*
* **Swashbuckle 6.9 → 10.x** ist der wahrscheinlichste Reibungspunkt: geänderte API-Oberfläche,
und ASP.NET Core 10 bringt mit `Microsoft.AspNetCore.OpenApi` eine eigene
OpenAPI-Generierung mit. Betrifft `Api/ApiConfiguration.cs:19-20` und
diff --git a/src/Predictalytics.Api/Predictalytics.Api.csproj b/src/Predictalytics.Api/Predictalytics.Api.csproj
index 469787d..058eebd 100644
--- a/src/Predictalytics.Api/Predictalytics.Api.csproj
+++ b/src/Predictalytics.Api/Predictalytics.Api.csproj
@@ -1,15 +1,13 @@
- net8.0
Predictalytics.Api
Library
- en
-
+
diff --git a/src/Predictalytics.Application.Tests/Predictalytics.Application.Tests.csproj b/src/Predictalytics.Application.Tests/Predictalytics.Application.Tests.csproj
index 35d2cad..4b5bdf7 100644
--- a/src/Predictalytics.Application.Tests/Predictalytics.Application.Tests.csproj
+++ b/src/Predictalytics.Application.Tests/Predictalytics.Application.Tests.csproj
@@ -1,20 +1,17 @@
- net10.0
- enable
- enable
false
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -28,4 +25,4 @@
-
\ No newline at end of file
+
diff --git a/src/Predictalytics.Application/Predictalytics.Application.csproj b/src/Predictalytics.Application/Predictalytics.Application.csproj
index 0f0bde0..3a71d36 100644
--- a/src/Predictalytics.Application/Predictalytics.Application.csproj
+++ b/src/Predictalytics.Application/Predictalytics.Application.csproj
@@ -1,12 +1,11 @@
-
+
- net8.0
Predictalytics.Application
-
+
diff --git a/src/Predictalytics.Domain/Predictalytics.Domain.csproj b/src/Predictalytics.Domain/Predictalytics.Domain.csproj
index fd86038..c7e06ea 100644
--- a/src/Predictalytics.Domain/Predictalytics.Domain.csproj
+++ b/src/Predictalytics.Domain/Predictalytics.Domain.csproj
@@ -1,7 +1,6 @@
-
+
- net8.0
Predictalytics.Domain
diff --git a/src/Predictalytics.Infrastructure/Predictalytics.Infrastructure.csproj b/src/Predictalytics.Infrastructure/Predictalytics.Infrastructure.csproj
index d3a2f15..dcf876b 100644
--- a/src/Predictalytics.Infrastructure/Predictalytics.Infrastructure.csproj
+++ b/src/Predictalytics.Infrastructure/Predictalytics.Infrastructure.csproj
@@ -1,26 +1,24 @@
- net8.0
Predictalytics.Infrastructure
- en
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/Predictalytics.WinFormsHost/Predictalytics.WinFormsHost.csproj b/src/Predictalytics.WinFormsHost/Predictalytics.WinFormsHost.csproj
index adbcb34..0b24b7a 100644
--- a/src/Predictalytics.WinFormsHost/Predictalytics.WinFormsHost.csproj
+++ b/src/Predictalytics.WinFormsHost/Predictalytics.WinFormsHost.csproj
@@ -2,29 +2,30 @@
WinExe
- net8.0-windows
+
+ net10.0-windows
true
Predictalytics.WinFormsHost
- en
SystemAware
true
app.manifest
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/Predictalytics.Worker/Predictalytics.Worker.csproj b/src/Predictalytics.Worker/Predictalytics.Worker.csproj
index b303bce..13be172 100644
--- a/src/Predictalytics.Worker/Predictalytics.Worker.csproj
+++ b/src/Predictalytics.Worker/Predictalytics.Worker.csproj
@@ -1,17 +1,15 @@
- net8.0
Predictalytics.Worker
- en
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+