Skip to content

Reduce the environmental footprint of your C# software programs

License

Notifications You must be signed in to change notification settings

Romain1Lambert/ecoCode-csharp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EcoCode on NuGet EcoCode on NuGet

EcoCode-C#

ecoCode is a collective project aiming to reduce environmental footprint of software at the code level. The goal of the project is to provide a list of static code analyzers to highlight code structures that may have a negative ecological impact: energy and resources over-consumption, "fatware", shortening terminals' lifespan, etc.

ecoCode is based on evolving catalogs of good practices, for various technologies.

This set of Roslyn analyzers implements these catalogs as rules for scanning your C# projects.

⚠️ This is still a very early stage project. Any feedback or contribution will be highly appreciated. Please refer to the contribution section.

License: GPL v3 Contributor Covenant

🚀 Getting Started

There are several ways you can use the ecoCode analyzers in your .Net projects:

  1. As a NuGet package : https://www.nuget.org/packages/EcoCode/.
  2. As a Visual Studio extension : https://marketplace.visualstudio.com/items?itemName=greencodeinitiative.ecoCode
  3. Coming soon : as a VS Code extension.
  4. Coming soon : as a .Net CLI Tool to scan existing code bases.
  5. Coming soon : a documentation on how to set up SonarScanner for .Net and display the EcoCode warnings in SonarQube.

🧩 Compatibility

Both the EcoCode NuGet package and Visual Studio extension target .Net Standard 2.0 and can be used in a wide range of projects. See Microsoft documentation for details about the supported .Net Frameworks in .Net Standard 2.0.

🌿 Rules

Id Description Severity Enabled Code fix
EC69 Don’t call loop invariant functions in loop conditions ⚠️ ✔️
EC72 Don’t execute SQL queries in loops ⚠️ ✔️
EC75 Don’t concatenate strings in loops ⚠️ ✔️
EC81 Specify struct layouts ⚠️ ✔️ ✔️
EC82 Variable can be made constant ℹ️ ✔️ ✔️
EC83 Replace Enum ToString() with nameof ⚠️ ✔️ ✔️
EC84 Avoid async void methods ⚠️ ✔️ ✔️
EC85 Make type sealed ℹ️ ✔️ ✔️
EC86 GC.Collect should not be called ⚠️ ✔️
EC87 Use collection indexer ⚠️ ✔️ ✔️
EC88 Dispose resource asynchronously ⚠️ ✔️ ✔️

🤝 Contribution

See contribution on the central ecoCode repository.

🤓 Main contributors

See main contributors on the central ecoCode repository.

About

Reduce the environmental footprint of your C# software programs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 81.0%
  • PowerShell 19.0%