This book is a mixed bag of excellent and not so excellent. There are lots of negative things to point out but yet it is still generally a very good book. Firstly you need to know what you're really buying. This is suppose to be a beginners book for ASP.NET 2.0 using C# but there is no in-depth tutorial on C#. C# is covered in one chapter over 35 pages; so it doesn't do a very good job. For example it doesn't cover classes very well, no examples of abstract classes, interfaces, anonymous methods, iterators etc, and only very basic cover on generics. So although it is excellent on the features of ASP.NET 2.0 (for the most part) it isn't so hot on C#. For this reason it would help if you already know this language or have a solid programming background, as I feel the C# coverage is really aimed at experienced programmers who'll be able to pick up this language quickly as they go along. The manner in which the author writes indicates an expected readership already familiar with programming/development ideas and concepts. There were times when I was glad this wasn't the first ASP.NET book I'd covered as I believe I may have struggled otherwise. The author doesn't explain many of his examples and even coverage of the basic ASP.NET server controls is lacking, although they are used constantly, so again you'll just have to pick it up as you go along. For these reasons I believe the title of this book should have been `Migration to ASP.NET 2.0', as I do feel it is suited best to experienced developers moving over to ASP.NET 2.0 and certainly not beginners. If you're considering the pro version of this book then I'd say go for that instead as it is pretty much identical (word for word) to this book but has additional information and chapters.
On the plus side lots of questions I had were answered in this book. Bags and bags of quality information that really helped clarify areas where other books had left me hanging, and even parts where I already believed I fully understood something were improved upon here, loads of `ah ha that's why' moments, excellent! The author actually bothers to explain the steps in many ASP.NET processes which really does aid understanding; you get to know the nitty-gritty of how ASP.NET works, and knowing this can really help make your site building more productive. I also enjoyed the coverage throughout the book of the web.config file and excellent explanations of the settings you can make and why and when you'd want to make them. Frequently the author points out the advantages and disadvantages to so many aspects of ASP.NET, so you know what is best and when, as well as being aware of any potential problems or dangers doing something a particular way may incur. There is no denying that this is truly an excellent book; that is when you understand who the target audience really is and once you get over all the errors. A big plus is that the author teaches you the right way to do things with worthwhile examples. You should be pretty confident when developing your own applications that you are doing things correctly and that you haven't overlooked anything. There really is so much quality information here. The new features of ASP.NET 2.0 (membership, profiles, master pages, themes, sqldatasource etc) are covered well here, as well as the usual stuff on data access, xml, working with files, security, user controls, components etc. Frequenlty the author provides examples of how to implement a feature programmatically as well as with server controls; so you get the best of both worlds.
On the negative side there were loads of coding errors in the examples, I found over 30, some pretty big ones, which I submitted to Apress but they didn't bother putting them up on their site. I know others have also done this but Apress seem to be ignoring them as well. The reluctance by Apress to post the errata has caused me numerous unnecessary headaches and hours of sheer frustration; which everyone who buys this book (and bothers to try the examples) will have to needlessly endure. Maybe Apress won't post these errors as they are concerned about the effect it may have on sales, or maybe they just can't be bothered supporting their product. In addition the downloadable source code frequently differs from the code examples in the book and quite often didn't work; I kept having to alter the code and the web.config files to get the examples to work - very frustrating. I did find all this constant messing around very distracting and de-motivating; it's far more difficult to learn things when you're spending so much time trying to get the examples to work. Also I did post one question to the publisher but they didn't bother responding, I've never had this problem with Wrox Press.
Frequently features of C#/ASP.NET are mentioned and/or used which aren't covered until later in the book if at all; if you don't already have an understanding of these areas you will definitely struggle, this is another reason why the book isn't for beginners.
At some points you do question the author's knowledge, for instance he lumps comparison operators in with logical operators under the banner of logical operators, a small gripe you may say but the fact is they are different and serve different purposes even though they are frequently used together. It's important to convey the correct information to beginners to ensure they get off on the right foot, and it ensures they can communicate to other developers correctly, this avoids confusion. It wouldn't have taken much effort to do this type of thing correctly. Amazingly the not (!) operator wasn't listed at all, or explained, even though it was used throughout the book!!! Poor development practices are encouraged here, such as applying styles inline, using tables for layout (as he does with master pages and web parts), mixing up HTML/XHTML (which causes problems in VS2005 under the default doctype).
An author that teaches beginners has an obligation and responsibility to do things correctly to ensure potential developers don't inherit poor working practices as this is a headache for all of us. I also found I had to alter the path to master pages and really play around with sitemap files in order to get VS2005 to find and work with them properly, again due to the poor downloadable code; it really does let this book down.
Chapter 18 tells you to use the Security Tab of the WAT to set up an authentication type but you can't use this tab if you're using a database other than the SQL Server Express Edition (set up by default with this feature), such as the full version of SQL Server 2005 as I am. You're not even told that a database is even being used. In order for this feature to work on SQL Server 2000 or 2005 full editions you have to specify a different connection string in the web.config file for your application, and under SQL Server 2000 you also have to create a database and then run the aspnet_regsql utility. There is no indication of this within the chapter so I didn't know why my example wasn't working. I spent ages on the Internet trying to find the solution; I finally did. Then in the next chapter the author tells you how to set up membership for a SQL Server database other than Express Edition, then you find you can use the Security tab within the WAT. Why didn't the author tell us how to do this in the previous chapter when setting up authentication? It would have saved me hours of frustration and headaches.
Despite the negatives there is a wealth of fantastic information here, and you do get the impression that the author really knows his stuff. Of course it doesn't cover everything and there is always much more to learn on the areas that it does cover but that's just the nature of the beast that is ASP.NET. However with a little bit more effort on the code side, a few more explanations, and support from Apress this book would have been a real gem.