DevStats is a WPF application for analyzing C# repositories.
It scans your entire solution or project folder, gathers file statistics, detects auto-generated code, and presents the results in a clean, interactive dashboard.
Optional .gitignore support lets you exclude ignored files from the analysis when desired.
- Repository-wide analysis of all files in a C# project
- Optional
.gitignoresupport to skip ignored files and folders - File size statistics with histograms and tables
- Auto-generated file detection and exclusion
- Visual dashboard with charts and sortable tables
- Markdown export for documentation and sharing
- Plugin system to extend analysis with custom C# modules
- .NET 9.0 or higher
- Windows operating system
- Visual Studio 2022 (recommended for building from source)
This application uses ClickOnce for a simple installation and automatic updates.
Click the link below to download the setup.exe installer.
Your browser or Windows may show a security warning because the application is not from the Microsoft Store. This is expected.
- If you see a warning from Windows SmartScreen:
- Click "More info".
- Then, click "Run anyway".
The installer will then download the application and its dependencies (.NET Desktop Runtime if needed) and launch DevStats. A shortcut will be added to your Start Menu.
The application will automatically check for and install new updates each time it starts.
- Launch DevStats from the Start Menu or desktop shortcut.
- Click the Scan Folder button.
- Select a folder containing a source code project.
- View the generated statistics and charts on the dashboard.
If you want to build the project yourself, you will need:
- Visual Studio 2022 with the following workload:
- .NET desktop development
Steps:
- Clone the repository:
git clone https://github.com/AlexNek/DevStats.git
- Open the
DevStats.slnsolution file in Visual Studio. - Build the solution (Build > Build Solution or
Ctrl+Shift+B). Or Build the project from command line:
dotnet build- Run the project (Debug > Start Debugging or
F5).
This repository is configured with AppVeyor for continuous integration and deployment:
- Build: When code is pushed to the
masterbranch, AppVeyor builds the solution. - Publish: It then publishes the project as a ClickOnce application.
- Deploy to
clickoncebranch: The build script force-pushes the published application files to theclickoncebranch. This branch is the live update location for all installed applications. - Create GitHub Release: AppVeyor also creates a new release on the Releases page and attaches a
.zipfile of the published artifacts as a backup.
DevStats uses appsettings.json for configuration. Available settings:
| Setting | Type | Description |
|---|---|---|
ExcludeAutogeneratedFiles |
Boolean | Exclude auto-generated files from statistics |
AutogeneratedFilePatterns |
String[] | Patterns used to detect generated files |
HistogramMaxBins |
Integer | Maximum number of bins used for the file size histogram |
AutogeneratedFileScanBytes |
Integer | Number of bytes scanned when determining if a file is generated |
UseGitIgnore |
Boolean | If enabled, files/folders listed in .gitignore will be excluded |
DevStats includes a plugin architecture for extending functionality. You can add new statistics, customize analysis, or integrate with other tools.
-
Implement the
ICardPlugininterface. -
Create the XAML and ViewModel for your plugin’s UI.
-
Register your plugin in the
Pluginslist:var plugins = new List<ICardPlugin> { new FileExtensionCountCardPlugin(_appSettings), new CsStatisticsCardPlugin(_appSettings) };
-
Build the project and run the application.
Note: This version uses a static plugin list for simplicity. A future enhancement could allow dynamic loading of external DLLs.
- Select your C# repository (solution or project folder).
- Adjust settings, including whether to apply
.gitignore. - Run analysis to view file extension stats, size distributions, and C#-specific metrics.
- Export Markdown reports for documentation or sharing.
We welcome contributions:
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a pull request
This project is licensed under the MIT License – see the LICENSE file for details.
Check the Releases page for the latest updates and features.
- V1.0.0: initial release

