u/Enough_Secretary_137

Why aren’t packages.lock.json files the default in .NET projects?
▲ 91 r/dotnet

Why aren’t packages.lock.json files the default in .NET projects?

I recently went down the rabbit hole of NuGet version locking and was surprised by how little attention packages.lock.json seems to get in .NET compared to lock files in other ecosystems like node.

A typical PackageReference may pin your direct dependency, but it doesn’t freeze the entire resolved dependency graph. Transitive dependencies are still resolved during restore.

NuGet already has everything needed to make this deterministic:

<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>

Commit the resulting packages.lock.json, and then in CI:

dotnet restore --locked-mode

That gives you a frozen direct + transitive dependency graph, including package content hashes. If the graph changes without the lock file being deliberately updated, CI fails instead of silently accepting it.

What I also hadn’t appreciated before looking into this is that Central Package Management and lock files solve different problems:
Directory.Packages.props -> centrally manages the versions you specify
packages.lock.json -> records the fully resolved dependency graph
So using CPM doesn’t really make the lock file redundant.

We’ve started looking at this more seriously from the reproducible-build / supply-chain side rather than just dependency management.

I’m curious how people here handle this:
Do you commit packages.lock.json for applications? And if not, is there a particular reason you prefer NuGet to resolve the graph on restore?

I wrote up what I learned, including locked-mode CI, CPM/transitive pinning and the supply-chain implications:
https://vensas.de/blog/nuget-version-locking

Disclosure: I work at vensas, where the article is published.

u/Enough_Secretary_137 — 11 days ago

Wir haben unsere Dispositionssoftware per MCP für LLMs zugänglich gemacht: sinnvoll oder Spielerei?

Wir entwickeln bei vensas gerade Visposition, eine Software für Disposition und Bestellplanung.

Die Anwendung verbindet sich mit bestehenden ERP-Systemen, löst Stücklisten auf, berechnet Bedarfe und Bestellvorschläge und bildet den Freigabeprozess ab.
Technisch läuft das Ganze u. a. mit React/TypeScript, ASP.NET Core/.NET Aspire und PostgreSQL.

Ein Thema, mit dem wir uns zuletzt beschäftigt haben: Wie bekommt man LLMs sinnvoll an solche Unternehmensdaten?

Dafür haben wir einen eigenen MCP-Server für Visposition gebaut. Darüber kann ein Assistent auf die Dispositionsdaten zugreifen und beispielsweise Fragen zu Beständen, Bedarfen und Bestellvorschlägen beantworten.

Uns war dabei wichtig, dass das LLM nicht selbst zur Blackbox wird, die irgendwelche Bestellungen „entscheidet“. Die eigentliche Dispositionslogik bleibt deterministisch und nachvollziehbar: MCP stellt die Daten und Funktionen für den Assistenten bereit.

Mich würde interessieren, wie ihr das seht:

Wo ergibt MCP bei klassischer Business-/ERP-Software für euch tatsächlich Sinn und wo ist es aktuell eher AI-Hype?

Falls jemand selbst damit herumspielen möchte: Wir haben eine öffentliche Demo mit synthetischen Daten:
https://visposition-demo.apps.vensas.de/

Technische Infos zum Projekt:
https://www.vensas.de/de/products/visposition

Disclosure: Ich arbeite bei vensas und bin entsprechend nicht neutral. 🙂

reddit.com
u/Enough_Secretary_137 — 12 days ago