C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you'll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 12.0 and .NET 8 fundamentals and techniques for building cloud, web, and desktop applications.
Designed for experienced programmers, this book provides many code examples to help you work with the nuts and bolts of C#, such as generics, LINQ, and asynchronous programming features. You'll get up to speed on .NET 8 and the latest C# 11.0 and 12.0 additions, including generic math, new polymorphism options, enhanced pattern matching, and new features designed to improve productivity.
This book helps
Understand how .NET has changed in recent releases and learn what it means for application development Select the appropriate C# language features for any task Learn when to use the new features and when to stick with older ones Examine the range of functionality in .NET's class libraries Apply these class libraries to practical programming tasks Explore numerous small additions to .NET that improve expressiveness
I felt this book, despite its comprehensiveness, suffered from a confusion over who its audience was and was ultimately much less useful than I hoped.
When you write a technical manual like this you are usually targeting either developers of another programming language trying to learn C#, or C# developers who want to deepen their understanding. This book feels like it’s trying to do both while effectively doing neither. On one hand it feels like it already assumes the reader is essentially comfortable with basic C#, as you would if it was the latter kind of work, but then does spend basically all its kind expositing features, rather than giving advice.
I appreciate that it does cover more advanced language features like parallelism, concurrency, RX, and LINQ, but given that the subtitle says “programming for desktop, web, and cloud” I probably would have traded the chapter on RX for one on ASP.NET or WPF, since those are both non-obvious and common uses of the language, more so than RX is. Still the breadth is clearly the strongest aspect of this book.
If you can borrow this from an academic library (as I have) it’s worth checking out, but buying absolutely should be avoided for its extreme price of >$100 CAD.
Edit: I’m again working with this book and I really have to emphasize how often the author uses material from later chapters in earlier chapters in a way which makes it very difficult to understand anything. Two specific examples I was just trying to work through:
- In the section on Types there is ton of use of Generics, when Generics are themselves a later chapter.
- In the chapter on Delegates, especially the section on lambda functions is extensive use of LINQ examples where again LINQ is a later chapter.
This second case is particularly frustrating because while lambda functions are integral to LINQ they are their own topic, and presenting them within a LINQ context in the chapter before LINQ proper is very sloppy makes for educational material which isn’t very generally useful.
This sort of foreshadowing happens everywhere in this book, where material bleeds into the proceeding chapter, giving you a clean exposition of nothing.