Category: PackageAnalyzer

PackageAnalyzer & Equinox

With .NET tool https://github.com/ignatandrei/PackageAnalyzer I have analyzed another architecture from   https://github.com/EduardoPires/EquinoxProject/

Project relations

Project relations

Project Data

Public Classes per project

Class per project

Number lines per project

Number lines per project

Class data

Public methods per class

Public methods

Number methods per class

Number-methods-per-class

Number lines per class

Number-exec-lines-per-class

Method data

Cyclomatic complexity per method

Cyclomatic-Complexity-for-Method

Maintainability index per method

Maintainability-for-Method

Number lines per method

Number-exec-lines-per-method

Commits

File with most commits

Files-with-commits

Commits per year and project

Commits per year and project

Packages

Major version differs

Major version differs

PackageAnalyzer & Akka.CQRS

With .NET tool https://github.com/ignatandrei/PackageAnalyzer I have analyzed another architecture from   https://github.com/Aaronontheweb/InMemoryCQRSReplication

Project relations

Project relations

Project Data

PNumber lines per project

Number lines per project

Class data

Public methods per class

Public methods

Number methods per class

Number-methods-per-class

Number lines per class

Number-exec-lines-per-class

Method data

Cyclomatic complexity per method

Cyclomatic-Complexity-for-Method

Maintainability index per method

Maintainability-for-Method

Number lines per method

Number-exec-lines-per-method

Commits

File with most commits

Files-with-commits

Commits per year and project

Commits per year and project

Install from https://nuget.org/packages/netpackageanalyzerconsole

PackageAnalyzer & DotNetMicroservicesPoc

With .NET tool https://github.com/ignatandrei/PackageAnalyzer I have analyzed another architecture from   https://github.com/asc-lab/dotnetcore-microservices-poc 

Project relations

Project relations

Project Data

Public Classes per project

Class per project

Number lines per project

Number lines per project

Class data

Public methods per class

Public methods

Number methods per class

Number-methods-per-class

Number lines per class

Number-exec-lines-per-class

Method data

Cyclomatic complexity per method

Cyclomatic-Complexity-for-Method

Maintainability index per method

Maintainability-for-Method

Number lines per method

Number-exec-lines-per-method

Commits

File with most commits

Files-with-commits

Commits per year and project

Commits per year and project

Install from https://nuget.org/packages/netpackageanalyzerconsole

PackageAnalyzer & Booking Microservices

With .NET tool https://github.com/ignatandrei/PackageAnalyzer I have analyzed another solution architecture from   https://github.com/meysamhadeli/booking-microservices

Project relations

Project relations

Project Data

Public Classes per project

Class per project

Number lines per project

Number lines per project

Class data

Public methods per class

Public methods

Number methods per class

Number-methods-per-class

Number lines per class

Number-exec-lines-per-class

Method data

Cyclomatic complexity per method

Cyclomatic-Complexity-for-Method

Maintainability index per method

Maintainability-for-Method

Number lines per method

Number-exec-lines-per-method

Commits

File with most commits

Files-with-commits

Commits per year and project

Commits per year and project

Install from https://nuget.org/packages/netpackageanalyzerconsole

NetPackageAnalyzer–part 13–executable lines

The .NET Tool , https://www.nuget.org/packages/netpackageanalyzerconsole , can now analyze a solution and see the number of executable lines

The program is showing the number of executable lines per method , class , assembly .

diagram

https://learn.microsoft.com/en-us/visualstudio/code-quality/code-metrics-values?view=vs-2022

Install from https://nuget.org/packages/netpackageanalyzerconsole

NetPackageAnalyzer–part 12-CyclomaticComplexity

The .NET Tool , https://www.nuget.org/packages/netpackageanalyzerconsole , can now analyze a solution and see the cyclomatic complexity.

Cyclomatic Complexity for assembly, class, method

The cyclomatic complexity of a section of code is the number of linearly independent paths through the code. It is a quantitative measure of the number of linearly independent paths through a program’s source code.

The program is showing the cyclomatic complexity of the assembly, class, and method. You should start with the method – it is the easy to analyze .

diagram

