- STAFF PICKS
- GIFTS + GIFT CARDS
- SELL BOOKS
- FIND A STORE
This item may be
Check for Availability
Other titles in the Microsoft .Net Development series:
Reengineering .Net: Injecting Quality, Testability, and Architecture Into Existing Systems (Microsoft .Net Development)
Synopses & Reviews
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.
• 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
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 .NET addresses 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.
About the Author
Bradley 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.
Bradley specializes in software reengineering and software migration, injecting quality and stability into existing legacy systems. Bradley 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 Bradley 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.
Bradley 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
Phase 1. Initial Solution Review
Phase 2. Planning the Project
Phase 3. Establishing Basic Infrastructure
Phase 4. Solution Cleanup
Phase 5. Establish the Foundation
Phase 6. Refactor to Services Basic
Phase 7. Refactor to Services - Advanced Repository
Phase 8. Architecture Extraction
Choosing a Mocking Framework
Choosing a Dependency Injection Container
Choosing a Continuous Integration Server
Choosing a Source Control System
Issues Specific to Very Large Solutions
What Our Readers Are Saying
Arts and Entertainment » Photography » Technique