azure / azure-sdk-for-net
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
csproj
props
txt
cshtml
targets
resx
shproj
cmd
gitattributes
editorconfig
proj
mdx
xsd
prettierignore
jsonl
proto
wsdl
jsonc
tpl
obj
vtt
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.

main860568 LOC (8%) 9,471 files
test667779 LOC (6%) 5,107 files
generated7947267 LOC (74%) 71,233 files
build and deployment9144 LOC (<1%) 522 files
other1198536 LOC (11%) 8,579 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
props
targets
proj
proto
shproj
cmd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 9471 files match defined criteria (860,568 LOC, 100.0% vs. main code):
    • 8,669 *.cs files (739,075 LOC)
    • 120 *.xml files (96,554 LOC)
    • 207 *.ps1 files (20,177 LOC)
    • 358 *.props files (1,967 LOC)
    • 4 *.psm1 files (620 LOC)
    • 13 *.targets files (584 LOC)
    • 75 *.yaml files (554 LOC)
    • 1 *.css files (247 LOC)
    • 3 *.js files (234 LOC)
    • 9 *.ts files (220 LOC)
    • 3 *.proj files (175 LOC)
    • 1 *.proto files (77 LOC)
    • 3 *.shproj files (44 LOC)
    • 5 *.cmd files (40 LOC)
  • " *.cs" is biggest, containing 85.88% of LOC.
  • " *.cmd" is smallest, containing 0% of LOC.


*.cs739075 LOC (85%) 8,669 files
*.xml96554 LOC (11%) 120 files
*.ps120177 LOC (2%) 207 files
*.props1967 LOC (<1%) 358 files
*.psm1620 LOC (<1%) 4 files
*.targets584 LOC (<1%) 13 files
*.yaml554 LOC (<1%) 75 files
*.css247 LOC (<1%) 1 file
*.js234 LOC (<1%) 3 files
*.ts220 LOC (<1%) 9 files
*.proj175 LOC (<1%) 3 files
*.proto77 LOC (<1%) 1 file
*.shproj44 LOC (<1%) 3 files
*.cmd40 LOC (<1%) 5 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
wsdl
xsd
shproj
targets
props
jsonl
vtt
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
    • files with paths like ".*/TestData/.*".
    • files with paths like ".*/UnitTests?/.*".
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*/TestUtilities/.*".
    • files with paths like ".*/IntegrationTests?/.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/[Mm]ocks/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*[.]tests[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/vitest[.].*".
  • 5107 files match defined criteria (667,779 LOC, 77.6% vs. main code):
    • 4,611 *.cs files (656,275 LOC)
    • 441 *.csproj files (7,894 LOC)
    • 25 *.ps1 files (1,779 LOC)
    • 7 *.ts files (744 LOC)
    • 1 *.wsdl files (350 LOC)
    • 8 *.xml files (299 LOC)
    • 2 *.xsd files (167 LOC)
    • 2 *.yaml files (158 LOC)
    • 3 *.shproj files (39 LOC)
    • 2 *.targets files (34 LOC)
    • 3 *.props files (18 LOC)
    • 1 *.jsonl files (11 LOC)
    • 1 *.vtt files (11 LOC)
  • " *.cs" is biggest, containing 98.28% of LOC.
  • " *.vtt" is smallest, containing 0% of LOC.


*.cs656275 LOC (98%) 4,611 files
*.csproj7894 LOC (1%) 441 files
*.ps11779 LOC (<1%) 25 files
*.ts744 LOC (<1%) 7 files
*.wsdl350 LOC (<1%) 1 file
*.xml299 LOC (<1%) 8 files
*.xsd167 LOC (<1%) 2 files
*.yaml158 LOC (<1%) 2 files
*.shproj39 LOC (<1%) 3 files
*.targets34 LOC (<1%) 2 files
*.props18 LOC (<1%) 3 files
*.jsonl11 LOC (<1%) 1 file
*.vtt11 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 ".*/package[-]lock[.]json".
    • files with paths like ".*[.]cs" AND any line of content like "[/][/][ ]*".
    • files with any line of content like "//[ ]*Generated by .*".
  • 71233 files match defined criteria (7,947,267 LOC, 923.5% vs. main code):
    • 71,228 *.cs files (7,926,834 LOC)
    • 5 *.json files (20,433 LOC)
  • " *.cs" is biggest, containing 99.74% of LOC.
  • " *.json" is smallest, containing 0.26% of LOC.


*.cs7926834 LOC (99%) 71,228 files
*.json20433 LOC (<1%) 5 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 ".*/package[-]lock[.]json".
    • 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 ".*/package[.]json".
    • files with paths like ".*[.]sh".
  • 522 files match defined criteria (9,144 LOC, 1.1% vs. main code):
    • 520 *.csproj files (9,096 LOC)
    • 2 *.sh files (48 LOC)
  • " *.csproj" is biggest, containing 99.48% of LOC.
  • " *.sh" is smallest, containing 0.52% of LOC.


*.csproj9096 LOC (99%) 520 files
*.sh48 LOC (<1%) 2 files
Other Code
obj
csproj
txt
cshtml
props
targets
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]obj".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*[.]mdx".
  • 8579 files match defined criteria (1,198,536 LOC, 139.3% vs. main code):
    • 5,041 *.cs files (654,911 LOC)
    • 1,357 *.json files (356,867 LOC)
    • 1,929 *.md files (175,004 LOC)
    • 1 *.obj files (6,322 LOC)
    • 134 *.csproj files (1,947 LOC)
    • 57 *.txt files (1,932 LOC)
    • 25 *.cshtml files (553 LOC)
    • 2 *.html files (420 LOC)
    • 7 *.css files (196 LOC)
    • 9 *.props files (117 LOC)
    • 7 *.ts files (115 LOC)
    • 1 *.svg files (76 LOC)
    • 6 *.targets files (73 LOC)
    • 3 *.js files (3 LOC)
  • " *.cs" is biggest, containing 54.64% of LOC.
  • " *.js" is smallest, containing 0% of LOC.


*.cs654911 LOC (54%) 5,041 files
*.json356867 LOC (29%) 1,357 files
*.md175004 LOC (14%) 1,929 files
*.obj6322 LOC (<1%) 1 file
*.csproj1947 LOC (<1%) 134 files
*.txt1932 LOC (<1%) 57 files
*.cshtml553 LOC (<1%) 25 files
*.html420 LOC (<1%) 2 files
*.css196 LOC (<1%) 7 files
*.props117 LOC (<1%) 9 files
*.ts115 LOC (<1%) 7 files
*.svg76 LOC (<1%) 1 file
*.targets73 LOC (<1%) 6 files
*.js3 LOC (<1%) 3 files
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)
  • *.xml files are analyzed with XmlAnalyzer:
    • 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)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.ps1 files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.props files are analyzed with XmlAnalyzer:
    • 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)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.psm1 files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.targets files are analyzed with XmlAnalyzer:
    • 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)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.yaml files are analyzed with YamlAnalyzer:
    • 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)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.css files are analyzed with CssAnalyzer:
    • 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)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.js files are analyzed with JavaScriptAnalyzer:
    • 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
    • No dependency analysis
  • *.ts files are analyzed with TypeScriptAnalyzer:
    • 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
    • No dependency analysis
  • *.proj files are analyzed with XmlAnalyzer:
    • 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)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.proto files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.shproj files are analyzed with XmlAnalyzer:
    • 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)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.cmd files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis


2025-05-06 22:11