Also , you can see on which methods you should focus to refactor – the ones with the highest cyclomatic complexity.

diagram

https://learn.microsoft.com/en-us/visualstudio/code-quality/code-metrics-cyclomatic-complexity?view=vs-2022

Install from https://nuget.org/packages/netpackageanalyzerconsole

NetPackageAnalyzer–part 11–Building Blocks , Test Projects and Root Projects

The .NET Tool , https://www.nuget.org/packages/netpackageanalyzerconsole , can now analyze a solution and see the Building Blocks , Test Projects and Root Projects

Building blocks Projects

I define as Building blocks projects the projects that have no reference to other projects.

If you are new to the solution , then you can start to those base projects – should be self contained and self explanatory

diagram

Root Projects

I define as root projects the projects that are not referenced by any other project and that are not test projects

Can be console, winforms, windows api, mobile , services … Important is that they contain the functionality for the business

diagram

Test Projects

The application shows test projects and the projects that are tested.

diagram

Install from https://nuget.org/packages/netpackageanalyzerconsole

Ardalis CleanArchitecture TODO & Package Analyzer

I have analyzed the TODO example from https://github.com/ardalis/CleanArchitecture

Number projects : 7 (tests : 3, no tests : 4 )

Number packages : 246 (Outdated: 32, Deprecated: 0, Major version differs 7 )

Assembly with most references : NimblePros.SampleToDo.Core 89

Most public classes NimblePros.SampleToDo.UseCases 33

Total Commits: 20 ( last commit : this year,2024 )

The commit with max files ( 106 ) is sha 6e0742b79a5137a52fbf4b809898b2e2cedaf563 on 2023 August 28 )

The file with most commits ( 4 ) is D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Infrastructure\sample/src/NimblePros.SampleToDo.Infrastructure/AutofacInfrastructureModule.cs

:::

4 Projects

diagram

7 Packages with major version different

Nr ID References Projects
1 Microsoft.Extensions.DependencyInjection.Abstractions *(References: 2)* **Major differs** 7.0.0 NimblePros.SampleToDo.Web,NimblePros.SampleToDo.Infrastructure,NimblePros.SampleToDo.FunctionalTests,NimblePros.SampleToDo.IntegrationTests,NimblePros.SampleToDo.UnitTests,NimblePros.SampleToDo.UseCases
6.0.0 NimblePros.SampleToDo.Core
2 Microsoft.NETCore.Platforms *(References: 2)* **Major differs** 5.0.0 NimblePros.SampleToDo.Web,NimblePros.SampleToDo.Infrastructure,NimblePros.SampleToDo.FunctionalTests,NimblePros.SampleToDo.IntegrationTests
1.1.0 NimblePros.SampleToDo.UnitTests
3 System.Configuration.ConfigurationManager *(References: 2)* **Major differs** 5.0.0 NimblePros.SampleToDo.Web,NimblePros.SampleToDo.Infrastructure,NimblePros.SampleToDo.FunctionalTests,NimblePros.SampleToDo.IntegrationTests
4.4.0 NimblePros.SampleToDo.UnitTests
4 System.Diagnostics.DiagnosticSource *(References: 3)* **Major differs** 5.0.0 NimblePros.SampleToDo.Web,NimblePros.SampleToDo.Infrastructure
4.7.1 NimblePros.SampleToDo.Core,NimblePros.SampleToDo.UnitTests,NimblePros.SampleToDo.UseCases
7.0.1 NimblePros.SampleToDo.FunctionalTests,NimblePros.SampleToDo.IntegrationTests
5 System.Diagnostics.EventLog *(References: 2)* **Major differs** 7.0.0 NimblePros.SampleToDo.FunctionalTests,NimblePros.SampleToDo.IntegrationTests
6.0.0 NimblePros.SampleToDo.UnitTests
6 System.Security.Cryptography.Cng *(References: 2)* **Major differs** 5.0.0 NimblePros.SampleToDo.Web,NimblePros.SampleToDo.Infrastructure,NimblePros.SampleToDo.FunctionalTests,NimblePros.SampleToDo.IntegrationTests
4.3.0 NimblePros.SampleToDo.UnitTests
7 System.Security.Cryptography.ProtectedData *(References: 2)* **Major differs** 5.0.0 NimblePros.SampleToDo.Web,NimblePros.SampleToDo.Infrastructure,NimblePros.SampleToDo.FunctionalTests,NimblePros.SampleToDo.IntegrationTests
4.4.0 NimblePros.SampleToDo.UnitTests

