Files

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>⚙️&nbsp;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>⚙️&nbsp;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.