The book is aimed at novice programmers who wish to learn programming with C# and the .NET framework. The book starts with absolute programming basics. It then moves into Web and Windows programming, data access (databases and XML), and more advanced technologies such as graphics programming with GDI+ and basic networking. The book is divided into sections including:
The C# Language: Basic language skills using console application. Content moves from the absolute basics to fairly involved OOP skills.
Windows Vista Programming: Using basic Windows applications, reinforcing earlier OOP and debugging skills.
Web Programming: Putting together basic Web applications, highlighting differences between Web and Windows programming.
Data Access: Accessing all kinds of data sources from Web and Windows applications, including SQL usage, XML, file system data, and Web Services.
Additional Techniques: `The fun stuff`, including Windows Presentation Foundation, Windows Workflow, Windows Communication Foundation, GDI+, networking, Windows Services, and so on.
The book makes complicated subjects seem easy to learn, and it inspires readers to investigate areas further on their own by providing references to additional material, and exercise questions that require significant effort and personal research to complete.
User review
Confusing, rushed, unsctructured, horrible examples
I'm an amateur programmer with a C++ background. I've read other Wrox books but this one is very dissapointing. I don't know how others can say this is a good book for a beginner.
I have to agree with Aro's opinions on this book.
Primarily, the examples like the Vector example, is very confusing - i'm trying to understand the concept of C# programming and they drown it in a confusing Vector example. I want to keep it simple to i understand how the C# programming works, not physics!
The book assumes you already know many things, skims over explaining new concepts as if its a review session. It shows how, but not why. Many examples are just retyping what the authors have come up with. I don't want to cut and paste, i want to learn to develop!
There are mistakes in this book - particularly a big one on page 197, on polymorphism.
The authors give you an example in one chapter, in the next say, forget it all, here's a better way and they build on the previous example, WHICH is not clearly explained! The book does not explain the details of what's going on, then expects you to understand concepts that are built on these simpler initial concepts.
Interfaces and implementing them is extremely confusing in this book. I had to refer to external sources and videos just to understand why they are doing the things they are.
Chapter 11 is just crammed with a lot of new concepts, poorly explained, lack of detail - this chapter feels like you're about to eat a dinner for 20 people. I made it to chapter 12 and I'm realizing it is time to find another book. I would NOT recommend this book, especially to a beginner! I've compared this book to others in the same subject/level and it is a very frustrating book. I feel this book was rushed. Do yourself a favor and read a few chapters before you make this purchase.
User review
No Visual in this book--and not much code either
I am a veteran programmer who decided to get back into it after 5+ years absence from the field. Since it had been a while and my former experience was in other languages and this book got good reviews, I bought it.
Big mistake. There are several big problems with this book:
1: The exercises are too short and too unrelated to give any feel of creating anything that is like an actual program. Many of the examples are just skeleton code that do nothing. This means that if at first you don't get it you probably never will because you can't see it working. It is much better to build a series of mini-applications that actually process information so a beginner in a language can learn by building something that will actually work (then see how the parts in it work). Then the concepts that are obscure to begin with become clearer as they are employed. In this book the `try it` sections are more typing exercise than anything else, and these are incredibly short. The authors' reliance on DoSomething() and Console.WriteLine() is both monotonous and uninformative. To really see what code can do, you have to actually make it do something other than the same nonsense over and over. It is best if the exercises actually have you figure out how to accomplish something with the code rather than just typing empty syntax.
2: The authors totally ignore the user interface as a part of the program. Real programmers do NOT make programs based on lines of straight text to and from the console. Besides the fact that it is deadly boring, this approach is also too simplistic to teach any sense of what a full application entails. Particularly in Visual Studio, it is important to consider the interface as part of the context of the application. Making the interfaces also gives a programmer the same stimulation that the programmer will need to provide for future end-users. Visual Studio and Visual Studio Express provide very easy access to those interfaces. Not using the interfaces really short-changes the would-be programmers.
3: The book is totally lacking appendices or other reference areas with a brief, concise summary of language features and syntax--or expanded information. This should be a vital part of a beginning book on any language. Want to review the syntax for a specific declaration? Trying to figure out the best approach for looping through a series of tasks or data? Normally one would go to the chart of program control structures at the end of the book to review the syntax for clues. Not with this book. Such a chart exists nowhere in it. Your only option would be to reread entire relevant chapters.
4: When you finally get to user interfaces, they are presented as something that is totally different from the programming techniques you learned in the earlier chapters. The various form features are introduced, along with their properties, but there is pretty much a complete disconnect from the programming that should be happening behind the forms. Working on interface as an integral part of the program instead of something different would make a much better approach.
I will not finish this book and do not recommend it to anyone who actually wants to learn to write code that actually does anything or interacts with users in a meaningful way.
User review
1/3 of the way through and had to put it down
I have normally found Wrox books to be quite informative. I own several on subjects such as XML, Visual Basic, and C++. I cannot, however, recommend this book for those that are starting out fresh with C#. I am an amateur programmer with previous experience with Visual Basic, Python (including wxPython), and C++, and this book did me no favors in introducing me to C#.
My main complaint is that the authors' exercises are overly complicated to demonstrate C# programming concepts. It seems as though in their desperation to show real-world applicability, the authors take the long way around. I am pointing in particular to the various Card Deck and Vector exercises. If I have to figure out exactly what it is you are trying to do with the program AND work at wrapping my head around a particular C# programming concept, then the exercise becomes less effective, especially for a BEGINNER. In short, the authors seem to have chosen to neglect the Keep it Simple Stupid (KISS) principle in many of their exercises.
I also do not think this book is organized effectively. As another reviewer mentioned, the authors have a terrible habit of referencing material that will come later in the book. This should be a big clue to the authors that perhaps they have not organized the material well. And, generally speaking, the book does not build effective transitions from one concept to the next. (As an example, in one of the first chapters the authors have an extensive lesson on Bit Twiddling, although they admit that it is not used very often in C#. Why bother?)
Given the complicated nature of the example exercises and the lack of organization and effective transitions, I found myself starting to swim about 200 - 250 pages into the book.
And one final complaint - I hated having to go back and modify code that I had already written so that it would fit into some new concept. I'm not talking about Adding to existing code that had been completed in a previous exercise, but modifying very specific lines to accommodate some new concept.
I give this book 3 stars, because I think it is a comprehensive reference guide, but if you're a beginner with C# you should probably get your feet under you with another book before you come to this one. I found Daniel Solis' Illustrated C# 2008 to be much more effective in its introduction to C# than I did this book.
User review
Nice Book
It's nice book. All examples there are really basic and written step by step. It's good for a beginner.
User review
Not a good one
I haven't bought this book, rather I was reading one of my friend's book. I read first 13 chapters and my comments are based on that only. I found it as confusing book. Even Author is not able to explain bitwise & and logical && operators correctly. He said both are same except performance issue. Same thing I found in `SWITCH` case explaination. I would not reco. this book to anyone.