Summary of project public classes

Assemblies with number of public classes

diagram

Assemblies with Public methods

diagram

Classes with Public methods

diagram

Lines summary

Assemblies with most lines in public classses

diagram

Public Classes with most lines

diagram

Public Methods with most lines

diagram

References between projects

Assemblies with References

diagram

Classes with References

diagram

Commits

Commits per year

diagram

Most Commits per file

(Most commits 4 , median 1 )

diagram

Nr Number commits Name Full Path
1 4 AutofacInfrastructureModule.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Infrastructure\sample/src/NimblePros.SampleToDo.Infrastructure/AutofacInfrastructureModule.cs
2 3 api.http D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Web\sample/src/NimblePros.SampleToDo.Web/api.http
3 3 ListProjectsShallowQueryService.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Infrastructure\sample/src/NimblePros.SampleToDo.Infrastructure/Data/Queries/ListProjectsShallowQueryService.cs
4 2 NimblePros.SampleToDo.Web.csproj D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Web\sample/src/NimblePros.SampleToDo.Web/NimblePros.SampleToDo.Web.csproj
5 2 Create.CreateContributorRequest.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Web\sample/src/NimblePros.SampleToDo.Web/Contributors/Create.CreateContributorRequest.cs
6 2 Program.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Web\sample/src/NimblePros.SampleToDo.Web/Program.cs
7 2 GetById.GetProjectByIdRequest.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Web\sample/src/NimblePros.SampleToDo.Web/Contributors/GetById.GetProjectByIdRequest.cs
8 2 MarkItemComplete.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Web\sample/src/NimblePros.SampleToDo.Web/Projects/MarkItemComplete.cs
9 2 launchSettings.json D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Web\sample/src/NimblePros.SampleToDo.Web/Properties/launchSettings.json
10 2 DefaultCoreModule.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Core\sample/src/NimblePros.SampleToDo.Core/DefaultCoreModule.cs
11 2 ToDoItem.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.Core\sample/src/NimblePros.SampleToDo.Core/ProjectAggregate/ToDoItem.cs
12 2 NimblePros.SampleToDo.FunctionalTests.csproj D:\gth\CleanArchitecture\sample\tests\NimblePros.SampleToDo.FunctionalTests\sample/tests/NimblePros.SampleToDo.FunctionalTests/NimblePros.SampleToDo.FunctionalTests.csproj
13 2 NimblePros.SampleToDo.IntegrationTests.csproj D:\gth\CleanArchitecture\sample\tests\NimblePros.SampleToDo.IntegrationTests\sample/tests/NimblePros.SampleToDo.IntegrationTests/NimblePros.SampleToDo.IntegrationTests.csproj
14 2 NimblePros.SampleToDo.UnitTests.csproj D:\gth\CleanArchitecture\sample\tests\NimblePros.SampleToDo.UnitTests\sample/tests/NimblePros.SampleToDo.UnitTests/NimblePros.SampleToDo.UnitTests.csproj
15 2 ListProjectsShallowHandler.cs D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.UseCases\sample/src/NimblePros.SampleToDo.UseCases/Projects/ListShallow/ListProjectsShallowHandler.cs
16 2 NimblePros.SampleToDo.UseCases.csproj D:\gth\CleanArchitecture\sample\src\NimblePros.SampleToDo.UseCases\sample/src/NimblePros.SampleToDo.UseCases/NimblePros.SampleToDo.UseCases.csproj

Commits with most files per year

diagram

Nr SHA Date NrFiles
1 c74b0aa5b53ea56677e7a13db9193a5cecb6de69 2024 Apr 10 2
2 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 106

### Commits with max files

diagram

