- Hardcover: 768 pages
- Publisher: Prentice Hall; 1 edition (July 30, 2006)
- Language: English
- ISBN-10: 0131857258
- ISBN-13: 978-0131857254
- Product Dimensions: 7 x 1.7 x 9.3 inches
- Shipping Weight: 2.8 pounds (View shipping rates and policies)
- Average Customer Review: 48 customer reviews
- Amazon Best Sellers Rank: #187,537 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Agile Principles, Patterns, and Practices in C# 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
"Rebound" by Kwame Alexander
Don't miss best-selling author Kwame Alexander's "Rebound," a new companion novel to his Newbery Award-winner, "The Crossover,"" illustrated with striking graphic novel panels. Pre-order today
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
From the Back Cover
With the award-winning book "Agile Software Development: Principles, Patterns, and Practices, " Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert C. Martin and Micah Martin, "Agile Principles, Patterns, and Practices in C#."
This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. The book includes many source code examples that are also available for download from the authors' Web site.
Readers will come away from this book understanding Agile principles, and the fourteen practices of Extreme Programming Spiking, splitting, velocity, and planning iterations and releases Test-driven development, test-first design, and acceptance testing Refactoring with unit testing Pair programming Agile design and design smells The five types of UML diagrams and how to use them effectively Object-oriented package design and design patterns How to put all of it together for a real-world project
Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software development manager, or a business analyst, "Agile Principles, Patterns, and Practices in C#" is the first book you should read to understand agile software and how it applies to programming in the .NET Framework.
About the Author
Robert C. Martin has been a software professional since 1970 and an international software consultant since 1990. He is founder and president of Object Mentor, Inc., a team of experienced consultants who mentor their clients in the fields of C++, Java, OO, Patterns, UML, Agile Methodologies, and Extreme Programming.
Micah Martin works with Object Mentor as a developer, consultant, and mentor on topics ranging from object-oriented principles and patterns to agile software development practices. Micah is the cocreator and lead developer of the open source FitNesse project. He is also a published author and speaks regularly at conferences.
Author interviews, book reviews, editors picks, and more. Read it now
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
From Chapter 9 - OCP: "Figure 9-1 shows a simple design that does not conform to OCP. [...] Figure 9-2 shows the corresponding design that conforms to the OCP by using the STRATEGY pattern (see Chapter 22)."
The whole book is filled with stuff like this. Another example: Right from Chapter 1 the book starts using UML - however the intro chapters on UML are laid out in Chapters 13-19. Totally beats me.
And there is nothing C-Sharpy (C#) about this book. There are some miniscule snippets which have been converted to C#. Nothing in the book leverages the unique features of the language - It is as though a lexical analyzer took the old book, converted the Java snippets into C# and auto-published it.
I have spent over 6 hours with this book now and am at chapter 10 - and I dont feel that I have learnt anything significant of value - the same ol' XP, Agile story and a very shoddy treatment of patterns.
Nothing differentiates this book from the hordes of others out there. I think Accelerated C# 2005 by Trey Nash would be a much better alternative - atleast, in there, the authors don't snub the .NET programmers out there like in here:
Quoting from the preface:
"Teaching week-long courses on various software topics allows me to meet a wide cross-section of developers from around the world. Many of the students I've instructed were .NET programmers, and many were Java or C++ programmers. There's no gentle way to put this: In my experience, .NET programmers are often weaker than Java and C++ programmers. Obviously, this is not always the case. However, after observing it over and over in my classes, I can come to no other conclusion: .NET programmers tend to be weaker in agile software practices, design patterns, design principles, and so on. Often in my classes, the .NET programmers had never heard of these fundamental concepts."
I was willing to put up with all the opinionated commentry as long as the content was good - but now, I see no reason to have to eat their uncooked dogfood and be disrespected while doing so.
Anyone want this (almost brand-new) book for half price? :)
The book is worth a read because it contains some valuable information. Especially the chapters on the SOLID principles, the component packaging principles (analogous to the SOLID principles, but for components), and the chapter on component and class metrics that was very interesting. Those chapters are well written and I think demonstrate the principles well. Granted, you can probably find this information elsewhere. Probably why I rated the book a 3 instead of a 4.
In addition, the refactoring chapter was pretty good, too. And there were several chapters that covered the basic, most common design patterns that most programmers should know if they already don't.
The book was written in 2007, and so is dated. For example, there is no use of generics anywhere in the sample code. IIRC, generics came out just after this book was published. Therefore, some of the examples given don't translate quite as well to the features now available in C#. Secondly, you can tell the examples are translated from Java. The original Clean Code book written by Robert C Martin is in Java--as that is a language the he programs in often. His son, who helped write this book, does program in C# (and probably Java)--but you can tell the examples still have Java programming idioms in them. (Full disclosure, I'm not a huge Java fan--that's my personal preference.) More importantly, however, is that Java has it's own coding conventions adopted by those who program in it, e.g. getSomething, setSomething (since Java doesn't have syntactic sugar for getters/setters), no 'I' in interfaces, it's just a List, not an IList--unlike C#. But the authors routinely ignore C# coding conventions in their examples, such as using camel case for methods and preferring getXXXX/setXXXX over .NET properties, and not prefixing interfaces with 'I'. For the record, I agree with the authors that prefixing interfaces with 'I' should not be necessary, nonetheless, it's a .NET coding convention.
What I'd really like to see is the author update this book, including all the examples. Show us how you would write SOLID code using .NET generics; the role that lambdas play when writing SOLID code; and use .NET coding conventions throughout.
Other than that, as I said at the beginning, the book still has a lot of good information in it that makes it worthwhile to pick up and read.