the text frequently refers to tools and terms that are widely used in the C# commu‐
nity, but not necessarily outside of it. We assume that the reader has experience in C#
programming. As previously noted, the guidelines, while presented in this edition in
C#, are independent of the programming language used. A Java edition is published
concurrently by O’Reilly.