Nr SHA Date NrFiles
1 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 106
2 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 35
3 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 23
4 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 17
5 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 16
6 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 13
7 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 5
8 0b2e458e7c9ab66ce4bf1806e6a65ec6a1bdb036 2023 Nov 16 3
9 c74b0aa5b53ea56677e7a13db9193a5cecb6de69 2024 Apr 10 2
10 c74b0aa5b53ea56677e7a13db9193a5cecb6de69 2024 Apr 10 2
11 762eb2ecb65a1026ca5de10d36ba534a1b354f8a 2023 Nov 16 2

Generated by https://www.nuget.org/packages/NetPackageAnalyzerConsole

Ardalis CleanArchitecture & PackageAnalyzer

I have analyzed  https://github.com/ardalis/CleanArchitecture

Number projects : 7 (tests : 3, no tests : 4 )

Number packages : 172 (Outdated: 3, Deprecated: 0, Major version differs 7 )

Assembly with most references : Clean.Architecture.Core 21

    [Most public classes](pathname:///docs/Analysis/Clean.Architecture/summaryPublicClasses)

:Clean.Architecture.UseCases 12

Total Commits: 262 ( last commit : this year,2024 )

The commit with max files ( 257 ) is sha bc82b731d3caa1f05ebf316bd094c385dfa55e8d on 2022 May 06 )

The file with most commits ( 62 ) is D:\gth\CleanArchitecture\src\Clean.Architecture.Web\src/Clean.Architecture.Web/Clean.Architecture.Web.csproj

4 Projects

diagram

7 Packages with major version different

Nr ID References Projects
1 Microsoft.Bcl.AsyncInterfaces *(References: 2)* **Major differs** 6.0.0 Clean.Architecture.Web,Clean.Architecture.Infrastructure,Clean.Architecture.FunctionalTests
1.1.1 Clean.Architecture.IntegrationTests
2 System.Configuration.ConfigurationManager *(References: 2)* **Major differs** 6.0.1 Clean.Architecture.Web,Clean.Architecture.Infrastructure,Clean.Architecture.FunctionalTests,Clean.Architecture.IntegrationTests
4.4.0 Clean.Architecture.UnitTests
3 System.Diagnostics.DiagnosticSource *(References: 2)* **Major differs** 8.0.0 Clean.Architecture.Web,Clean.Architecture.FunctionalTests,Clean.Architecture.IntegrationTests
6.0.1 Clean.Architecture.Infrastructure
4 System.Diagnostics.EventLog *(References: 2)* **Major differs** 8.0.0 Clean.Architecture.FunctionalTests,Clean.Architecture.IntegrationTests
6.0.0 Clean.Architecture.UnitTests
5 System.IO.Pipelines *(References: 2)* **Major differs** 6.0.3 Clean.Architecture.Web,Clean.Architecture.Infrastructure
8.0.0 Clean.Architecture.FunctionalTests,Clean.Architecture.IntegrationTests
6 System.Reflection.Metadata *(References: 2)* **Major differs** 6.0.1 Clean.Architecture.Web,Clean.Architecture.Infrastructure,Clean.Architecture.FunctionalTests
1.6.0 Clean.Architecture.IntegrationTests,Clean.Architecture.UnitTests
7 System.Security.Cryptography.ProtectedData *(References: 2)* **Major differs** 6.0.0 Clean.Architecture.Web,Clean.Architecture.Infrastructure,Clean.Architecture.FunctionalTests,Clean.Architecture.IntegrationTests
4.4.0 Clean.Architecture.UnitTests

Summary of project public classes

Assemblies with number of public classes

diagram

Assemblies with Public methods

diagram

Classes with Public methods

diagram

Lines summary

Assemblies with most lines in public classses

diagram

Public Classes with most lines

diagram

Public Methods with most lines

diagram

References between projects

Assemblies with References

diagram

Classes with References

diagram

Commits

Commits per year

diagram

Most Commits per file

(Most commits 62 , median 2 )

diagram

