Refactoring with C#: Safely improve .NET applications and pay down technical debt with Visual Studio, .NET 8, and C# 12 (Paperback)

Eland, Matt



Learn how to improve the maintainability of C# code using modern tools and techniques to resolve technical debt while working safely and efficiently with legacy code

Key Features

  • Apply a wide range of refactoring techniques using the latest tools and features of C#
  • Discover ways to safely improve your code using tests, Roslyn analyzers, and AI assistance
  • Find ways of communicating technical debt and improving your code in agile and enterprise settings
  • Purchase of the print or Kindle book includes a free PDF eBook

Book Description

Software projects start as brand-new greenfield projects, but invariably become muddied in technical debt far sooner than you’d expect. In Refactoring with C#, you'll explore what technical debt is and how it arises before walking through the process of safely refactoring C# code using modern tooling in Visual Studio and more recent C# language features using C# 12 and .NET 8. This book will guide you through the process of refactoring safely through advanced unit testing with XUnit and libraries like Moq, Snapper, and Scientist .NET. You'll explore maintainable code through SOLID principles and defensive coding techniques made possible in newer versions of C#. You'll also find out how to run code analysis and write custom Roslyn analyzers to detect and resolve issues unique to your code.

The nature of coding is changing, and you'll explore how to use AI with the GitHub Copilot Chat to refactor, test, document, and generate code before ending with a discussion about communicating technical debt to leadership and getting organizational buy-in to refactor your code in enterprise organizations and in agile teams.

By the end of this book, you'll understand the nature of refactoring and see how you can safely, effectively, and repeatably pay down the technical debt in your application while adding value to your business.

What you will learn

  • Understand technical debt, its causes and effects, and ways to prevent it
  • Explore different ways of refactoring classes, methods, and lines of code
  • Discover how to write effective unit tests supported by libraries such as Moq
  • Understand SOLID principles and factors that lead to maintainable code
  • Use AI to analyze, improve, and test code with the GitHub Copilot Chat
  • Apply code analysis and custom Roslyn analyzers to ensure that code stays clean
  • Communicate tech debt and code standards successfully in agile teams

Who this book is for

This book is for any developer familiar with C# who wants to improve the code they work with on a day-to-day basis. While this book will be most beneficial to new developers with only a year or two of experience, even senior engineers and engineering managers can make the most of this book by exploring not just the process of refactoring, but advanced techniques with libraries like Moq, Snapper, Scientist .NET, and writing custom Roslyn analyzers.


學習如何使用現代工具和技術改善 C# 代碼的可維護性,以安全高效地處理遺留代碼中的技術債務。


- 使用最新的 C# 工具和功能應用各種重構技術
- 通過測試、Roslyn 分析器和 AI 助手安全改進代碼
- 在敏捷和企業環境中找到溝通技術債務和改進代碼的方法
- 購買印刷版或 Kindle 版本的書籍將包含免費的 PDF 電子書


軟體項目一開始都是全新的綠地項目,但往往比預期更早就陷入技術債務的泥沼中。在《使用 C# 進行重構》中,您將探索技術債務的本質和產生原因,然後通過使用 Visual Studio 中的現代工具和最新的 C# 語言功能(如 C# 12 和 .NET 8)安全地重構 C# 代碼的過程。本書將引導您通過使用 XUnit 和 Moq、Snapper、Scientist .NET 等庫進行高級單元測試,探索可維護的代碼,並使用 C# 的新版本實現 SOLID 原則和防禦性編碼技術。您還將了解如何運行代碼分析並編寫自定義的 Roslyn 分析器,以檢測和解決與您的代碼獨有的問題。

編碼的性質正在發生變化,您將探索如何使用 GitHub Copilot Chat 的 AI 進行重構、測試、文檔編寫和代碼生成,最後討論如何向領導層傳達技術債務並在企業組織和敏捷團隊中獲得重構代碼的支持。



- 了解技術債務,其原因和影響,以及預防方法
- 探索不同的重構類、方法和代碼行的方式
- 發現如何使用 Moq 等庫編寫有效的單元測試
- 理解 SOLID 原則和導致可維護代碼的因素
- 使用 AI 分析、改進和測試代碼,利用 GitHub Copilot Chat
- 應用代碼分析和自定義的 Roslyn 分析器,確保代碼保持乾淨
- 在敏捷團隊中成功溝通技術債務和代碼標準

本書適合對 C# 有一定熟悉的開發人員,希望改進他們日常工作中的代碼。雖然這本書對只有一兩年經驗的新開發人員最有益處,但即使是資深工程師和工程管理人員也可以通過探索重構過程以及使用 Moq、Snapper、Scientist .NET 等庫的高級技術來充分利用本書,並編寫自定義的 Roslyn 分析器。


  1. Technical Debt, Code Smells, and Refactoring
  2. Introduction to Refactoring
  3. Method-Level Refactorings
  4. Class-Level Refactorings
  5. Code-Level Refactorings
  6. Unit Testing
  7. Test Driven Development
  8. Avoiding Code Anti-Patterns with SOLID
  9. Advanced Unit Testing
  10. Defensive Coding Techniques
  11. AI-Assisted Refactoring with GitHub Copilot
  12. Code Analysis in Visual Studio
  13. Creating a Roslyn Analyzer
  14. Refactoring Code with Roslyn Analyzers
  15. Communicating Technical Debt
  16. Adopting Code Standards
  17. Agile Refactoring


使用GitHub Copilot進行AI輔助重構
在Visual Studio中進行程式碼分析