azure / azure-notificationhubs-dotnet
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
http
cshtml
csproj
xaml
txt
resx
asax
gitattributes
shproj
editorconfig
axml
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main9956 LOC (23%) 114 files
test2310 LOC (5%) 27 files
generated5867 LOC (13%) 4 files
build and deployment58 LOC (<1%) 1 file
other24662 LOC (57%) 179 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 114 files match defined criteria (9,956 LOC, 100.0% vs. main code). All matches are in *.cs files.


*.cs9956 LOC (100%) 114 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
http
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
  • 27 files match defined criteria (2,310 LOC, 23.2% vs. main code):
    • 6 *.cs files (1,843 LOC)
    • 20 *.http files (436 LOC)
    • 1 *.csproj files (31 LOC)
  • " *.cs" is biggest, containing 79.78% of LOC.
  • " *.csproj" is smallest, containing 1.34% of LOC.


*.cs1843 LOC (79%) 6 files
*.http436 LOC (18%) 20 files
*.csproj31 LOC (1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]cs" AND any line of content like "[/][/][ ]*".
    • files with paths like ".*[.]designer[.](cs|vb)".
  • 4 files match defined criteria (5,867 LOC, 58.9% vs. main code). All matches are in *.cs files.


*.cs5867 LOC (100%) 4 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]csproj".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/AndroidManifest[.]xml".
  • 1 file matches defined criteria (58 LOC, 0.6% vs. main code). All matches are in *.csproj files.


*.csproj58 LOC (100%) 1 file
Other Code
csproj
cshtml
xaml
txt
shproj
axml
asax
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
  • 179 files match defined criteria (24,662 LOC, 247.7% vs. main code):
    • 10 *.js files (10,300 LOC)
    • 88 *.cs files (7,926 LOC)
    • 4 *.css files (3,904 LOC)
    • 13 *.csproj files (1,024 LOC)
    • 9 *.md files (614 LOC)
    • 23 *.cshtml files (425 LOC)
    • 1 *.html files (130 LOC)
    • 12 *.json files (109 LOC)
    • 4 *.xaml files (76 LOC)
    • 3 *.txt files (66 LOC)
    • 8 *.xml files (57 LOC)
    • 1 *.shproj files (12 LOC)
    • 1 *.ps1 files (11 LOC)
    • 1 *.axml files (7 LOC)
    • 1 *.asax files (1 LOC)
  • " *.js" is biggest, containing 41.76% of LOC.
  • " *.asax" is smallest, containing 0% of LOC.


*.js10300 LOC (41%) 10 files
*.cs7926 LOC (32%) 88 files
*.css3904 LOC (15%) 4 files
*.csproj1024 LOC (4%) 13 files
*.md614 LOC (2%) 9 files
*.cshtml425 LOC (1%) 23 files
*.html130 LOC (<1%) 1 file
*.json109 LOC (<1%) 12 files
*.xaml76 LOC (<1%) 4 files
*.txt66 LOC (<1%) 3 files
*.xml57 LOC (<1%) 8 files
*.shproj12 LOC (<1%) 1 file
*.ps111 LOC (<1%) 1 file
*.axml7 LOC (<1%) 1 file
*.asax1 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.
  • *.cs files are analyzed with CSharpAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis (based on namespace heuristics)


2025-05-06 21:40