Ken Muse

Understanding Symbol Servers

Understanding Symbol Servers

It’s not really an exploration of PDBs and debugging without talking about symbol servers. With .NET evolving, has our need for these previously essential systems changed? In this post, we’ll explore what a symbol server is, the role they fill, and their strengths and limitations.

Read this article

What Every Developer Should Know About PDBs
Years ago, John Robbins examined the details of PDB files in PDB Files: What Every Developer Must Know. Since then, a lot has changed about .NET. Despite that, most developers still lack an understanding of how PDBs work or why they are so important. Most times, I see teams trying to prevent PDBs from being created in release code; this is a sure path to future problems. In this post, I’ll provide updated details on the nature of PDBs and how they work.

Read this article

Understanding Certificate Authorities
For certificates to work, we need a system of trust. We need to know that each certificate is valid and was properly issued. This is the role of the certificate authorities (CAs). In the second part of this series, we’ll explore the role of CAs and how certificates are validated. We’ll also look at creating a private CA using a self-signed certificate.

Read this article

Understanding X.509 Certificates
Despite decades of use, certificates tend to be a mystery to most developers. At their root, they are largely more than a collection of name-value pairs and a public key. The majority of people that work with certificates regularly often run into situations where they need to understand the details of how they work. In this post, we’ll dive into the basics and learn what’s in these files.

Read this article

Universal Packages on GitHub With ORAS
Most package management systems support some kind of “universal artifacts” storage. Azure Artifacts supports “universal packages”, Artifactory supports “generic repositories”, and Nexus has “raw repositories”. But what about GitHub? From all appearances, it would seem this is an oversight. Although not explicitly documented, it turns out it’s fully supported.

Read this article