340 lines
12 KiB
Markdown
340 lines
12 KiB
Markdown
# 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](#executive-Summary)
|
|
- [Highlevel Metrics](#highlevel-metrics)
|
|
- [Projects Compatibility](#projects-compatibility)
|
|
- [Package Compatibility](#package-compatibility)
|
|
- [API Compatibility](#api-compatibility)
|
|
- [Aggregate NuGet packages details](#aggregate-nuget-packages-details)
|
|
- [Top API Migration Challenges](#top-api-migration-challenges)
|
|
- [Technologies and Features](#technologies-and-features)
|
|
- [Most Frequent API Issues](#most-frequent-api-issues)
|
|
- [Projects Relationship Graph](#projects-relationship-graph)
|
|
- [Project Details](#project-details)
|
|
|
|
- [BoardRules\BoardRules.csproj](#boardrulesboardrulescsproj)
|
|
- [Shogi.Database\Shogi.Database.sqlproj](#shogidatabaseshogidatabasesqlproj)
|
|
- [Shogi\Shogi.csproj](#shogishogicsproj)
|
|
- [Tests\AcceptanceTests\Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj)
|
|
- [Tests\UnitTests\UnitTests.csproj](#testsunittestsunittestscsproj)
|
|
|
|
|
|
## Executive Summary
|
|
|
|
### Highlevel Metrics
|
|
|
|
| Metric | Count | Status |
|
|
| :--- | :---: | :--- |
|
|
| Total Projects | 5 | 1 require upgrade |
|
|
| Total NuGet Packages | 14 | All compatible |
|
|
| Total Code Files | 64 | |
|
|
| Total Code Files with Incidents | 1 | |
|
|
| Total Lines of Code | 5753 | |
|
|
| Total Number of Issues | 1 | |
|
|
| Estimated LOC to modify | 0+ | at least 0.0% of codebase |
|
|
|
|
### Projects Compatibility
|
|
|
|
| Project | Target Framework | Difficulty | Package Issues | API Issues | Est. LOC Impact | Description |
|
|
| :--- | :---: | :---: | :---: | :---: | :---: | :--- |
|
|
| [BoardRules\BoardRules.csproj](#boardrulesboardrulescsproj) | net10.0 | ✅ None | 0 | 0 | | ClassLibrary, Sdk Style = True |
|
|
| [Shogi.Database\Shogi.Database.sqlproj](#shogidatabaseshogidatabasesqlproj) | net472 | 🟢 Low | 0 | 0 | | ClassicClassLibrary, Sdk Style = False |
|
|
| [Shogi\Shogi.csproj](#shogishogicsproj) | net10.0 | ✅ None | 0 | 0 | | AspNetCore, Sdk Style = True |
|
|
| [Tests\AcceptanceTests\Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj) | net10.0 | ✅ None | 0 | 0 | | DotNetCoreApp, Sdk Style = True |
|
|
| [Tests\UnitTests\UnitTests.csproj](#testsunittestsunittestscsproj) | net10.0 | ✅ None | 0 | 0 | | DotNetCoreApp, Sdk Style = True |
|
|
|
|
### Package Compatibility
|
|
|
|
| Status | Count | Percentage |
|
|
| :--- | :---: | :---: |
|
|
| ✅ Compatible | 14 | 100.0% |
|
|
| ⚠️ Incompatible | 0 | 0.0% |
|
|
| 🔄 Upgrade Recommended | 0 | 0.0% |
|
|
| ***Total NuGet Packages*** | ***14*** | ***100%*** |
|
|
|
|
### API Compatibility
|
|
|
|
| Category | Count | Impact |
|
|
| :--- | :---: | :--- |
|
|
| 🔴 Binary Incompatible | 0 | High - Require code changes |
|
|
| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing |
|
|
| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime |
|
|
| ✅ Compatible | 0 | |
|
|
| ***Total APIs Analyzed*** | ***0*** | |
|
|
|
|
## Aggregate NuGet packages details
|
|
|
|
| Package | Current Version | Suggested Version | Projects | Description |
|
|
| :--- | :---: | :---: | :--- | :--- |
|
|
| coverlet.collector | 6.0.4 | | [Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj)<br/>[UnitTests.csproj](#testsunittestsunittestscsproj) | ✅Compatible |
|
|
| Dapper | 2.1.66 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| FluentValidation | 12.1.1 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| Microsoft.AspNetCore.Identity.EntityFrameworkCore | 10.0.1 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| Microsoft.AspNetCore.Mvc.Testing | 10.0.1 | | [Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj) | ✅Compatible |
|
|
| Microsoft.AspNetCore.SignalR.Client | 10.0.1 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| Microsoft.EntityFrameworkCore.Design | 10.0.1 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| Microsoft.EntityFrameworkCore.InMemory | 10.0.1 | | [Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj)<br/>[Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| Microsoft.EntityFrameworkCore.SqlServer | 10.0.1 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| Microsoft.NET.Test.Sdk | 18.0.1 | | [Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj)<br/>[UnitTests.csproj](#testsunittestsunittestscsproj) | ✅Compatible |
|
|
| Swashbuckle.AspNetCore | 10.1.0 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| System.Data.SqlClient | 4.9.0 | | [Shogi.csproj](#shogishogicsproj) | ✅Compatible |
|
|
| xunit | 2.9.3 | | [Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj)<br/>[UnitTests.csproj](#testsunittestsunittestscsproj) | ✅Compatible |
|
|
| xunit.runner.visualstudio | 3.1.5 | | [Shogi.AcceptanceTests.csproj](#testsacceptancetestsshogiacceptancetestscsproj)<br/>[UnitTests.csproj](#testsunittestsunittestscsproj) | ✅Compatible |
|
|
|
|
## Top API Migration Challenges
|
|
|
|
### Technologies and Features
|
|
|
|
| Technology | Issues | Percentage | Migration Path |
|
|
| :--- | :---: | :---: | :--- |
|
|
|
|
### Most Frequent API Issues
|
|
|
|
| API | Count | Percentage | Category |
|
|
| :--- | :---: | :---: | :--- |
|
|
|
|
## Projects Relationship Graph
|
|
|
|
Legend:
|
|
📦 SDK-style project
|
|
⚙️ Classic project
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
P1["<b>⚙️ Shogi.Database.sqlproj</b><br/><small>net472</small>"]
|
|
P2["<b>📦 BoardRules.csproj</b><br/><small>net10.0</small>"]
|
|
P3["<b>📦 Shogi.AcceptanceTests.csproj</b><br/><small>net10.0</small>"]
|
|
P4["<b>📦 UnitTests.csproj</b><br/><small>net10.0</small>"]
|
|
P5["<b>📦 Shogi.csproj</b><br/><small>net10.0</small>"]
|
|
P3 --> P5
|
|
P4 --> P5
|
|
click P1 "#shogidatabaseshogidatabasesqlproj"
|
|
click P2 "#boardrulesboardrulescsproj"
|
|
click P3 "#testsacceptancetestsshogiacceptancetestscsproj"
|
|
click P4 "#testsunittestsunittestscsproj"
|
|
click P5 "#shogishogicsproj"
|
|
|
|
```
|
|
|
|
## Project Details
|
|
|
|
<a id="boardrulesboardrulescsproj"></a>
|
|
### BoardRules\BoardRules.csproj
|
|
|
|
#### Project Info
|
|
|
|
- **Current Target Framework:** net10.0✅
|
|
- **SDK-style**: True
|
|
- **Project Kind:** ClassLibrary
|
|
- **Dependencies**: 0
|
|
- **Dependants**: 0
|
|
- **Number of Files**: 1
|
|
- **Lines of Code**: 120
|
|
- **Estimated LOC to modify**: 0+ (at least 0.0% of the project)
|
|
|
|
#### Dependency Graph
|
|
|
|
Legend:
|
|
📦 SDK-style project
|
|
⚙️ Classic project
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
subgraph current["BoardRules.csproj"]
|
|
MAIN["<b>📦 BoardRules.csproj</b><br/><small>net10.0</small>"]
|
|
click MAIN "#boardrulesboardrulescsproj"
|
|
end
|
|
|
|
```
|
|
|
|
### API Compatibility
|
|
|
|
| Category | Count | Impact |
|
|
| :--- | :---: | :--- |
|
|
| 🔴 Binary Incompatible | 0 | High - Require code changes |
|
|
| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing |
|
|
| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime |
|
|
| ✅ Compatible | 0 | |
|
|
| ***Total APIs Analyzed*** | ***0*** | |
|
|
|
|
<a id="shogidatabaseshogidatabasesqlproj"></a>
|
|
### Shogi.Database\Shogi.Database.sqlproj
|
|
|
|
#### Project Info
|
|
|
|
- **Current Target Framework:** net472
|
|
- **Proposed Target Framework:** net10.0
|
|
- **SDK-style**: False
|
|
- **Project Kind:** ClassicClassLibrary
|
|
- **Dependencies**: 0
|
|
- **Dependants**: 0
|
|
- **Number of Files**: 0
|
|
- **Number of Files with Incidents**: 1
|
|
- **Lines of Code**: 0
|
|
- **Estimated LOC to modify**: 0+ (at least 0.0% of the project)
|
|
|
|
#### Dependency Graph
|
|
|
|
Legend:
|
|
📦 SDK-style project
|
|
⚙️ Classic project
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
subgraph current["Shogi.Database.sqlproj"]
|
|
MAIN["<b>⚙️ Shogi.Database.sqlproj</b><br/><small>net472</small>"]
|
|
click MAIN "#shogidatabaseshogidatabasesqlproj"
|
|
end
|
|
|
|
```
|
|
|
|
### API Compatibility
|
|
|
|
| Category | Count | Impact |
|
|
| :--- | :---: | :--- |
|
|
| 🔴 Binary Incompatible | 0 | High - Require code changes |
|
|
| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing |
|
|
| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime |
|
|
| ✅ Compatible | 0 | |
|
|
| ***Total APIs Analyzed*** | ***0*** | |
|
|
|
|
<a id="shogishogicsproj"></a>
|
|
### Shogi\Shogi.csproj
|
|
|
|
#### Project Info
|
|
|
|
- **Current Target Framework:** net10.0✅
|
|
- **SDK-style**: True
|
|
- **Project Kind:** AspNetCore
|
|
- **Dependencies**: 0
|
|
- **Dependants**: 2
|
|
- **Number of Files**: 118
|
|
- **Lines of Code**: 4232
|
|
- **Estimated LOC to modify**: 0+ (at least 0.0% of the project)
|
|
|
|
#### Dependency Graph
|
|
|
|
Legend:
|
|
📦 SDK-style project
|
|
⚙️ Classic project
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
subgraph upstream["Dependants (2)"]
|
|
P3["<b>📦 Shogi.AcceptanceTests.csproj</b><br/><small>net10.0</small>"]
|
|
P4["<b>📦 UnitTests.csproj</b><br/><small>net10.0</small>"]
|
|
click P3 "#testsacceptancetestsshogiacceptancetestscsproj"
|
|
click P4 "#testsunittestsunittestscsproj"
|
|
end
|
|
subgraph current["Shogi.csproj"]
|
|
MAIN["<b>📦 Shogi.csproj</b><br/><small>net10.0</small>"]
|
|
click MAIN "#shogishogicsproj"
|
|
end
|
|
P3 --> MAIN
|
|
P4 --> MAIN
|
|
|
|
```
|
|
|
|
### API Compatibility
|
|
|
|
| Category | Count | Impact |
|
|
| :--- | :---: | :--- |
|
|
| 🔴 Binary Incompatible | 0 | High - Require code changes |
|
|
| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing |
|
|
| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime |
|
|
| ✅ Compatible | 0 | |
|
|
| ***Total APIs Analyzed*** | ***0*** | |
|
|
|
|
<a id="testsacceptancetestsshogiacceptancetestscsproj"></a>
|
|
### Tests\AcceptanceTests\Shogi.AcceptanceTests.csproj
|
|
|
|
#### Project Info
|
|
|
|
- **Current Target Framework:** net10.0✅
|
|
- **SDK-style**: True
|
|
- **Project Kind:** DotNetCoreApp
|
|
- **Dependencies**: 1
|
|
- **Dependants**: 0
|
|
- **Number of Files**: 5
|
|
- **Lines of Code**: 443
|
|
- **Estimated LOC to modify**: 0+ (at least 0.0% of the project)
|
|
|
|
#### Dependency Graph
|
|
|
|
Legend:
|
|
📦 SDK-style project
|
|
⚙️ Classic project
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
subgraph current["Shogi.AcceptanceTests.csproj"]
|
|
MAIN["<b>📦 Shogi.AcceptanceTests.csproj</b><br/><small>net10.0</small>"]
|
|
click MAIN "#testsacceptancetestsshogiacceptancetestscsproj"
|
|
end
|
|
subgraph downstream["Dependencies (1"]
|
|
P5["<b>📦 Shogi.csproj</b><br/><small>net10.0</small>"]
|
|
click P5 "#shogishogicsproj"
|
|
end
|
|
MAIN --> P5
|
|
|
|
```
|
|
|
|
### API Compatibility
|
|
|
|
| Category | Count | Impact |
|
|
| :--- | :---: | :--- |
|
|
| 🔴 Binary Incompatible | 0 | High - Require code changes |
|
|
| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing |
|
|
| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime |
|
|
| ✅ Compatible | 0 | |
|
|
| ***Total APIs Analyzed*** | ***0*** | |
|
|
|
|
<a id="testsunittestsunittestscsproj"></a>
|
|
### Tests\UnitTests\UnitTests.csproj
|
|
|
|
#### Project Info
|
|
|
|
- **Current Target Framework:** net10.0✅
|
|
- **SDK-style**: True
|
|
- **Project Kind:** DotNetCoreApp
|
|
- **Dependencies**: 1
|
|
- **Dependants**: 0
|
|
- **Number of Files**: 7
|
|
- **Lines of Code**: 958
|
|
- **Estimated LOC to modify**: 0+ (at least 0.0% of the project)
|
|
|
|
#### Dependency Graph
|
|
|
|
Legend:
|
|
📦 SDK-style project
|
|
⚙️ Classic project
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
subgraph current["UnitTests.csproj"]
|
|
MAIN["<b>📦 UnitTests.csproj</b><br/><small>net10.0</small>"]
|
|
click MAIN "#testsunittestsunittestscsproj"
|
|
end
|
|
subgraph downstream["Dependencies (1"]
|
|
P5["<b>📦 Shogi.csproj</b><br/><small>net10.0</small>"]
|
|
click P5 "#shogishogicsproj"
|
|
end
|
|
MAIN --> P5
|
|
|
|
```
|
|
|
|
### API Compatibility
|
|
|
|
| Category | Count | Impact |
|
|
| :--- | :---: | :--- |
|
|
| 🔴 Binary Incompatible | 0 | High - Require code changes |
|
|
| 🟡 Source Incompatible | 0 | Medium - Needs re-compilation and potential conflicting API error fixing |
|
|
| 🔵 Behavioral change | 0 | Low - Behavioral changes that may require testing at runtime |
|
|
| ✅ Compatible | 0 | |
|
|
| ***Total APIs Analyzed*** | ***0*** | |
|
|
|