Nr Number commits Name Full Path
1 62 Clean.Architecture.Web.csproj D:\gth\CleanArchitecture\src\Clean.Architecture.Web\src/Clean.Architecture.Web/Clean.Architecture.Web.csproj
2 55 Clean.Architecture.Infrastructure.csproj D:\gth\CleanArchitecture\src\Clean.Architecture.Infrastructure\src/Clean.Architecture.Infrastructure/Clean.Architecture.Infrastructure.csproj
3 41 Clean.Architecture.FunctionalTests.csproj D:\gth\CleanArchitecture\tests\Clean.Architecture.FunctionalTests\tests/Clean.Architecture.FunctionalTests/Clean.Architecture.FunctionalTests.csproj
4 40 Clean.Architecture.IntegrationTests.csproj D:\gth\CleanArchitecture\tests\Clean.Architecture.IntegrationTests\tests/Clean.Architecture.IntegrationTests/Clean.Architecture.IntegrationTests.csproj
5 35 Clean.Architecture.UnitTests.csproj D:\gth\CleanArchitecture\tests\Clean.Architecture.UnitTests\tests/Clean.Architecture.UnitTests/Clean.Architecture.UnitTests.csproj
6 28 Clean.Architecture.Core.csproj D:\gth\CleanArchitecture\src\Clean.Architecture.Core\src/Clean.Architecture.Core/Clean.Architecture.Core.csproj
7 16 Program.cs D:\gth\CleanArchitecture\src\Clean.Architecture.Web\src/Clean.Architecture.Web/Program.cs
8 15 CustomWebApplicationFactory.cs D:\gth\CleanArchitecture\tests\Clean.Architecture.FunctionalTests\tests/Clean.Architecture.FunctionalTests/CustomWebApplicationFactory.cs
9 14 DefaultInfrastructureModule.cs D:\gth\CleanArchitecture\src\Clean.Architecture.Infrastructure\src/Clean.Architecture.Infrastructure/DefaultInfrastructureModule.cs
10 13 AppDbContext.cs D:\gth\CleanArchitecture\src\Clean.Architecture.Infrastructure\src/Clean.Architecture.Infrastructure/Data/AppDbContext.cs
11 11 ToDoItemSearchService.cs D:\gth\CleanArchitecture\src\Clean.Architecture.Core\src/Clean.Architecture.Core/Services/ToDoItemSearchService.cs

Commits with most files per year

diagram

Nr SHA Date NrFiles
1 d87414d0845126afc326e280838a300e06966c10 2024 Mar 04 17
2 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 72
3 bc82b731d3caa1f05ebf316bd094c385dfa55e8d 2022 May 06 257
4 6e4f23e999ebb555b2dd342b9dc9bf5698243652 2021 Apr 17 49
5 8698ae4d2008b0f4465ff54b8434f812f5ed066f 2020 Dec 09 237

### Commits with max files

diagram

Nr SHA Date NrFiles
1 bc82b731d3caa1f05ebf316bd094c385dfa55e8d 2022 May 06 257
2 8698ae4d2008b0f4465ff54b8434f812f5ed066f 2020 Dec 09 237
3 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 72
4 dfeb7cb4741b85bc22b1505b0c534f73f578f674 2023 Dec 14 60
5 6e4f23e999ebb555b2dd342b9dc9bf5698243652 2021 Apr 17 49
6 8b33e4fcf1152884bafe6e4153db8b0393b8d26d 2020 Dec 02 38
7 fff4ae6540a7ccde87ef21af6521fd6dbcb4056a 2021 Oct 24 33
8 9019ebb9e1567eaa46074e93d9e8c2029083bfe9 2021 Nov 12 32
9 999bdf93c4448859f5a03c7e1a5715cb8e8727f4 2021 Nov 12 30
10 6e0742b79a5137a52fbf4b809898b2e2cedaf563 2023 Aug 28 23
11 d87414d0845126afc326e280838a300e06966c10 2024 Mar 04 17
12 08d78725d4838dcea2de78b35002a3735c86efd5 2022 Nov 16 17

Andrei Ignat weekly software news(mostly .NET)

* indicates required

Please select all the ways you would like to hear from me:

You can unsubscribe at any time by clicking the link in the footer of our emails. For information about our privacy practices, please visit our website.

We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.