Easy2Work.LegacyModernizer
0.1.0
dotnet tool install --global Easy2Work.LegacyModernizer --version 0.1.0
dotnet new tool-manifest
dotnet tool install --local Easy2Work.LegacyModernizer --version 0.1.0
#tool dotnet:?package=Easy2Work.LegacyModernizer&version=0.1.0
nuke :add-package Easy2Work.LegacyModernizer --version 0.1.0
Easy2Work Legacy Modernizer
Enterprise Legacy Code Analysis Platform
Prove business value before rewriting a single line of code.
Legacy Modernizer is a .NET tool that analyzes 10-15 year old WinForms and VB.NET applications to extract business logic, build dependency graphs, and provide board-level visibility into your legacy codebaseβwithout changing any behavior.
π― Problem Statement
Your company has a critical 50,000+ line WinForms/VB.NET application. It works, but:
- No one fully understands the business logic anymore
- Documentation is outdated or missing
- Moving to modern platforms feels risky
- You need proof before investing in modernization
Legacy Modernizer gives CTOs and technical leaders the visibility they need to make informed decisions.
π Quick Start
Installation
dotnet tool install --global Easy2Work.LegacyModernizer
Usage
legacy-modernizer analyze YourSolution.sln --output report.json
That's it. The tool will:
- Scan your entire solution
- Identify forms, methods, and dependencies
- Extract business rules from comments
- Generate a structured JSON report
π What You Get
When you run the analyzer on your legacy ERP system, you see:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ANALYSIS SUMMARY
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Projects Analyzed: 8
π Total Files: 342
π Lines of Code: 52,847
πΌοΈ Forms: 87
β‘ Event Handlers: 423
π§ Business Methods: 1,284
π Business Rules: 156
β±οΈ Duration: 12.3s
This is board-level visibility.
The generated report.json contains:
- Complete dependency graph of all methods
- Forms and their event handlers
- Business method relationships
- External dependencies (database, services)
- Annotated business rules
π‘ Core Features (v0.1 MVP)
1οΈβ£ Project Analysis
- Scans WinForms and VB.NET solutions
- Uses Roslyn for semantic analysis
- Handles 50k+ LOC codebases
- No crashes on messy legacy code
2οΈβ£ Dependency Graph
Outputs:
{
"form": "InvoiceForm",
"events": ["btnSave_Click", "btnCalculate_Click"],
"businessMethods": [
"CalculateTax",
"ValidateInvoice",
"SaveInvoice"
],
"externalDependencies": [
"CustomerRepository",
"SqlConnection"
]
}
3οΈβ£ Business Rule Extraction
Document tribal knowledge directly in code:
C#:
// @BusinessRule: InvoiceTaxCalculation - Applies state tax based on customer location
public decimal CalculateTax(Invoice invoice)
{
// ... implementation
}
VB.NET:
' @BusinessRule: InvoiceTaxCalculation - Applies state tax based on customer location
Public Function CalculateTax(invoice As Invoice) As Decimal
' ... implementation
End Function
The tool extracts these annotations and includes them in the report.
4οΈβ£ CLI-First Design
No dashboards. No web UI. Just reliable analysis you can run in CI/CD pipelines.
π Architecture
Easy2Work.LegacyModernizer
βββ Core/
β βββ ProjectAnalyzer - Roslyn-based solution analyzer
β βββ FormDetector - WinForms detection
β βββ MethodGraphBuilder - Dependency graph construction
β βββ RuleExtractor - Business rule extraction
βββ Models/
β βββ AnalysisReport - Report structure
β βββ DependencyNode - Graph node model
βββ CLI/ - Command-line interface
βββ Tests/ - Unit tests
Technology Stack:
- .NET 8
- Roslyn (Microsoft.CodeAnalysis)
- System.CommandLine
- C# 12
π Success Criteria
β
Analyze 50k+ LOC applications
β
Extract 80%+ of business methods correctly
β
Handle messy legacy code without crashing
β
Generate structured, actionable reports
β
Published on NuGet as a .NET tool
π₯ Why This Matters
When a CTO runs:
legacy-modernizer analyze Enterprise-ERP.sln
And sees:
- 342 Forms
- 2,184 Business Methods
- 186 Data Access Calls
- 91 Documented Business Rules
That is actionable intelligence.
This tool doesn't rewrite code. It doesn't use AI to guess intent. It provides trust and visibility so you can make data-driven modernization decisions.
π Building from Source
git clone https://github.com/yourorg/legacy-modernizer.git
cd legacy-modernizer
dotnet build
dotnet test
Pack as NuGet Tool
dotnet pack Easy2Work.LegacyModernizer.CLI/Easy2Work.LegacyModernizer.CLI.csproj -c Release
Install Locally
dotnet tool install --global --add-source ./Easy2Work.LegacyModernizer.CLI/nupkg Easy2Work.LegacyModernizer
π Usage Examples
Basic Analysis
legacy-modernizer analyze MySolution.sln
Custom Output Path
legacy-modernizer analyze MySolution.sln --output analysis-results.json
Verbose Mode
legacy-modernizer analyze MySolution.sln --verbose
Compact JSON (no formatting)
legacy-modernizer analyze MySolution.sln --output report.json --pretty false
π― Roadmap
v0.1 (Current - MVP)
- β WinForms/VB.NET analysis
- β Dependency graph generation
- β Business rule extraction
- β CLI tool
v0.2 (Future)
- Data flow analysis
- SQL query extraction
- Cross-assembly analysis
- HTML report generation
v0.3 (Future)
- Web API endpoint suggestions
- Blazor migration hints
- Architecture recommendations
π§ Philosophy
This project is built with enterprise platform thinking:
- Prove value first - No rewrites until you understand what you have
- Zero behavior change - The tool only reads, never modifies
- Trust over AI - Semantic analysis, not guesswork
- Boring technology - Roslyn, .NET, JSON. Reliable and well-understood.
π License
MIT License - See LICENSE file for details
π€ Contributing
This is a focused MVP. Contributions welcome for:
- Bug fixes
- Performance improvements
- Additional language support (C++/CLI, etc.)
- Enhanced detection heuristics
π Support
For enterprise support, custom analysis, or consulting:
- Email: support@easy2work.com
- GitHub Issues: Report issues
Built for CTOs, architects, and teams who need to modernize 10-15 year old applications with confidence.
No AI rewriting. No magic. Just visibility.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 135 | 2/11/2026 |