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

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

Description

Reengineer .NET Code to Improve Quality, Update Architecture, Access New Tools, and Accelerate Delivery of New Features

As software ages, it becomes brittle: difficult to understand, fix, manage, use, and improve. Developers working with  many platforms have encountered this problem; now, developers working with Microsoft’s .NET are facing it as well.  In Reengineering .NET, leading .NET architect Bradley Irby introduces proven best practices for revitalizing older .NET code and integrating new architectural and development advances into business-critical systems that can’t go offline.  Using a step-by-step approach, .NET professionals can make legacy enterprise software more reliable, maintainable,  attractive, and usable—and make it easier to upgrade for years to come.

Through real-world case studies and extensive downloadable sample code, Irby shows how to carefully plan a .NET  reengineering project, understand the true current state of your code, introduce unit testing and other agile methods, refactor to services and controllers, and leverage powerful .NET reengineering tools built into Microsoft Visual Studio 2012.

This book is an indispensable resource for all developers, architects, and project managers responsible for existing .NET code bases and for a wide audience of non-technical managers and CTOs who want to understand the unique  challenges faced by .NET teams involved in application or system reengineering projects.

Coverage includes

  • Migrating legacy .NET software to more flexible, extensible, and maintainable architectures—without breaking it
  • Reengineering web applications with the MVC pattern, Winforms software with MVP, and WPF/Silverlight  systems with MVVM
  • Asking the right questions to predict refactoring problems before they happen
  • Planning and organizing reengineering projects to apply the right expertise to each task at the right time
  • Using innovative Test Doubling to make unit testing even more effective
  • Applying Dependency Inversion to break tight coupling and promote easier development and testing
  • Leveraging source control, defect tracking, and continuous integration
  • “Cleaning up” legacy solutions to improve them before you even touch business logic
  • Establishing solid development infrastructure to support your reengineering project
  • Refactoring to services—including advanced techniques using Repositories, Domain Models,  and the Command Dispatcher
  • Refactoring to controller/view or ViewModel/View pairs

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 Initial Solution Review
Chapter 7 Planning the Project
Chapter 8 Identifying Development Tools and the Build Process
Chapter 9 Cleaning Up Legacy Solutions
Chapter 11 Basic Refactoring to Services
Chapter 12 Advanced Refactoring to Services
Chapter 13 Refactoring to a Controller

Appendix Reengineering .NET Projects with Visual Studio 2012

To access the link, solve the captcha.