With the exception of the ColdFusion application I support, the company I currently work for is a Microsoft shop. I've recently been asked to help out with maintenance on some of our .Net applications; the only problem is I have next to zero .NET experience. For what I've had to do so far this hasn't been a huge problem, but I've decided to take this opportunity to really dig into .NET and see if I can't learn anything useful. I decided to start out with a book I've had on my bookshelf for awhile, Understanding .NET, A Tutorial and Analysis by David Chappell. The book is a little outdated so it covers some topics that are no longer relevant (.NET My Services anyone?), but overall I've found it pretty helpful. If you are looking for a hands-on book to teach you programming in .NET this is not the book for you. This is more of an introduction with a strong focus on the underlying technologies and design decisions behind the .NET framework. The first part of the book gives a general overview of .NET, followed by introductions to both web services and the CLR. The latter part of the book has some example code with one chapter on the different .NET languages and another on the .NET Framework Class Library followed by chapters focusing on ADO.NET and ASP.NET specifically. The author is obviously a Microsoft technologist, but he at least makes an attempt to be objective. One quote I particularly liked was the following:
The people who create software tools often forget that they're almost always much better software developers than the people who will use those tools. As a result, they tend to create tools that they themselves would like to use, tools that are too complex for many of their potential customers.
While the author is talking about VB.NET in this quote, it definitely rings true for developers of software products in general, not just software tools in particular.
While the book does have some good content, I probably wouldn't recommend it to anyone looking to get started in with .NET, mainly because it is a little outdated. I'm probably going to be reading a couple more .NET books over the next few months so maybe I'll have a recommendation soon. Also if any of my reader have any recommendations of good hands-on books for web application development with C# I'd like to hear them. (A co-worker lent me Teach Yourself C# in 24 Hours from Sams Publishing. I've never really been a big fan of that series of books, but it has been awhile since I read one so I may give this one a try.)