17 of 19 people found the following review helpful
on June 29, 2011
In general, I really liked the book. Not clouded by programmer-speak. OOP concepts were presented in a logically, distinct and readable manner and geared to a beginner audience - old timers like me still learned a few new things.
Don't let the word "beginning" in the title deter one from buying this book even if you have previous C# coding background. I feel that the implementation of the OOP concepts using the Visual Studio IDE is better understood by those who have some background C#.
For true "beginners", the latter chapters dealing with the creation of the Data Access Layer and the simple creation of Windows and Web Applications may be a bit much. It is a simple step by step explanation of how you use OOP with Windows and the Web; it may be too much for the true C# novice, too simple for the experienced. On the other hand, it is needed to show how those OOP concepts become real. I leave it up the individual "novice" to make that call.
Overall, there is a lot of good material here on the OOP subject and its implementation using the Visual Studio product. Even an old war horse like me learned some new stuff. It was a quick read for me, but I would recommend this book for those who want a precise and distinct explanation of OOP and how it is implemented using C#.
7 of 7 people found the following review helpful
on June 25, 2012
Coming from a classic ASP background and moving into .net by way of VB.Net and then moving over to C# I got this book really to solidify my concepts on OOP and just have a better vocabulary for interviews.
Nothing was earth shattering, the book is well written, easy to understand. I'd say for someone brushing up or just getting familiar with OOP its solid.
My one criticism is the heavy emphasis on UML. Honestly I've been working in development for over 15 years and have never seen UML practically used. Not to say some shops don't use it, but I've never seen it requested in skill sets or mentioned by recruiters or asked about it in interviews.
9 of 10 people found the following review helpful
on September 8, 2011
I have read quiet a few C# books and must say that I have really liked the flow of this one, not to mention it is only 371 pages, no fluff. The use of exercises have been very well done. They are not long exercises but definitely aid in making the material clear + they all work. This book definitely clarifies the whole object oriented paradigm (encapsulation, inheritance, polymorphism etc) but is not necessarily for those who are looking to start learning to program from scratch.
6 of 6 people found the following review helpful
on September 10, 2012
Many books that educate in programming tend to focus on language syntax and structure; an approach that can be quite tedious when learning.
This book is different. It begins with the design of software systems using the Unified Modelling Language. Such high level discussions can tend to be a turn-off for many programmers in their rush to churn out code. Persist, read through the well worked out discussion case study and you will acquire a crucial foundation for truly understanding Object-Oriented Programming and appreciating the context of C# language syntax and structure when it is presented in later chapters.
C# is complex but the Author does a superb job of making many of the complexities of C# so very, very easy to understand. I cannot highlight this enough. The flow of the book from software system design ( UML ), progressing to C# syntax and fundamentals and finishing with well worked out code samples on technologies such as ADO.NET, Windows, Web Development and WCF Services enhances the entire learning experience.
This book is superb; a must-have for those new to C# Object-Oriented Programming.
4 of 4 people found the following review helpful
on November 29, 2011
I have read Dan's VB 2005 object-oriented programming book from page to page, and I was impressed with the knowledge I have gained after that, esp. use-cases to complete the OSO application.
This book is no different, but packed more of new information and is using new technologies to present the topic and complete the application. I specially liked the introduction to WCF and silverlight. WCF is a confusing topic for me, I have 2 books on it. But Dan's explanation on WCF is straight forward, so the beginner reader won't be confused unlike me when I first started understanding WCF.
If you have the basic knowledge of programming but new to OOP, I suggest you grab this book and complete the application. It won't make you the best or expert programmer, but will give you enough wisdom to tackle your next small project, from concept to code.
4 of 4 people found the following review helpful
on December 13, 2011
After spending several hours reading book reviews on iProgrammer, and also on Amazon, I purchased this book. It is a valuable learning tool for the beginning developer.
While I may disagree with some of the "logic" programmers use in their development, the way in which Clark rationalizes decisions is very clear. The graphics are easy to understand, and his explanations provide insight into a world that is often "murky" to the outsider.
An excellent purchase.
3 of 3 people found the following review helpful
The title "Beginning C# Object-Oriented Programming" probably suggests various things to various people. As such, no one will probably get exactly what they expect from this book. It definitely covers Object-Oriented programming, at least roughly in its first eight or so chapters. It also covers user interface development. Then it bursts into data access with ADO.NET and a teasing, and far too brief, dash of Entity Framework and ORM technology. By book's end readers will learn much useful information about application development with specific platforms, but the "Object-Oriented" in the title seems to get lost about half-way through. In the end, the book comes off as somewhat of a mishmash on various topics. An accurate title would have to read something like "Beginning Designing and Developing Object-oriented C# Applications with WPF and ADO.NET with Some Other Stuff Sprinkled in." A bit prolix for publishers and marketers, of course, but more accurate.
Up until chapter eight, and maybe chapter nine, the title makes complete sense. A bit of OO history and major concepts get introduced, along with OO modeling via UML class and sequence diagrams. Also included, not typical for a programming book, is a discussion of requirements and business communication. All good stuff as it emphasizes design and how design ultimately translates to code. Then hands get dirty with bits in a short introduction to Visual Studio, the C# framework and the code behind creating classes, inheritance, polymorphism, interfaces, methods, events and generics. Everything remains pretty basic in this part of the book. Principles such as SOLID or design patterns don't appear, so this book really covers the extreme basics of object-oriented programming and design, which makes a good starting point for beginners to these topics.
Up to this point the book definitely focuses on Object-Oriented programming. One may expect further elaboration or examples on the concepts discussed so far. Instead, chapter 10 veers off into a cursory discussion of ADO.NET. Here the book, for better or worse, transforms into an introduction to application architecture and development. The book's focus also seems to change into building a working application with various technologies. The remaining chapters discuss the various levels needed for a basic loosely coupled application. ADO.NET provides the data access layer. WPF provides the User Interface layer. For some reason extremely high-level discussions of Silverlight and Windows Communication Foundation (WCF) sneak in. They provide interesting asides to the topic at hand, but they also seem a little out of place given the context. These remain the book's weakest sections as the chapters only give a taste of each technology, all of which could easily fill books in and of themselves. The final chapter provides the code for a full, though by no means production-ready (as stated), application that more emphasizes application architecture, ADO.NET and WPF than the Object-Oriented principles discussed in the book's first sections. Those coding this application by hand (definitely a worthwhile experience) will find a few small errors in the book's code that a look at the data schema will resolve.
Strangest of all are the appendices that discuss the basics of C# and "Fundamental Programming Concepts." If this is a beginning C# book, shouldn't this information appear earlier, maybe following chapter 5? This begs the question whether this book intended to be a beginning C# book or a beginning C# Object-Oriented programming book. Taken as a whole, its structure seems confusing. Especially since the Introduction says that the target audience includes programmers who want "to gain a foundation in object-oriented programming along with the C# language basics." It succeeds in the former but not in the latter. As such, this is not really a beginning C# book, though it seems to want to be one.
The book definitely includes a lot of useful information and programmers with some experience can learn a great deal. Though absolute beginners to programming should approach this book with caution as it doesn't really cover the basics. Also, those looking for a detailed introductory treatment of Object-oriented principles may not find what they want here - or they may want to bail after chapter eight or nine and seek more detailed sources. Still, the book has it uses for junior programmers, especially those working with WPF or XAML-based development. Ultimately, the curious should examine this book's table of contents to determine if it covers what they really want to learn.
10 of 13 people found the following review helpful
Dan Clark, A Microsoft MVP ("Most Valued Professional") and highly prized trainer obviously has an exceptionally strong interest, in educating neophytes and people whose education in programming was prior to the current object-oriented focus in both the conceptual foundation, design and in-code implementation of object-oriented concepts. He has succeeded marvelously in educating in object oriented design and programming particular in C# and within the .NET framework in this exceptional volume. He begins with a careful explanation of the object oriented philosophy as well as design using basic UML architectural modeling tools. He then proceeds with a case study in these methods that is given at first pass in Chapter 4 (further detailed implementation of this complete sizable application is postponed (appropriately) to Chapter 14. Even the logical flow of chapters has obviously been well-thought out--in Chapter 5 he gives a detailed explanation of those features of the .NET framework and Visual Studio which are useful in constructed and debugging object-oriented programs (since these features might be unfamiliar to programmers not coming from the Microsoft camp)--but for non-object oriented basic
features of the language he provides the requisite summary in Appendix A of the book. Additional useful features of the huge C# language
and .NET framework relevant to object-oriented programming such as data access, working with collections, object collaboration and Windows and Web Services of .Net are provided and exquisitely explained in the later chapters of the book.
This excellent tutorial on Object-Oriented Design, Programming, and the specific Object-relevant features of C# is an important addition to my Software Engineering library. For anyone new to Objects and their effective use, whether a programming novice or someone like myself who was educated in the days of Fortran and Pascal will get a clear, succinct yet comprehensive view of Object-Oriented Programming and effective use of C# and the .NET Environment.
--Ira Laefsky, MSE/MBA IT Consultant and HCI Researcher
formerly on the Senior Consulting Staff of Arthur D. Little Inc. and Digital Equipment Corporation
5 of 6 people found the following review helpful
on August 3, 2012
I purchased this book on Amazon in the hopes to learn the C# language. I've been a PHP/MySQL guy for a few years, but through many job searches, I found that, at least in my area, .Net development was in the most demand of all languages. So, I picked up this book to learn a little bit and was kind of amazed at how quickly I was able to pick it up. The book is structured nicely, with things placed in a specific order that allows each section to build upon the last. Really, in the last week I've learned a lot and it is mainly due in part to how well the book is written.
The only downside that I found with this volume is the amount of errata in the book. Every now and again, you'll see a tutorial in the book demonstrating how a certain component of C#/.Net works but it won't work for the reader. It's not a really big deal since the errors were pretty minor, but there were a few errors here and there that drove me crazy until I looked up the errata on the Apress site. Overall, however, I'd give the book 4.5/5.0 stars (but since partial stars isn't a part of this review, I'll give 4 stars).
It's definitely a great book to pick up if you're a total n00b at C# or are a procedural programmer looking to break into the whole OOP experience. I wouldn't recommend this book for those interested in advanced OOP concepts or advanced C#/.Net. As it is titled, it is mainly aimed for "Beginners".
on April 28, 2014
In my own idea this book is one of the best books on C# and object-orientation in .NET. One of the unique features of this book is, the reader is not lost . In other words, the author covers enough background information and then describes how to implement. The coverage of background contents and implementation details are very well. I recommend this book to any .NET practitioners and even university students. Note that this book is not a reference book and it doesn't cover all about object-orientation in .NET. In other words, the title of the book greatly explains its contents.