Session

How to build well-designed and reusable NuGet packages

One of the fundamental building blocks in the .NET space is the NuGet package. It's the perfect mechanism to break down those big monolithical systems into nicely structured building blocks that are easy to understand and easy to maintain. But finding the right boundaries for those packages isn't always trivial. If you take the wrong path, you'll end up in a dependency hell. Content-only packages are a nice solution for that as well, but not easy to build. Also, making sure that those packages are properly versioned, don't have vulnerabilities, have proper release notes are aspects a lot of devs forget about.

In this code-heavy talk I'm going to build a GitHub repository with multi-targeting, a maintainable build pipeline, automatic versioning, basic elements such as .editorconfig, unit testing, coverage reporting. This package will be protected by Dependabot and will have automatically generated release notes. Next to that, I'll share my principles of package dependencies to help you scope those packages. In short, everything you didn't know you needed to know about building professional NuGet packages.

Build and packaging pipeline
Multi-targetting
Content-only
Versioning
Documentation
Dependency management
.editorconfig
Gitattributes
Directory.buildprops
GitVerson
Coverage
Github
Dependenabot
Release Nptes

Dennis Doomen

Hands-on architect in the .NET space with 27 years of experience on an everlasting quest for knowledge to build the right software the right way at the right time

The Hague, The Netherlands

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top