Test-Driven Development in Microsoft .NET (Microsoft Professional)

  Author:    James W. Newkirk, Alexei A. Vorontsov, ames W. A01Voronts, eng 304COM051230 06Microsoft Pre
  ISBN:    0735619484
  Sales Rank:    219519
  Published:    2004-04-14
  Publisher:    Microsoft Press
  # Pages:    304
  Binding:    Paperback
  Avg. Rating:    4.0 based on 15 reviews
  Used Offers:    9 from $20.99
  Amazon Price:    $34.07
  (Data above last updated:  2009-01-02 07:23:07 EST)
  
  
Sort customer reviews by:
  
Show All Reviews on Page      Hide All Reviews on Page
   
  
Test-Driven Development in Microsoft .NET (Microsoft Professional)
  
Learn how to apply the concepts and techniques of Test-Driven Development (TDD) to writing software for Microsoft .NET. Two experts in agile software development teach#151;using a wealth of pragmatic examples in C# and other .NET development tools#151;how to use automated tests to drive lean, efficient coding and better design. You'll focus on .NET-specific issues for TDD, including the best time to employ the inherent features of .NET class libraries and how to use NUnit, a leading unit-testing framework for .NET. And you'll see real-world examples of TDD-for .NET projects, including a Microsoft ADO.NET relational database, a user interface created with Microsoft ASP.NET and Microsoft Windows- Forms, Web services, and other useful applications.
                  Reader Reviews 1 - 15 of 15                 
  
  
Review
Date
Review
Rating(5 High)
Review
Helpful
to:
Customer Review Reviewer
Info
Permanent
Link
Reader Reviews Below Sorted by Newest First
10-25-08 5 (NA)
(Hide Review...)  Good, simple and descriptive information
Reviewer Permalink
I am new to TDD. This book does a very good job for me to get first time insight into test driven development. I highly recommend this book for first timers in TDD. I bought this book after so much research in book stores and amazon. I am glad I bought this book. This book is descriptive and explained with simple examples. It does a good job for me to prepare myself in TDD.
(Review Data Last Updated: 2009-01-02 07:26:47 EST)
09-02-06 4 (NA)
(Hide Review...)  Great pump-primer for ASP.NET developers
Reviewer Permalink
For .NET developers new to test-driven-development who want a recipe for the process, an invaluable book. This is not a concept book, but rather a concrete example that gets a little loose towards the end. Those who have also adopted Model-View-Controller for their ASP.NET applications will be able to logically extend the first half of the book to test their web interfaces, something that is admittedly difficult using the "stock" ASP.NET design philosophy.

I would supplement this book with Pragmatic Unit Testing with nUnit and C#, which gives you a much higher-level view of how to utilize TDD on a daily basis.
(Review Data Last Updated: 2008-10-25 04:25:02 EST)
09-30-05 5 1\1
(Hide Review...)  First exposure to test driven development
Reviewer Permalink
I attended a workshop on test driven development presented by James Newkirk. I was so intrigued with the concept that I had to go out and get his book to find out more. As a result our project now uses NUnit, TestDriven.net for test driven development and find that this has really boosted confidence in the developers and their code. The concept of test-driven development is a very useful agile method of writing code to the requirements based on tests (Red/Green/Refactor). This has certainly changed my perspective towards development and want to thank James Newkirk for purveying this concept.
(Review Data Last Updated: 2007-07-10 18:50:14 EST)
07-30-05 5 13\13
(Hide Review...)  You need this book in your Agile Library!!!
Reviewer Permalink
Test-Driven Development in Microsoft.NET rises head and shoulders above the other books on the subject. While I know that is a very strong statement to make, the authors have made the focus of the book a very practical one. Don't get me wrong, there are several other great books on this subject, but they all seem to fall down when it comes to real-world situations.

The book is split into two parts; Part I is an overview of Test-Driven Development, and Part II covers using TDD to develop an example application.

Chapter 1 frames the entire discussion with an overview of Test-Driven Development concepts, including some straightforward guidelines for design. I thought it was laid out in very logical fashion.

Chapter 2 throws you right into the process it's a classic stack example, found in many other TDD books. What I liked most about it though, was that the chapter began with discussing HOW you start figuring out WHAT tests to write as you develop an application.

