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.