Reengineering .NET Injecting Quality, Testability, and Architecture into Existing Systems

  • ISBN13:


  • ISBN10:


  • Edition: 1st
  • Format: Paperback
  • Copyright: 10/24/2012
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping On Orders Over $59!
    Your order must be $59 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $49.99 Save up to $2.00
  • eBook
    Add to Cart


Supplemental Materials

What is included with this book?

  • The eBook copy of this book is not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


Many of the systems written over the years are still in place and working, but are in desperate need of updated technology and approaches in order to compete with software being developed today. Reengineering .NETaddresses the problem of aging software. In it , leading .NET architect Bradley Irby introduces best practices for revitalizing older Microsoft .NET code. Irby shows how to integrate new tools and development advances into existing systems that can't go offline. Using a step-by-step approach, .NET professionals can make their legacy software more reliable, maintainable, attractive, and usable - for years to come. Through real-world case studies and extensive downloadable sample code, Irby shows how to: * Compare each leading architectural option for reengineering older .NET software, and choose the right alternatives * Introduce unit testing into applications that weren't built for it * Systematically modernize aging code bases while keeping applications fully available * Master specific design patterns for reengineering .NET code * Organize the reengineering project so appropriate expertise is applied to each task This book assumes moderate familiarity with .NET, but no specific expertise with reengineering, testing, or .NET architecture: all key concepts are explained simply, with practical examples drawn from the author's 20+ years of enterprise consulting experience.

Author Biography

Brad Irby is an accomplished software architect and CTO. During his 25-year professional career, he has overseen the development of highly customized internal and customer-facing applications, including a property management system to manage the repossessed properties for Bank of America, a commercial accounting system for high-net-worth individuals, a property tax prediction system for the County of San Mateo, California, and a distributed reporting system for Chevy’s Restaurants. His other work includes projects for General Electric, Kashi, Wells Fargo, HP, and Adidas, in addition to many projects for medium-sized companies and startups such as OpenTable and Prosper.com.

Brad specializes in software reengineering and software migration, injecting quality and stability into existing legacy systems. Brad has converted many applications from VB6, ASP Classic, and early .NET versions into more modern applications with current architecture and the latest quality approaches. His recent projects include reengineering a two million-line .NET application to use modern architectures and unit testing, resulting in a near zero defect count. He is an expert at updating applications without having to shut them down or stop feature development. Using a reengineering process Brad developed, old applications can be updated to improve quality and satisfy existing customers, while also allowing continued feature development to keep pace with competitors and attract new customers.

Brad manages the San Francisco .NET user group, and is a frequent speaker on technical software topics throughout the U.S. He holds a bachelor of Computer Science degree from the University of North Carolina and an MBA from the University of California at Berkeley.

Table of Contents

Part I: Target Architecture
Chapter 1: Implementing a Service-Oriented Architecture
Chapter 2: Understanding Application Architecture
Chapter 3: Unit Testing
Chapter 4: Understanding the Dependency Inversion Principle
Chapter 5: Using Test Doubles with Unit Tests
Part II: Reengineering
Chapter 6: Reviewing Initial Solutions
Chapter 7: Planning the Project
Chapter 8: Identifying Development Tools and the Build Process
Chapter 9: Cleaning Up Legacy Solutions
Chapter 10: Establishing the Foundation
Chapter 11: Basic Refactoring to Services
Chapter 12: Advanced Refactoring to Services
Chapter 13: Refactoring to a Controller
Appendix: Visual Studio Ultimate

Rewards Program

Write a Review