Chapter 3 covers another critical concept of TDD Refactoring. (What's Refactoring? You askread chapter 3 ;) ). Again, the authors walk you through a short yet concise primer using the Sieve of Eratosthenes implemented in C#. They introduce the algorithm and then discuss it in light of code refactoring techniques as implemented originally in Martin Fowler's Refactoring: Improving the Design of Existing Code.

Chapter 4 is the introduction of the example application that will be the focus of the remainder of the book. It lays out the scenario, project features and constraints of the fictitious project.

Chapter 5 covers an area that I've found generates a ton of interest when developers start thinking about TDD, namely data access. I really appreciated the practical approach that the authors took when writing the implementation chapters for the example application. I found the tests surrounding entities and relationships and the resulting explanations to be very good.

Chapter 6 covers how you create tests when implementing Web Services. In the process, the service interface pattern is discussed along with refactoring Web Services. The authors attempt to lead you through a "thought framework" for creating tests through each of the implementation chapters.

Chapters 7, 8, and 9 make a shift from programmer testing to customer testing and cover differing aspects of customer or acceptance testing. This group of chapters starts with an overview of acceptance testing and techniques. The middle chapter deals with driving development up through the implemented layers from a user or customer perspective. Chapter 9 rounds out the discussion by focusing on handling faults and how acceptance testing allows you to tighten things up.

Chapter 10 leads us back to the programmer testing side by dealing with transactions. Following this, Chapter 11 introduces the reader to Service-level refactoring, leading you through the thought process behind different techniques. The story winds down in Chapter 12 with applying the process of TDD to implementing a web client.

All in all, while I'd have like to have seen a both a simpler example and always more "real world" tips and tricks, I can tell you from my own experience that finding that balance is extremely difficult. I believe the authors have made a significant attempt at striking the "real world" / simplicity balance and that the resulting outcome is an excellent resource for learning TDD. When that is combined with the level of effort the authors are putting in to maintaining the code and forums at their GotDotNet workspace, this makes Test-Driven Development in Microsoft .NET an excellent choice for your library.

(Review Data Last Updated: 2007-07-10 18:50:14 EST)
07-29-05 5 8\8
(Hide Review...)  You need this book in your Agile Library!!!
Reviewer Permalink
Test-Driven Development in Microsoft.NET rises head and shoulders above the other books on the subject. While I know that is a very strong statement to make, the authors have made the focus of the book a very practical one. Don't get me wrong, there are several other great books on this subject, but they all seem to fall down when it comes to real-world situations.

The book is split into two parts; Part I is an overview of Test-Driven Development, and Part II covers using TDD to develop an example application.

Chapter 1 frames the entire discussion with an overview of Test-Driven Development concepts, including some straightforward guidelines for design. I thought it was laid out in very logical fashion.

Chapter 2 throws you right into the process it's a classic stack example, found in many other TDD books. What I liked most about it though, was that the chapter began with discussing HOW you start figuring out WHAT tests to write as you develop an application.

Chapter 3 covers another critical concept of TDD Refactoring. (What's Refactoring? You askread chapter 3 ;) ). Again, the authors walk you through a short yet concise primer using the Sieve of Eratosthenes implemented in C#. They introduce the algorithm and then discuss it in light of code refactoring techniques as implemented originally in Martin Fowler's Refactoring: Improving the Design of Existing Code.

Chapter 4 is the introduction of the example application that will be the focus of the remainder of the book. It lays out the scenario, project features and constraints of the fictitious project.

Chapter 5 covers an area that I've found generates a ton of interest when developers start thinking about TDD, namely data access. I really appreciated the practical approach that the authors took when writing the implementation chapters for the example application. I found the tests surrounding entities and relationships and the resulting explanations to be very good.

Chapter 6 covers how you create tests when implementing Web Services. In the process, the service interface pattern is discussed along with refactoring Web Services. The authors attempt to lead you through a "thought framework" for creating tests through each of the implementation chapters.

Chapters 7, 8, and 9 make a shift from programmer testing to customer testing and cover differing aspects of customer or acceptance testing. This group of chapters starts with an overview of acceptance testing and techniques. The middle chapter deals with driving development up through the implemented layers from a user or customer perspective. Chapter 9 rounds out the discussion by focusing on handling faults and how acceptance testing allows you to tighten things up.

Chapter 10 leads us back to the programmer testing side by dealing with transactions. Following this, Chapter 11 introduces the reader to Service-level refactoring, leading you through the thought process behind different techniques. The story winds down in Chapter 12 with applying the process of TDD to implementing a web client.

All in all, while I'd have like to have seen a both a simpler example and always more "real world" tips and tricks, I can tell you from my own experience that finding that balance is extremely difficult. I believe the authors have made a significant attempt at striking the "real world" / simplicity balance and that the resulting outcome is an excellent resource for learning TDD. When that is combined with the level of effort the authors are putting in to maintaining the code and forums at their GotDotNet workspace, this makes Test-Driven Development in Microsoft .NET an excellent choice for your library.

(Review Data Last Updated: 2006-06-29 13:05:00 EST)
06-20-05 5 6\9
(Hide Review...)  Great Book for Experienced Developers
Reviewer Permalink
This is a great book for experienced developers. It covers a wide range of realistic uses in .NET and has plenty of detailed examples. It gets you into the mindset of Test-Driven Development (TDD) in good increments. The NUnit discussed is a free download and is very easy to start using with your own software quickly, so you can come up to speed right away and begin using it on your projects. One of the better TDD books that I have read, possibly the best. It will certainly remain on my bookshelf for some time.
(Review Data Last Updated: 2007-07-10 18:50:14 EST)
01-29-05 5 4\4
(Hide Review...)  Changes Your View
Reviewer Permalink
Many people think that Test-Driven Development (TDD) is all about testing software. In fact, test-driven development's main goal is not testing software, but aiding the programmer and customer during the development process with unambiguous requirements. The requirements are in the form of tests that the software must pass along the development process.

This procedure helps to insure that problems are found early and corrected while they are still small.

This book first discusses TDD from a conceptual point of view then gives a TDD example using a realistic application.
(Review Data Last Updated: 2007-07-10 18:50:14 EST)
01-28-05 5 3\3
(Hide Review...)  Changes Your View
Reviewer Permalink
Many people think that Test-Driven Development (TDD) is all about testing software. In fact, test-driven development's main goal is not testing software, but aiding the programmer and customer during the development process with unambiguous requirements. The requirements are in the form of tests that the software must pass along the development process.

This procedure helps to insure that problems are found early and corrected while they are still small.

This book first discusses TDD from a conceptual point of view then gives a TDD example using a realistic application.
(Review Data Last Updated: 2006-06-29 13:05:00 EST)
09-29-04 3 0\1
(Hide Review...)  Disappointing but still decent
Reviewer Permalink
I was really looking forward to this book as a complement to Kent Beck's more generic book on test-driven development. I was hoping it would cover a lot of "real-world" issue like web page development, databases, web services, etc.

To be fair, the book did try to cover these, but didn't do a great job of it. The database access layer was just plain boring to read through and the web page development chapter was thin on content. I was actually surprised how short the book was - about 170 pages actually covering the problems discussed. I also felt the ratio of code to discussion was too high. Lots of code, then 'the tests passed so we move on'...

I would love to see a book with better coverage of test-driven web development in .NET and perhaps with discussions of mock objects. I still think this is a decent book, partly because I am not aware of a direct competitor.

(Review Data Last Updated: 2006-06-29 13:05:00 EST)
07-19-04 3 14\14
(Hide Review...)  7/10
Reviewer Permalink
I give this book seven out of ten

What I liked about it:
It is easily to read. The topics are well presented and clearly defined.
The book introduces the concepts behind TDD (Test Driven Development)
Some of the less trivial aspects of TDD are discussed, like testing web services or using transactions.
Refactoring is introduced very well in chapter three.
The concepts of FIT are well explained and demonstrated.

In order to get a ten:
The book needs to decide who the target audience is. The material seemed too hard for a first introduction book and too simple for advanced developers.
As the book is about TDD it should have spent more time examining the benefits of developing software using this approach.
I would have liked to have seen more real world (hard to solve) problems tackled.

(Review Data Last Updated: 2007-07-10 18:50:14 EST)
07-18-04 3 14\14
(Hide Review...)  7/10
Reviewer Permalink
I give this book seven out of ten

What I liked about it:
It is easily to read. The topics are well presented and clearly defined.
The book introduces the concepts behind TDD (Test Driven Development)
Some of the less trivial aspects of TDD are discussed, like testing web services or using transactions.
Refactoring is introduced very well in chapter three.
The concepts of FIT are well explained and demonstrated.

In order to get a ten:
The book needs to decide who the target audience is. The material seemed too hard for a first introduction book and too simple for advanced developers.
As the book is about TDD it should have spent more time examining the benefits of developing software using this approach.
I would have liked to have seen more real world (hard to solve) problems tackled.

(Review Data Last Updated: 2006-06-29 13:05:00 EST)
07-07-04 4 3\7
(Hide Review...)  Great intro to TDD and more
Reviewer Permalink
This books fits in fine with our recent search of .net enterprise devlopment material and we have out it to good use. Some of the chapters seem out of place.
(Review Data Last Updated: 2006-06-29 13:05:00 EST)
06-29-04 5 12\13
(Hide Review...)  Great introduction to TDD on .NET
Reviewer Permalink
Obviously, the best way to learn TDD is by doing it, but a short tutorial like this helps immensely. I bought this book to fill in TDD and NUnit gaps after learning the ropes at work from an experienced TDD Java developer. The book covers the basic principals of TDD and provides a thorough NUnit tutorial. Other reviewers nitpicked the web unit testing section and the depth of coverage, but all neglected to mention that the book is mercifully short. What sort of depth do you want on a very complex and subjective topic like TDD in ~250 pages? In my opinion:

1) A good xUnit tutorial
2) Coverage of the principals of TDD
3) Basic examples of TDD principals and xUnit applied in the target language/platform

