Get started

Cross-platform targeting

How to use .NET Standard and multi-targeting to create cross-platform libraries. .NET runs in many places, and good .NET libraries should strive to support as many platforms and developers as possible.

Strong naming

Learn about strong naming and its advantages and disadvantages. Strong naming a .NET library allows the most developers to use it and is a recommended best practice.

NuGet and open-source libraries

The best way to create NuGet packages for open-source .NET libraries, including recommended metadata for all packages published publicly on


NuGet makes it easy to use existing packages when building a .NET library. Learn about NuGet dependencies' common sources of friction and how to avoid them.

SourceLink is a great tool that allows users of your .NET library to step into its source code while debugging. This article is an overview of what SourceLink is and why you should use it.


While is the most widely known and used repository, there are many places to publish NuGet packages. Learn about the different NuGet package repositories available, and security best practices for publishing a .NET library.


Good .NET libraries evolve over time, adding features, fixing bugs, and improving performance in later releases. Learn about the various version numbers and how to communicate breaking changes to developers.

Breaking changes

It's important for a .NET library to find a balance between stability for existing users and innovation for the future. Learn about the different kinds of breaking changes and strategies for adding new features while maintaining backwards compatibility.