Most helpful positive review
64 of 64 people found the following review helpful
A more than heavy weight introduction...
on December 18, 2010
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.