This book provides all three. After reading through just a few chapters, I embarked on a TDD-based project at work that now has several hundred tests. The info in the book directly contributed to a solid design for my tests, which has proven to be quite scalable across dozens of classes and an extreme amount of refactoring due to new requirements and bug fixing. I can't ask for more than that from such a short book.

In my opinion, it's not the author's responsibility to dictate the best tools to use for every single TDD situation--NUnit coverage is good enough to get any experienced programmer started, and it's really up to you to experience and discover the right tools for the job. TDD is a fairly new concept for .NETers (so new that MS won't have any tools of their own for TDD until Visual Studio 2005 is released), and tools are popping up almost monthly on SourceForge for testing ASP.NET, WinForms, and for integrating NUnit into Visual Studio.

Cheers to James and Alexei for putting forth such a great, short introduction to TDD for everyone on .NET.

(Review Data Last Updated: 2006-06-29 13:05:00 EST)
06-13-04 3 28\34
(Hide Review...)  Good, but derivate and incomplete
Reviewer Permalink
If you want to really learn about test driven development, go to the original book by Beck. If you really want to learn about refactoring, go to the original book by Fowler.

This book does try to cover virgin territory with testing apps that use databases and web interfaces - but it really falls apart at the Web GUI interface level (not to be confused with the Web services interface level, which the book covers well). The techniques recommended in the book essentially try to simulate a web GUI interface with nUnit versus actually using an existing web GUI interface. With one Web form, maybe this isn't too much duplication, but with a large Web app, this is just silly - plus it never tests the actual Web client, so the test results are obviously incomplete. The authors neglect how easy it is to truly test a Web GUI interface - with java based tools (JWebUnit & HttpUnit) which build on top of xUnit, and which work fine on any web app (including asp.net) dot net programmers will need a little understanding of java syntax to use these tools, but java and c# and so nearly identical syntactically for the subset needed, that this is not much of an issue. I hope native ports of these tools to the dot net world are coming soon, but you can live without them and still test Web GUIs easily enough with a little java knowledge, and the authors are remiss in neglecting this.

