62 of 62 people found the following review helpful
- Published on Amazon.com
Some people prefer brisk walks through the park while others prefer to climb ice sheets with their teeth. The bulky, almost intimidating looking, "Beginning Visual C# 2010" belongs more to the latter category. No brisk walk here. Though the book begins at an absolutely elementary level, it builds up to near advanced levels by Chapter 14. And it includes details and voluminous examples. As such, the book calls for some effort and resilience on readers' part. Newcomers in particular should perform brain yoga before each session, especially before the chapters on Classes, Generics, and C# Language enhancements. But don't fret. Though the book presents challenges, it remains accessible throughout. Plus, things lighten up a bit following chapter 14 before picking up again in chapter 21. Best of all, the stalwart who ingest every word of this side-of-beef sized tome will come out ready to program in C#. They will even get glimpses of the future, which is rapidly becoming the present. So consider the journey a worthy undertaking.
Part I begins by dipping a toe in the Olympic pool of the C# language. It starts slow and easy, complete with a full description of the Visual Studio 2010 Integrated Development Environment (IDE). Without such a tool, all coding would happen by hand and take far longer than any Project Manager or Executives would accept. Keep these people grinning and use the IDE. Though the free version of Visual Studio (Visual Studio Express and Visual Web Developer Express) will work with 99% of the examples, the authors sometimes forget that subtle differences exist between the full and express versions. These gaps appear more and more in the database sections later in the book, though workarounds exist for all of them. After covering the IDE, Part I slips deeper into the C# language. All of the fundamentals receive adequate treatment. Variables, loops, functions, debugging, etc. Along the way a console card game gets constructed piecemeal. After a very accessible discussion on Objects and classes this program becomes fully functional. It won't win any gaming awards, but it will elucidate some potentially difficult to grasp concepts. Things get sticky in chapter 12 with Generics. Those new to object oriented programming may find this a concept challenging at first. Luckily the topic takes up an entire chapter and receives really detailed coverage. Chapter 14 introduces new additions to the .NET 4 framework. Pay particular attention to Lambda expressions, as they will come up again (and likely more and more in the future quickly melting into the present). By this point readers will have a solid grasp of C# fundamentals. But they'll also only be 400 pages into the book.
A breather arrives with Part II, which covers windows forms programming. Here the IDE tears its shirt open to reveal the true rippling power underneath. Things actually get easier since forms more or less build themselves (by command, of course) leaving programmer time to fill in the cool bits. A whole GUI (Graphical User Interface) can appear in minutes. Just drag controls onto the form(s), wire them up and fully functional, though simple, programs appear. Knowledge of windows forms alone, however, won't land anyone a programming job, as most applications these days are web-based. Part II provides an introduction to that far more ubiquitous platform (one wonders how many new production quality windows forms programs get created every year). ASP.NET puts C# on the web. Chapters 18 - 20 give a fairly high level overview of this technology, including a chapter on Web Services. Don't expect an exhaustive treatment here. This subject needs a dedicated book (Imar Spaanjaar's "Beginning ASP.NET 4 in C# and VB" provides one good choice). Part III dives back into details with file system access, XML and the ever increasing in importance LINQ (Language Integrated Query). Some consider LINQ a "replacement" for the database query language SQL. Yes and no. It actually accomplishes far more than SQL and in some different contexts. The introduction here runs two chapters and more than covers the needed basics. Lastly, Part IV peeks into the future with introductions to Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF). These chapters provide great introductions to these new technologies (especially the WPF chapter, which is worth a read by itself). The next generation of .NET has arrived and, as usual, things have changed. At least this book won't leave readers behind.
This enormous book obviously covers a lot of ground. Anyone who feels the weight of this thing surely asks "is the commitment worth it?" That may depend. Any prospective professional programmer will very likely need to know a good portion of this book to stay competitive. So those going down that road should probably get this book, or one with similar girth, firmly entrenched in their heads. Consider this a mere starting point (the professional book in this series is even longer). The curious or those looking to just play around with the language and have some fun can probably find better (i.e. shorter) starting places. Think web tutorials or smaller step-by-step books. C# and the .NET framework are huge landscapes that no one person could ever master completely, so serious .NET programmers should expect to spend their careers in a state of continuous learning. This book gives a juicy taste of the knowledge base needed. So where does the book not excel? For one, it has a Frankenstein-ish structure. Different authors clearly stick out in style, nomenclature and detail. Part I remains the most meticulously written, which becomes clear once one moves into the other parts. A consistency editor would have made the book flow better end to end. As such, it almost feels like five separate books welded together with the convenient "C#" umbrella providing the only common theme to the sometimes unwieldy mass. Nonetheless, the parts do build on one another, though somewhat sporadically at times. In any case, the book still provides a good foundation for C# programming and an excellent launching pad for new technologies (the WPF chapter would make a great standalone book or web tutorial). The ambitious should start, but not stop, here.
18 of 19 people found the following review helpful
- Published on Amazon.com
I HIGHLY recommend this book to readers that are either new to C#, but perhaps more so, to those that need an overall REFRESHER on the .net framework, C#, OOP, windows forms, web services, asp.net, etc. It is a good starting point before delving into advanced topics in these areas.
I've also found the "try it now" exercises to be concise and to the point. I have not completed the entire book, but I am pleased with the content so far.
9 of 9 people found the following review helpful
- Published on Amazon.com
The authors had a great grasp of "how to teach" and did it very well. The style of presentation is fluid and it progresses in a way that is very readable and understandable. Not stilted, like many text, nor in any way "dumbed down". I enjoyed learning from this book.
8 of 8 people found the following review helpful
Carlos Lamont Bostick
- Published on Amazon.com
This book could have been one of the greats but I have two big problems with it. First of all it devotes just a little more than a paragraph to the subjects of Polymorphism and Interfaces which are two of the most important subjects in Object Oriented Programming. I mean really??? and the explanations are convoluted and vague.
The second issue I have is that one can tell that this book is written by multiple authors. Some of the chapters and explanations are crystal clear, yet others are WORDY and the author's implementation of the english language makes difficult topics even more cloudy. You might have to ready certain sentences five or six times to make head or tails of the message he/she is trying to convey.
The book has overall solid chapters but the two previous issues are large enough to spoil it for me however.
7 of 7 people found the following review helpful
- Published on Amazon.com
Well I have made it to 14 chapters so far, considering I got this book almost 2 weeks ago I consider it decent progress.
Now by cutting all BS aside let me get to the point.
The book starts out good but then there are moments in the book where writer leaves me confused. The most problem I had was with Collections and Generics chapter. It turns out the collection itself are not that difficult as the examples make it so. The point I would like to make is not everyone in computer science or programming has a strong roots in mathematics so writer should avoid using Vectors or other mathematical examples to explain the concepts of programming. For example, in Generics chapter when writer was trying to explain the IComparable<T> and IComparer<T> along with 2 delegates, Comparing<T> and Predicate<T> he used the example of Vectors... which confused the heck out of me..
I understand delegates as they can store the reference to methods of matching signature and but when I was trying to look the .Net exposed generics delegates... it became so confusing... not because of delegates syntax but because of mathematical example that was picked to show that.
It rather should have been simple to say,
Comparing<T> sorter = new Comparing<T>(ClassExample.Compare);
Predicate<T> search = new Comparing<T>(ClassExample.Search)
instead of intimidating with lines like following...
Comparison<Vector> sorter = new Comparison<Vector>(VectorDelegates.Compare);
Vectors topRightQuadrantRoute = new Vectors(route.FindAll.(searcher));
seriously its get the reader focus on understanding the context of example instead of understanding the simple delegate syntax or purpose here. That is not the only thing.. it goes in defining logic for prime numbers and so on ... so too much focus on mathematical examples and algorithms takes you away from understanding the context..
I am learning C# because I want to learn ASP.Net ... my intention is no where to build mathematical, geometrical, algebra or calculus programs.... so I don't need all that ... I just need the writer to tell me the basic syntax in simple examples so I can apply it in my own code...
I am hoping this type of things will cut down in the future versions so the book can be equally helpful to everyone... instead of just for someone who is good at mathematics... it is a false concept that you have to be a good mathematician to be a programmer...