NuGet-Pakete
Offizieller Feed
https://git.mes.wien/api/packages/MES-Public/nuget/index.json
Die Website inside.mes.wien ist die kanonische Dokumentations- und
Releasequelle. Die technischen NuGet-Pakete werden über die Gitea Package
Registry der öffentlichen Organisation MES-Public ausgeliefert.
Einstiegspakete
ASP.NET Core auf .NET 8 oder neuer
MES.Inside.Client.AspNetCore
ASP.NET WebForms auf .NET Framework 4.8
MES.Inside.Client.AspNetFramework
Beide Einstiegspakete installieren automatisch:
MES.Inside.Client
├─ MES.Inside.Configuration
├─ MES.Inside.Contracts
└─ Newtonsoft.Json
Ein Zielprojekt installiert nur den passenden Adapter. Die Kernpakete werden nicht zusätzlich manuell eingetragen.
Aktuelle Preview
0.4.0-preview.3
Diese Version ist für kontrollierte Pilotintegrationen vorgesehen. Öffentliche APIs, Konfiguration und Paketstruktur können sich bis Version 1.0 noch ändern.
Feed hinzufügen
Öffentlich lesbarer Feed:
dotnet nuget add source `
"https://git.mes.wien/api/packages/MES-Public/nuget/index.json" `
--name "MES-Public-Gitea"
Ist der Feed nicht öffentlich lesbar, richtet ein Administrator ihn einmalig mit einem persönlichen oder technischen Gitea-Token ein. Der Token wird nicht in Projektdateien oder Prompts geschrieben.
Installation
ASP.NET Core:
dotnet add package MES.Inside.Client.AspNetCore `
--version 0.4.0-preview.3 `
--source MES-Public-Gitea
ASP.NET WebForms im Package-Manager-Fenster von Visual Studio:
Install-Package MES.Inside.Client.AspNetFramework `
-Version 0.4.0-preview.3 `
-Source MES-Public-Gitea
Der lokale Quellenname ist frei wählbar. Ein Coding-Assistent sucht mit
dotnet nuget list source nach der Quelle, deren URL dem offiziellen Feed
entspricht, und verwendet deren tatsächlichen Namen.
Für langfristige Projekte empfiehlt sich NuGet Package Source Mapping:
<packageSourceMapping>
<packageSource key="MES-Public-Gitea">
<package pattern="MES.Inside.*" />
</packageSource>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
Damit werden Pakete unter MES.Inside.* ausschließlich aus dem MES-Feed
bezogen.
Paketinhalt und Integrität
Jedes Paket enthält:
- genau eine Assembly für das angegebene Target Framework;
- deklarierte NuGet-Abhängigkeiten statt kopierter Fremd-DLLs;
- Paket-Readme und Repository-Metadaten;
- passendes Symbolpaket (
.snupkg).
Versionen sind unveränderlich. Eine bereits veröffentlichte Kombination aus
Paket-ID und Version wird nicht überschrieben; Korrekturen erhalten eine neue
Version. Offizielle Releases werden künftig zusätzlich mit Prüfsummen und
Release Notes auf inside.mes.wien dokumentiert.
Veröffentlichung
Die fünf Pakete werden immer gemeinsam mit derselben Version gebaut:
MES.Inside.Contracts
MES.Inside.Configuration
MES.Inside.Client
MES.Inside.Client.AspNetCore
MES.Inside.Client.AspNetFramework
Vor der Veröffentlichung sind Build, Tests, Paketinhalt, Abhängigkeitsauflösung und Installation beider Einstiegspakete zu prüfen.
Lokaler Paketbuild:
.\scripts\Build-NuGetPackages.ps1
Der vollständige Ablauf für Versionsänderung, Prüfung, Veröffentlichung und Aktualisierung bestehender Clientprojekte ist in NuGet-Pakete aktualisieren und veröffentlichen dokumentiert.