Plus the blurb on Amazon about the book promised a Windows Form based example - and this is NOT in the book at all!

(Review Data Last Updated: 2006-06-29 13:05:00 EST)
06-11-04 2 6\14
(Hide Review...)  Too shallow
Reviewer Permalink
The book provides only shallow explanation of how TDD is supposed to work. Oversimplification may lead to bad code. For example, Red/Green/Refactor principle is only good if your first test is comrehensice enough. Imagine you are writing a parser for a complex language (HTML, C++, whatever). You simply can't write it piece by piece, i.e. write test for parsing a simple construct and then add more code to parse more complex constructs. What you end up with is a bunch of spagetti ifs. Your first test should be large enough to force you to use lex/yacc approach. The grammar does not have to be complete, but the framework has to be there from the beginning. Stack example is way too simple. C'mon, decent developer should be able to implement it correctly on whiteboard in 30 minutes. NUnit software is mentioned too many times, the book begins to look like a commercial.
(Review Data Last Updated: 2006-06-29 13:05:00 EST)
  
                  Reader Reviews 1 - 15 of 15                 
  
  
  
  
  
  

Because the data used to generate this site come from outside sources, VeryWellSaid.com cannot guarantee the completeness or accuracy of the data.
Search VeryWellSaid™
Google
Web VeryWellSaid™
New subjects are added every week.
View Subjects Below by:
* Top Selling
 (click category name, left)
