"Shining a bright light into many of the dark corners of C# 3.0, this book not only covers the `how,' but also the `why,' arming the reader with many field-tested methods for wringing the most from the new language features, such as LINQ, generics, and multithreading. If you are serious about developing with the C# language, you need this book."
-Bill Craun, Principal Consultant, Ambassador Solutions, Inc.
"More Effective C# is an opportunity to work beside Bill Wagner. Bill leverages his knowledge of C# and distills his expertise down to some very real advice about programming and designing applications that every serious Visual C# user should know. More Effective C# is one of those rare books that doesn't just regurgitate syntax, but teaches you how to use the C# language."
-Peter Ritchie, Microsoft MVP: Visual C#
"More Effective C# is a great follow-up to Bill Wagner's previous book. The extensive
C# 3.0 and LINQ coverage is extremely timely!"
-Tomas Restrepo, Microsoft MVP: Visual C++, .NET, and Biztalk Server
"As one of the current designers of C#, it is rare that I learn something new about the language by reading a book. More Effective C# is a notable exception. Gently blending concrete code and deep insights, Bill Wagner frequently makes me look at C# in a fresh light-one that really makes it shine. More Effective C# is at the surface a collection of very useful guidelines. Look again. As you read through it, you'll find that you acquire more than just the individual pieces of advice; gradually you'll pick up on an approach to programming in C# that is thoughtful, beautiful, and deeply pleasant. While you can make your way willy-nilly through the individual guidelines, I do recommend reading the whole book-or at least not skipping over the chapter introductions before you dive into specific nuggets of advice. There's perspective and insight to be found there that in itself can be an important guide and inspiration for your future adventures in C#."
-Mads Torgersen, Program Manager, Visual C#, Microsoft
"Bill Wagner has written an excellent book outlining the best practices for developers who work with the C# language. By authoring More Effective C#, he has again established himself as one of the most important voices in the C# community. Many of us already know how to use C#. What we need is advice on how to hone our skills so that we can become wiser programmers. There is no more sophisticated source of information on how to become a first-class C# developer than Bill Wagner's book. Bill is intelligent, thoughtful, experienced, and skillful. By applying the lessons from this book to your own code, you will find many ways to polish and improve the work that you produce."
-Charlie Calvert, Community Program Manager, Visual C#, Microsoft
In More Effective C#, Microsoft C# MVP and Regional Director Bill Wagner introduces fifty brand-new ways to write more efficient and more robust software. This all-new book follows the same format as Wagner's best-selling Effective C# (Addison-Wesley, 2005), providing clear, practical explanations, expert tips, and plenty of realistic code examples.
Wagner shows how to make the most of powerful innovations built into Microsoft's new C# 3.0 and .NET Framework 3.5, as well as advanced C# language capabilities not covered in his previous book. Drawing on his unsurpassed C# experience, the author reveals new best practices for working with LINQ, generics, metaprogramming, and many other features. He also uncovers practices that compromise performance or reliability and shows exactly how to avoid them.
More Effective C# shows how to
Use generics to express your design intent more effectively
Master advanced generics techniques, such as constraints, method constraints, and generic specialization
Use the multithreaded techniques you'll need to work with the .NET framework every day
Express modern design idioms using the rich palette of C# language features
Successfully mix object oriented and functional programming constructs
Create composable interfaces and avoid confusion in public interfaces
Use extension methods to separate contracts from implementation
Program successfully with C# closures and anonymous types
Write more effective LINQ queries
Make the most of LINQ Lazy Evaluation Queries and Lambda Expressions
Distinguish and convert between delegates and expression trees
Efficiently utilize nullable types and partial classes
Use implicit properties for mutable, nonserializable data
You're already a successful C# programmer-this book can help you become an outstanding one.