views:

377

answers:

8

[ This isn't Baked Potatoes - For Programmers, but it still might be deemed "not programming related" ]

I've read through some of the recommendations at Can you recommend a good C# windows programming book (for Java developer), but none of those seem to be exactly what I'm looking for (perhaps because it doesn't exist).

Specifically, I'm looking a C# textbook for (very) experienced C++ developers (10+ years in many cases). They know STL, they know MFC, they know C++; they've been shipping successful products for a long time. What they don't know is C# and .NET (in particular WinForms/WPF).

Since this is a work environment, I'd like something a bit less formal than (college) textbook, but more "respectful" (?) than a beginning book. One text that looks like it may fit the bill is C# 2008 for Programmers, 3/e from Deitel. Any "hands-on" experience with this book? Are there other suggestions?

I'm using the phrase textbook because one idea is to use the book to teach a formal (say one-week) in-house peer-to-peer C# class. Thus, it would be very helpful to have some prepared course material, but w/o step-by-step guidance on using Visual Studio 2008.

+6  A: 

I would suggest CLR via C# as it will teach you the CLR using C# - two birds with one stone.

Once you have read that I would recommend that you read C# in Depth to get a more "in depth" take on C# as a language.

Once you have those two under your belt, you should read both of these:

Effective C#
More Effective C#

To begin polishing your C#.

Andrew Hare
+1 - very helpful, assuming you're already an experienced C++ and/or Windows developer
Tim Robinson
A: 

I would suggest CLR vi C# book for experienced C++ Developers learning C#.

Syed Tayyab Ali
+2  A: 

Jon Skeet's book "C# In Depth" is an excellent introduction to C# for developers who already know C++. The writing is excellent and it explains the language very well, including suggestions on style and best practices. This book doesn't cover the CLR stuff in as much detail as other books so you might get use out of another reference book, but I use MSDN for that and I'm fine.

See also: Best C# Book For An Experienced Programmer

James Thompson
Note that C# in Depth doesn't explain the basics of C# 1. They can be picked up via an "old and small" book though - or you could just plough on and look up unfamiliar bits as you encounter them :)
Jon Skeet
How's the 2nd edition coming along Jon? Looking forward to it.
Jason Down
Not started yet. Finishing my (small) part of Functional Programming for the Real World first. Should start on it in earnest next week though.
Jon Skeet
Cool. I may have to check out the Tomas Petricek book as well. I've been interested in getting to know F#. Good luck on both books.
Jason Down
+1  A: 

I'd recommend C# 3.0 in a Nutshell. My background prior to learning C# was primarily C++, and after struggling to "write C++ in C#" for a while, this book was what I really wanted, providing a great way to learn the core classes and how to do things non-painfully in C#, along with what is probably one of the greatest chapters on threading that I've EVER seen, ANYWHERE. There's been some good ones before (the chapters on that topic in "Advanced Linux Programming" are really good too), but this one has the dos, the don'ts, and specific cases for why you would WANT to use each sync method. It's in fact online, for free, by the author: Threading in C#

Now the one thing it does NOT have is what you specifically asked for: WPF/WinForms. It specifically does NOT include things on those topics (though the threading guide linked above has the important parts about Invoke/BeginInvoke calls for WinForms), but the "grounding" your developers will need is definitely in C# 3.0 in a Nutshell.

Also note: get the 3.0 version of the book. The 1.0 is crap, and by a different author. I had to learn from that one for a while, and it was awful. 3.0 is great though.

Kevin
+2  A: 

I liked Accelerated C#

scottm
Agreed, this seems to be the best line for people coming from a prior version, or another language.
Tracker1
A: 

I'd recommend C# Precisely. Brief, no fluff, good content, lots of examples.

John D. Cook
A: 

See http://stackoverflow.com/questions/531329/best-c-book-for-an-experienced-programmer for a very similar question. The answer there was C# in a Nutshell.

Steve Rowe
A: 

Apress's "Pro C# 2008 and the .net platform" (by Troelsen) is exceedingly useful.

Garrett