* Top-Rated Top Sellers
 (click 'Top Rated', right)
In the news...  
Dubai\UAE Top Rated
Influenza\Bird Flu Top Rated
Iraq Top Rated
Supreme Court Top Rated
All Books Top Rated
Arts Top Rated
Photography Top Rated
Digital Photography Top Rated
Digital Cameras Top Rated
Biography Top Rated
Business Top Rated
Management Top Rated
Marketing Top Rated
Sales Top Rated
Stocks Top Rated
Bonds Top Rated
Real Estate Top Rated
Trading Top Rated
Commodities Trading Top Rated
Time Management Top Rated
Starting A Business Top Rated
Children's Top Rated
Comics Top Rated
Computers Top Rated
PC Top Rated
Mac Top Rated
Programming Top Rated
Design Patterns Top Rated
.Net Top Rated
C# Top Rated
Vb.Net Top Rated
Asp.Net Top Rated
Java Top Rated
Python Top Rated
PHP Top Rated
Perl Top Rated
Javascript Top Rated
Ajax Top Rated
CSS Top Rated
Open Source Top Rated
SQL Top Rated
Databases Top Rated
Oracle Top Rated
MySql Top Rated
Sql Server Top Rated
IIS Top Rated
Apache Top Rated
Linux Top Rated
Windows Server Top Rated
Project Management Top Rated
HTML Top Rated
UML Top Rated
IT Certifications Top Rated
Cisco Certifications Top Rated
MCSE Top Rated
MCSD Top Rated
Cooking Top Rated
Italian Cooking Top Rated
Vegetarian Cooking Top Rated
Wine Top Rated
Engineering Top Rated
Entertainment Top Rated
Health Top Rated
Nutrition Top Rated
Dieting Top Rated
Sex Top Rated
History Top Rated
Military History Top Rated
British History Top Rated
Middle East History Top Rated
Land Battles Top Rated
Naval Warfare Top Rated
Air Warfare Top Rated
9/11 Top Rated
Terrorism Top Rated
Home Top Rated
Mortgage\Home Equity Loan Top Rated
Cars Top Rated
Car Buying Top Rated
Sports Cars Top Rated
Cat Top Rated
Humor Top Rated
Horror Top Rated
Law Top Rated
IP Law Top Rated
Legal History Top Rated
Fiction Top Rated
Oprah's Book Club Top Rated
Medicine Top Rated
Cancer Top Rated
Stroke Top Rated
Heart Disease Top Rated
Fertility Top Rated
Diabetes Top Rated
Pharmacology Top Rated
Back Problems Top Rated
Menopause Top Rated
Thyroid Top Rated
Pain Top Rated
Organic Chemistry Top Rated
Immune System Top Rated
Mystery Top Rated
Nonfiction Top Rated
Outdoors Top Rated
Running Top Rated
Radio Control Models Top Rated
Guns Top Rated
Parenting Top Rated
Divorce Top Rated
Professional Top Rated
Reference Top Rated
Religion Top Rated
Romance Top Rated
Science Top Rated
Physics Top Rated
Chemistry Top Rated
Astronomy Top Rated
Psychology Top Rated
Science Fiction Top Rated
Sports Top Rated
Teens Top Rated
Travel Top Rated
USA Top Rated
Europe Top Rated
France Top Rated
Italy Top Rated
England Top Rated
China Top Rated
All Books Arts Biography Click Here For An A-Z Index Of All 213 Best-Seller Subjects Business Children's Comics
Computers Cooking Engineering Entertainment Health History Home Horror Humor Law Fiction Medicine Mystery
Nonfiction Outdoors Parenting Professional Reference Religion Romance Science Sci-Fi Sports Teens Travel
In Association with Amazon.com

Cache miss
(not cached)