Repository navigation
2025.02
NetTools 2025.02 – Release Notes
Major Enhancements
-
Dependency Injection Refactor:
- Core services and commands (
StandardizeCommand,RemoveCommand, etc.) are now registered and resolved viaMicrosoft.Extensions.DependencyInjection. This improves code modularity, testability, and extensibility. - The main entry point (
Program.cs) was refactored to use dependency injection for command and service instantiation.
- Core services and commands (
-
Improved Testability and Abstractions:
- Introduced several new interfaces and their implementations:
IProcessRunnerfor running system processes.IXDocumentLoaderfor XML document loading.IXmlWriterWrapperfor writing XML.
NetToolscore services now depend on abstractions instead of directly on static APIs, making the codebase more maintainable and easier to test.
- Introduced several new interfaces and their implementations:
-
File System Abstraction:
- Integrated
System.IO.Abstractionsto abstract file system operations, further improving testability and platform support.
- Integrated
Command & Service Updates
-
RemoveCommand & StandardizeCommand:
- Refactored to use dependency-injected services.
- Enhanced logic for project and package discovery/selection.
- More robust handling of solution file prompts and project selection.
-
DotnetCommandRunner:
- Refactored to be instance-based and fully injectable.
- Now uses abstractions for process execution and console output.
- Enhanced method signatures for greater flexibility in running dotnet commands.
-
NugetVersionStandardizer:
- Refactored for dependency injection and improved XML handling.
- Now uses injected file system and XML writer/loader abstractions throughout.
- Improved user prompts and status messages, now using the injected console.
-
SolutionExplorer:
- Refactored from a static to an injectable service.
- Uses file system abstraction and injected console.
New Scripts
- Added
Scripts/clean-solution.ps1:- PowerShell script to recursively remove
binandobjfolders from the current directory, helping clean up build artifacts.
- PowerShell script to recursively remove
Dependency Updates
- New NuGet Packages:
Microsoft.Extensions.DependencyInjection(9.0.5)System.IO.Abstractions(22.0.14)
Other Notable Changes
- Improved CLI argument handling and user prompts.
- Enhanced XML read/write operations for package version standardization.
- Improved error handling and progress reporting for project and package operations.
- Various code cleanups and improved separation of concerns throughout the codebase.
This release represents a significant step toward a more robust, maintainable, and extensible CLI tool, featuring better testability, modularity, and user experience.