Preface
There are programming books that are thousands of pages long that aim to be comprehensive references to the C# language, the .NET libraries, and app models like websites, services, and desktop and mobile apps.
This book is different. It is concise and aims to be a brisk, fun read that is packed with practical hands-on walk-throughs of each subject. The breadth of the overarching narrative comes at the cost of some depth, but you will find many signposts to explore further if you wish.
This book is simultaneously a step-by-step guide to learning modern C# and proven practices using cross-platform .NET, and a brief introduction to the fundamentals of web development, along with the creation of websites and services that can be built with these technologies. This book is most suitable for beginners to C# and .NET, as well as programmers who have worked with C# in the past but may feel left behind by the changes in the past few years.
If you already have experience with older versions of the C# language, then in the first topic of Chapter 2, Speaking C#, you can review the tables of new language features in an online section and jump straight to them.
If you already have experience with older versions of the .NET libraries, then in the first topic of Chapter 7, Packaging and Distributing .NET Types, you can review the tables of the new library features in an online section and jump straight to them.
I will point out the cool corners and gotchas of C# and .NET so that you can impress colleagues and get productive fast. Rather than slowing down and boring some readers by explaining every little thing, I will assume that you are smart enough to Google an explanation for topics that are related but not necessary to include in a beginner-to-intermediate guide that has limited space in a printed book.
Some chapters have links to additional related online-only content for those readers who would like more details. For example, Chapter 1, Hello, C#! Welcome, .NET!, has an online section about the history and background of .NET.