aws / aws-lambda-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
csproj
fs
fsproj
txt
cshtml
razor
shproj
editorconfig
proj
props
cmd
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.

main66607 LOC (45%) 838 files
test41574 LOC (28%) 576 files
generated4870 LOC (3%) 47 files
build and deployment2402 LOC (1%) 119 files
other31093 LOC (21%) 934 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
fs
razor
fsproj
cshtml
proj
props
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 838 files match defined criteria (66,607 LOC, 100.0% vs. main code):
    • 646 *.cs files (30,826 LOC)
    • 12 *.css files (19,094 LOC)
    • 6 *.js files (8,724 LOC)
    • 62 *.fs files (1,939 LOC)
    • 16 *.ps1 files (1,914 LOC)
    • 22 *.razor files (1,610 LOC)
    • 44 *.fsproj files (1,025 LOC)
    • 2 *.xml files (468 LOC)
    • 22 *.cshtml files (444 LOC)
    • 1 *.proj files (212 LOC)
    • 1 *.yaml files (192 LOC)
    • 1 *.psd1 files (89 LOC)
    • 2 *.psm1 files (50 LOC)
    • 1 *.props files (20 LOC)
  • " *.cs" is biggest, containing 46.28% of LOC.
  • " *.props" is smallest, containing 0.03% of LOC.


*.cs30826 LOC (46%) 646 files
*.css19094 LOC (28%) 12 files
*.js8724 LOC (13%) 6 files
*.fs1939 LOC (2%) 62 files
*.ps11914 LOC (2%) 16 files
*.razor1610 LOC (2%) 22 files
*.fsproj1025 LOC (1%) 44 files
*.xml468 LOC (<1%) 2 files
*.cshtml444 LOC (<1%) 22 files
*.proj212 LOC (<1%) 1 file
*.yaml192 LOC (<1%) 1 file
*.psd189 LOC (<1%) 1 file
*.psm150 LOC (<1%) 2 files
*.props20 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
fs
fsproj
shproj
cmd
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 ".*[.][Tt]est/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]UnitTests/.*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/[Tt]ests/.*".
  • 576 files match defined criteria (41,574 LOC, 62.4% vs. main code):
    • 318 *.cs files (26,856 LOC)
    • 42 *.ps1 files (7,882 LOC)
    • 115 *.csproj files (2,677 LOC)
    • 46 *.fs files (1,387 LOC)
    • 45 *.fsproj files (1,067 LOC)
    • 2 *.psd1 files (630 LOC)
    • 2 *.psm1 files (535 LOC)
    • 1 *.ps1xml files (432 LOC)
    • 2 *.yaml files (73 LOC)
    • 2 *.shproj files (24 LOC)
    • 1 *.cmd files (11 LOC)
  • " *.cs" is biggest, containing 64.6% of LOC.
  • " *.cmd" is smallest, containing 0.03% of LOC.


*.cs26856 LOC (64%) 318 files
*.ps17882 LOC (18%) 42 files
*.csproj2677 LOC (6%) 115 files
*.fs1387 LOC (3%) 46 files
*.fsproj1067 LOC (2%) 45 files
*.psd1630 LOC (1%) 2 files
*.psm1535 LOC (1%) 2 files
*.ps1xml432 LOC (1%) 1 file
*.yaml73 LOC (<1%) 2 files
*.shproj24 LOC (<1%) 2 files
*.cmd11 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 "[/][/][ ]*".
  • 47 files match defined criteria (4,870 LOC, 7.3% vs. main code). All matches are in *.cs files.


*.cs4870 LOC (100%) 47 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 ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]bat".
  • 119 files match defined criteria (2,402 LOC, 3.6% vs. main code):
    • 117 *.csproj files (2,215 LOC)
    • 2 *.sh files (187 LOC)
  • " *.csproj" is biggest, containing 92.21% of LOC.
  • " *.sh" is smallest, containing 7.79% of LOC.


*.csproj2215 LOC (92%) 117 files
*.sh187 LOC (7%) 2 files
Other Code
txt
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 ".*/[.]gitignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.]svg".
  • 934 files match defined criteria (31,093 LOC, 46.7% vs. main code):
    • 708 *.json files (18,801 LOC)
    • 171 *.md files (10,792 LOC)
    • 36 *.txt files (730 LOC)
    • 1 *.svg files (543 LOC)
    • 17 *.ps1 files (225 LOC)
    • 1 *.bat files (2 LOC)
  • " *.json" is biggest, containing 60.47% of LOC.
  • " *.bat" is smallest, containing 0.01% of LOC.


*.json18801 LOC (60%) 708 files
*.md10792 LOC (34%) 171 files
*.txt730 LOC (2%) 36 files
*.svg543 LOC (1%) 1 file
*.ps1225 LOC (<1%) 17 files
*.bat2 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)
  • *.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
  • *.fs 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
  • *.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
  • *.razor files are analyzed with HtmlAnalyzer:
    • 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
  • *.fsproj 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
  • *.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
  • *.cshtml files are analyzed with HtmlAnalyzer:
    • 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
  • *.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
  • *.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
  • *.psd1 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
  • *.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
  • *.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


2025-05-03 22:08