Ziel
Proof-of-Value fuer Boilerplate-Reduktion in CSCore via C# Records, Init-Only-Semantik und compile-time Mapping (Mapperly), inkl. auditierbarer Governance und fail-closed CI-Nachweis.
Abhaengigkeiten
Scope
In Scope
- 1-2 C# Records in CSCore mit validierten Konstruktoren.
- Mapperly-Mapper (
public) fuer deterministische compile-time Mapping-Generierung.
- netstandard-Compat-Regel (
IsExternalInit) und CPM-konforme Paketverwaltung.
- Governance-Doku fuer Cross-Language-Regeln und Analyzer/Banned-API-Nutzung.
Out of Scope
- Breite Migration grosser Teile des VB-Codebestands.
- Runtime-Reflections als Primarmechanismus fuer Mapping.
Kritische technische Regeln
- Bei Records auf
netstandard2.0: IsExternalInit-Polyfill bereitstellen.
- Mapperly/Analyzer nur CPM-konform einbinden:
PackageVersion in Directory.Packages.props
PackageReference ohne Version im CSCore-Projekt
packages.lock.json konsistent aktualisieren
- Banned APIs fail-closed ueber Analyzer/AdditionalFiles erzwingen.
Umsetzung (Steps)
- Record(s) + Guards in CSCore anlegen.
- Mapperly-Mapper implementieren.
- Analyzer-Pakete inkl. Banned-API-Konfiguration integrieren.
- Governance-Doku und CI-Gates aktualisieren.
- Restore/Build/Format/Pack/Consumer-/Security-Checks verifizieren.
Definition of Done (DoD)
Evidence
- Diff fuer CSCore-Modelle/Mapper/Analyzer-Setup
- Logs fuer Build/Format/Pack/Consumer/Security
- Governance-Doku-Verweise
Ziel
Proof-of-Value fuer Boilerplate-Reduktion in CSCore via C# Records, Init-Only-Semantik und compile-time Mapping (Mapperly), inkl. auditierbarer Governance und fail-closed CI-Nachweis.
Abhaengigkeiten
Scope
In Scope
public) fuer deterministische compile-time Mapping-Generierung.IsExternalInit) und CPM-konforme Paketverwaltung.Out of Scope
Kritische technische Regeln
netstandard2.0:IsExternalInit-Polyfill bereitstellen.PackageVersioninDirectory.Packages.propsPackageReferenceohneVersionim CSCore-Projektpackages.lock.jsonkonsistent aktualisierenUmsetzung (Steps)
Definition of Done (DoD)
Evidence