Dependency Management for .NET Projects
Dependency management is the discipline most teams pretend they have under control until an audit, a CVE, or a transitive breakage proves otherwise. The supply chain narrative around npm has finally reached the .NET conversation, but the underlying problem is the same regardless of ecosystem: every package reference is a supplier, every transitive pull is a sub-supplier, and “we trust the maintainer” is not a control that survives a real review.
The structural fix on the .NET side is Central Package Management. One Directory.Packages.props declares versions for the entire solution, projects reference packages without versions, and updates become a single change rather than a sprawling diff across every csproj. The articles here treat CPM not as a nice-to-have but as the precondition for everything else — Dependabot pull requests stop being noise once they touch one file, dependency reviews actually fit in a reviewer’s head, and version drift between projects in the same solution becomes a build error rather than a runtime surprise.
On top of that base, automation does the work humans cannot do reliably. Dependabot or Renovate produce the update pull requests, GitHub’s dependency review action blocks PRs that introduce known vulnerabilities, and an action like dependamerge collapses safe minor and patch updates into automatic merges so engineers stop spending their week clicking approve. The combination turns supply-chain hygiene from a quarterly cleanup into a routine background task.
Then there is the harder problem of trust. NuGet signature verification, packageSourceMapping to pin packages to feeds, SBOM generation for what actually ships, and policies that reject unsigned packages from public sources are the controls that satisfy ISO/IEC 27001 supplier requirements. They are also what stops a typo-squatting attack from reaching production. The articles in this collection are about building that infrastructure once and letting it run, rather than rediscovering it after every incident.

247 Strangers Have Root Access to Your Production

NuGet Packages: The Suppliers You Forgot to Audit

PackageDownload: NuGet's Forgotten Power Tool

A Tale of Forgotten Pennies and Lost Dollars
In software development, there’s a silent debt that accrues interest over time, often hidden beneath layers of code and decisions made in haste or ignorance. This debt is aptly termed technical debt. Much like the german proverb, “Wer den Pfennig nicht ehrt, ist den Taler nicht wert”, (or the english equivalent, “A penny saved is a penny earned”) technical debt reminds us that small oversights or compromises in the present can snowball into significant challenges down the road. This article critically examines the parallels between financial principles and technical debt, emphasizing the importance of addressing both direct and indirect debt while understanding its distinction from external risks such as hacking or abuse.

dependamerge-action
In software development, dependencies are inevitable - any project worth its salt relies on various libraries, frameworks, or packages. However, as I found in my own work, managing these dependencies can be an onerous task. Constant updates, new vulnerabilities, and endless manual approvals were draining my time and focus. What if, I thought, these processes could be automated? This thought led to the creation of dependamerge, a GitHub Action designed to free developers from the drudgery of manual dependency maintenance and let us get back to what we do best: building great software.