I recently got Andrew Troelsen's new book Pro C# 2005 and the .NET 2.0 Platform, Third Edition and I can't say enough how good this book is. I knew he was a good writer from his first version of the book which is what I used to learn C# a few years ago. I will say this is a serious developer book with comprehensive coverage of C#. The explanations are well thought out and written in a very clear style.

There are a lot of improvements in C# 2.0, one of the most interesting and most useful is generics. Amoung other things, generics bring elegence and economy to custom strongly typed collections. Even better, since this is one of the most important chapters in the book, Apress has made the generics chapter available for free as a pdf on their web site under book extras along with all the source code examples from the book. Read this chapter and I think you will want the rest of the book. Its an enjoyable read and a great reference.

People interested in mono generally come from one of 2 camps, either they are .NET developers looking to port their skills and their applications to linux/unix/Mac OSX or they are experienced linux users who would like to take advantage of the rapid application development abilities inherent in .NET and now available on linux via mono. I would say this new book from Apress is great for those coming from the linux camp who need an introduction both to .NET and the  mono implementation of .NET.

While experienced .NET folks will find some good nuggets in this book, especially Chapter 7 which introduces GUI development using Gtk+ and Glade, the bulk of the book would be review unless you are a beginner in .NET.

But that is the beauty of mono for .NET developers, if you know .NET you already know 90% of what you need to know to develop cross platform applications targeting both mono and .NET. The other things you need to learn are really just learning linux and some mono specific extensions of .NET that you may wish to take advantage of. I think it is well worth it to learn that other 10% and get your feet wet in the world of linux and open source.

I suppose there is also a third camp of folks out there who are neither experienced in linux nor .NET but are interested in learning both simultaneously. This is also a great overview for people of that ilk.