15 KiB
15 KiB
Projects and dependencies analysis
This document provides a comprehensive overview of the projects and their dependencies in the context of upgrading to .NETCoreApp,Version=v10.0.
Table of Contents
Executive Summary
Highlevel Metrics
| Metric | Count | Status |
|---|---|---|
| Total Projects | 1 | All require upgrade |
| Total NuGet Packages | 26 | 9 need upgrade |
| Total Code Files | 39 | |
| Total Code Files with Incidents | 27 | |
| Total Lines of Code | 7140 | |
| Total Number of Issues | 2202 | |
| Estimated LOC to modify | 2185+ | at least 30,6% of codebase |
Projects Compatibility
| Project | Target Framework | Difficulty | Package Issues | API Issues | Est. LOC Impact | Description |
|---|---|---|---|---|---|---|
| HorseRacingPredictor\BettingPredictor.csproj | net481 | 🟡 Medium | 15 | 2185 | 2185+ | ClassicWpf, Sdk Style = False |
Package Compatibility
| Status | Count | Percentage |
|---|---|---|
| ✅ Compatible | 17 | 65,4% |
| ⚠️ Incompatible | 0 | 0,0% |
| 🔄 Upgrade Recommended | 9 | 34,6% |
| Total NuGet Packages | 26 | 100% |
API Compatibility
| Category | Count | Impact |
|---|---|---|
| 🔴 Binary Incompatible | 897 | High - Require code changes |
| 🟡 Source Incompatible | 1264 | Medium - Needs re-compilation and potential conflicting API error fixing |
| 🔵 Behavioral change | 24 | Low - Behavioral changes that may require testing at runtime |
| ✅ Compatible | 10445 | |
| Total APIs Analyzed | 12630 |
Aggregate NuGet packages details
| Package | Current Version | Suggested Version | Projects | Description |
|---|---|---|---|---|
| CsvHelper | 33.1.0 | BettingPredictor.csproj | ✅Compatible | |
| Microsoft.Bcl.AsyncInterfaces | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| Microsoft.Bcl.HashCode | 6.0.0 | BettingPredictor.csproj | ✅Compatible | |
| Microsoft.Bcl.Numerics | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| Microsoft.CSharp | 4.7.0 | BettingPredictor.csproj | ✅Compatible | |
| Microsoft.ML | 5.0.0-preview.25503.2 | BettingPredictor.csproj | ✅Compatible | |
| Microsoft.ML.CpuMath | 5.0.0-preview.25503.2 | BettingPredictor.csproj | ✅Compatible | |
| Microsoft.ML.DataView | 5.0.0-preview.25503.2 | BettingPredictor.csproj | ✅Compatible | |
| Microsoft.ML.FastTree | 5.0.0-preview.25503.2 | BettingPredictor.csproj | ✅Compatible | |
| Microsoft.Web.WebView2 | 1.0.3800.47 | BettingPredictor.csproj | ✅Compatible | |
| Newtonsoft.Json | 13.0.4 | BettingPredictor.csproj | ✅Compatible | |
| RestSharp | 112.1.1-alpha.0.4 | BettingPredictor.csproj | ✅Compatible | |
| System.Buffers | 4.6.1 | BettingPredictor.csproj | Le funzionalità del pacchetto NuGet sono incluse nel riferimento al framework. | |
| System.CodeDom | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| System.Collections.Immutable | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| System.IO.Pipelines | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| System.Memory | 4.6.3 | BettingPredictor.csproj | Le funzionalità del pacchetto NuGet sono incluse nel riferimento al framework. | |
| System.Numerics.Tensors | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| System.Numerics.Vectors | 4.6.1 | BettingPredictor.csproj | Le funzionalità del pacchetto NuGet sono incluse nel riferimento al framework. | |
| System.Reflection.Emit.Lightweight | 4.7.0 | BettingPredictor.csproj | Le funzionalità del pacchetto NuGet sono incluse nel riferimento al framework. | |
| System.Runtime.CompilerServices.Unsafe | 6.1.2 | BettingPredictor.csproj | ✅Compatible | |
| System.Text.Encodings.Web | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| System.Text.Json | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| System.Threading.Channels | 10.0.0-rc.1.25451.107 | 10.0.5 | BettingPredictor.csproj | È consigliabile eseguire l'aggiornamento del pacchetto NuGet |
| System.Threading.Tasks.Extensions | 4.6.3 | BettingPredictor.csproj | Le funzionalità del pacchetto NuGet sono incluse nel riferimento al framework. | |
| System.ValueTuple | 4.6.1 | BettingPredictor.csproj | Le funzionalità del pacchetto NuGet sono incluse nel riferimento al framework. |
Top API Migration Challenges
Technologies and Features
| Technology | Issues | Percentage | Migration Path |
|---|---|---|---|
| WPF (Windows Presentation Foundation) | 566 | 25,9% | WPF APIs for building Windows desktop applications with XAML-based UI that are available in .NET on Windows. WPF provides rich desktop UI capabilities with data binding and styling. Enable Windows Desktop support: Option 1 (Recommended): Target net9.0-windows; Option 2: Add true. |
| Windows Forms | 18 | 0,8% | Windows Forms APIs for building Windows desktop applications with traditional Forms-based UI that are available in .NET on Windows. Enable Windows Desktop support: Option 1 (Recommended): Target net9.0-windows; Option 2: Add true; Option 3 (Legacy): Use Microsoft.NET.Sdk.WindowsDesktop SDK. |
| Legacy Configuration System | 2 | 0,1% | Legacy XML-based configuration system (app.config/web.config) that has been replaced by a more flexible configuration model in .NET Core. The old system was rigid and XML-based. Migrate to Microsoft.Extensions.Configuration with JSON/environment variables; use System.Configuration.ConfigurationManager NuGet package as interim bridge if needed. |
Most Frequent API Issues
| API | Count | Percentage | Category |
|---|---|---|---|
| T:System.Data.SqlClient.SqlParameterCollection | 273 | 12,5% | Source Incompatible |
| P:System.Data.SqlClient.SqlCommand.Parameters | 273 | 12,5% | Source Incompatible |
| T:System.Data.SqlClient.SqlParameter | 273 | 12,5% | Source Incompatible |
| M:System.Data.SqlClient.SqlParameterCollection.AddWithValue(System.String,System.Object) | 270 | 12,4% | Source Incompatible |
| T:System.Windows.Controls.TextBox | 81 | 3,7% | Binary Incompatible |
| T:System.Windows.Controls.TextBlock | 57 | 2,6% | Binary Incompatible |
| T:System.Windows.RoutedEventHandler | 52 | 2,4% | Binary Incompatible |
| P:System.Windows.Controls.TextBox.Text | 47 | 2,2% | Binary Incompatible |
| T:System.Windows.Controls.Button | 42 | 1,9% | Binary Incompatible |
| T:System.Windows.Controls.ComboBox | 41 | 1,9% | Binary Incompatible |
| P:System.Windows.Controls.TextBlock.Text | 40 | 1,8% | Binary Incompatible |
| T:System.Windows.Visibility | 40 | 1,8% | Binary Incompatible |
| T:System.Data.SqlClient.SqlConnection | 35 | 1,6% | Source Incompatible |
| T:System.Data.SqlClient.SqlCommand | 33 | 1,5% | Source Incompatible |
| T:System.Windows.MessageBoxImage | 30 | 1,4% | Binary Incompatible |
| T:System.Windows.MessageBoxButton | 30 | 1,4% | Binary Incompatible |
| M:System.Data.SqlClient.SqlCommand.ExecuteNonQuery | 23 | 1,1% | Source Incompatible |
| M:System.Data.SqlClient.SqlCommand.#ctor(System.String,System.Data.SqlClient.SqlConnection) | 22 | 1,0% | Source Incompatible |
| T:System.Windows.Controls.DatePicker | 22 | 1,0% | Binary Incompatible |
| T:System.Windows.Controls.CheckBox | 20 | 0,9% | Binary Incompatible |
| T:System.Windows.Controls.RadioButton | 19 | 0,9% | Binary Incompatible |
| T:System.Windows.RoutedEventArgs | 17 | 0,8% | Binary Incompatible |
| T:System.Text.Json.JsonDocument | 16 | 0,7% | Behavioral Change |
| T:System.Windows.Controls.SelectionChangedEventHandler | 16 | 0,7% | Binary Incompatible |
| T:System.Windows.Controls.TextChangedEventHandler | 16 | 0,7% | Binary Incompatible |
| F:System.Windows.MessageBoxButton.OK | 15 | 0,7% | Binary Incompatible |
| T:System.Windows.MessageBox | 15 | 0,7% | Binary Incompatible |
| T:System.Windows.MessageBoxResult | 15 | 0,7% | Binary Incompatible |
| M:System.Windows.MessageBox.Show(System.String,System.String,System.Windows.MessageBoxButton,System.Windows.MessageBoxImage) | 15 | 0,7% | Binary Incompatible |
| T:System.Windows.Controls.ProgressBar | 14 | 0,6% | Binary Incompatible |
| P:System.Windows.UIElement.IsEnabled | 14 | 0,6% | Binary Incompatible |
| P:System.Windows.Controls.ContentControl.Content | 13 | 0,6% | Binary Incompatible |
| T:System.Windows.Controls.Grid | 12 | 0,5% | Binary Incompatible |
| M:System.Data.SqlClient.SqlCommand.#ctor(System.String,System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction) | 11 | 0,5% | Source Incompatible |
| E:System.Windows.Controls.Primitives.ButtonBase.Click | 11 | 0,5% | Binary Incompatible |
| T:System.Data.SqlClient.SqlTransaction | 10 | 0,5% | Source Incompatible |
| E:System.Windows.Controls.Primitives.ToggleButton.Checked | 10 | 0,5% | Binary Incompatible |
| P:System.Windows.Controls.DatePicker.SelectedDate | 10 | 0,5% | Binary Incompatible |
| P:System.Windows.Controls.Primitives.RangeBase.Value | 10 | 0,5% | Binary Incompatible |
| P:System.Windows.Controls.Primitives.Selector.SelectedItem | 9 | 0,4% | Binary Incompatible |
| P:System.Windows.Controls.Primitives.ToggleButton.IsChecked | 9 | 0,4% | Binary Incompatible |
| M:System.Data.SqlClient.SqlCommand.ExecuteScalar | 8 | 0,4% | Source Incompatible |
| T:System.Windows.Controls.DataGrid | 8 | 0,4% | Binary Incompatible |
| F:System.Windows.Visibility.Visible | 8 | 0,4% | Binary Incompatible |
| F:System.Windows.Visibility.Collapsed | 8 | 0,4% | Binary Incompatible |
| P:System.Windows.UIElement.Visibility | 8 | 0,4% | Binary Incompatible |
| E:System.Windows.Controls.Primitives.Selector.SelectionChanged | 8 | 0,4% | Binary Incompatible |
| E:System.Windows.Controls.Primitives.TextBoxBase.TextChanged | 8 | 0,4% | Binary Incompatible |
| F:System.Windows.MessageBoxImage.Error | 7 | 0,3% | Binary Incompatible |
| T:System.Uri | 6 | 0,3% | Behavioral Change |
Projects Relationship Graph
Legend: 📦 SDK-style project ⚙️ Classic project
flowchart LR
P1["<b>⚙️ BettingPredictor.csproj</b><br/><small>net481</small>"]
click P1 "#horseracingpredictorbettingpredictorcsproj"
Project Details
HorseRacingPredictor\BettingPredictor.csproj
Project Info
- Current Target Framework: net481
- Proposed Target Framework: net10.0-windows
- SDK-style: False
- Project Kind: ClassicWpf
- Dependencies: 0
- Dependants: 0
- Number of Files: 43
- Number of Files with Incidents: 27
- Lines of Code: 7140
- Estimated LOC to modify: 2185+ (at least 30,6% of the project)
Dependency Graph
Legend: 📦 SDK-style project ⚙️ Classic project
flowchart TB
subgraph current["BettingPredictor.csproj"]
MAIN["<b>⚙️ BettingPredictor.csproj</b><br/><small>net481</small>"]
click MAIN "#horseracingpredictorbettingpredictorcsproj"
end
API Compatibility
| Category | Count | Impact |
|---|---|---|
| 🔴 Binary Incompatible | 897 | High - Require code changes |
| 🟡 Source Incompatible | 1264 | Medium - Needs re-compilation and potential conflicting API error fixing |
| 🔵 Behavioral change | 24 | Low - Behavioral changes that may require testing at runtime |
| ✅ Compatible | 10445 | |
| Total APIs Analyzed | 12630 |
Project Technologies and Features
| Technology | Issues | Percentage | Migration Path |
|---|---|---|---|
| Legacy Configuration System | 2 | 0,1% | Legacy XML-based configuration system (app.config/web.config) that has been replaced by a more flexible configuration model in .NET Core. The old system was rigid and XML-based. Migrate to Microsoft.Extensions.Configuration with JSON/environment variables; use System.Configuration.ConfigurationManager NuGet package as interim bridge if needed. |
| Windows Forms | 18 | 0,8% | Windows Forms APIs for building Windows desktop applications with traditional Forms-based UI that are available in .NET on Windows. Enable Windows Desktop support: Option 1 (Recommended): Target net9.0-windows; Option 2: Add true; Option 3 (Legacy): Use Microsoft.NET.Sdk.WindowsDesktop SDK. |
| WPF (Windows Presentation Foundation) | 566 | 25,9% | WPF APIs for building Windows desktop applications with XAML-based UI that are available in .NET on Windows. WPF provides rich desktop UI capabilities with data binding and styling. Enable Windows Desktop support: Option 1 (Recommended): Target net9.0-windows; Option 2: Add true. |