EcoCode 1.0.7

Suggested Alternatives

Creedengo

Additional Details

EcoCode has been renamed to Creedengo

There is a newer version of this package available.
See the version list below for details.
dotnet add package EcoCode --version 1.0.7
                    
NuGet\Install-Package EcoCode -Version 1.0.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EcoCode" Version="1.0.7">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EcoCode" Version="1.0.7" />
                    
Directory.Packages.props
<PackageReference Include="EcoCode">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EcoCode --version 1.0.7
                    
#r "nuget: EcoCode, 1.0.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=EcoCode&version=1.0.7
                    
Install EcoCode as a Cake Addin
#tool nuget:?package=EcoCode&version=1.0.7
                    
Install EcoCode as a Cake Tool

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 ⚠️ ✔️ ✔️

🤝 Contribution

See contribution on the central ecoCode repository.

🤓 Main contributors

See main contributors on the central ecoCode repository.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.5.3 340 1/1/2025 1.5.3 is deprecated because it is no longer maintained.
1.5.3-beta1 103 1/1/2025 1.5.3-beta1 is deprecated because it is no longer maintained.
1.5.2 467 11/9/2024 1.5.2 is deprecated because it is no longer maintained.
1.5.1 299 8/1/2024 1.5.1 is deprecated because it is no longer maintained.
1.5.0 147 7/13/2024 1.5.0 is deprecated because it is no longer maintained.
1.5.0-beta1 107 7/13/2024 1.5.0-beta1 is deprecated because it is no longer maintained.
1.4.0 167 6/24/2024 1.4.0 is deprecated because it is no longer maintained.
1.3.0 134 6/24/2024 1.3.0 is deprecated because it is no longer maintained.
1.3.0-beta4 117 6/23/2024 1.3.0-beta4 is deprecated because it is no longer maintained.
1.3.0-beta3 115 6/8/2024 1.3.0-beta3 is deprecated because it is no longer maintained.
1.3.0-beta2 101 6/8/2024 1.3.0-beta2 is deprecated because it is no longer maintained.
1.3.0-beta1 126 6/8/2024 1.3.0-beta1 is deprecated because it is no longer maintained.
1.2.0 154 6/4/2024 1.2.0 is deprecated because it is no longer maintained.
1.2.0-beta6 113 6/3/2024 1.2.0-beta6 is deprecated because it is no longer maintained.
1.2.0-beta5 121 6/2/2024 1.2.0-beta5 is deprecated because it is no longer maintained.
1.2.0-beta4 130 6/1/2024 1.2.0-beta4 is deprecated because it is no longer maintained.
1.2.0-beta3 118 5/30/2024 1.2.0-beta3 is deprecated because it is no longer maintained.
1.2.0-beta2 123 5/30/2024 1.2.0-beta2 is deprecated because it is no longer maintained.
1.2.0-beta1 127 5/19/2024 1.2.0-beta1 is deprecated because it is no longer maintained.
1.1.0 239 5/19/2024 1.1.0 is deprecated because it is no longer maintained.
1.1.0-beta3 116 5/19/2024 1.1.0-beta3 is deprecated because it is no longer maintained.
1.1.0-beta2 114 5/18/2024 1.1.0-beta2 is deprecated because it is no longer maintained.
1.1.0-beta1 112 5/18/2024 1.1.0-beta1 is deprecated because it is no longer maintained.
1.0.8 139 5/13/2024 1.0.8 is deprecated because it is no longer maintained.
1.0.7 121 5/13/2024 1.0.7 is deprecated because it is no longer maintained.
1.0.6 185 5/4/2024 1.0.6 is deprecated because it is no longer maintained.
1.0.6-beta3 130 4/29/2024 1.0.6-beta3 is deprecated because it is no longer maintained.
1.0.6-beta2 105 4/28/2024 1.0.6-beta2 is deprecated because it is no longer maintained.
1.0.6-beta1 138 4/27/2024 1.0.6-beta1 is deprecated because it is no longer maintained.
1.0.5 147 4/26/2024 1.0.5 is deprecated because it is no longer maintained.
1.0.4 224 4/16/2024 1.0.4 is deprecated because it is no longer maintained.
1.0.3 181 4/11/2024 1.0.3 is deprecated because it is no longer maintained.
1.0.2 182 4/3/2024 1.0.2 is deprecated because it is no longer maintained.
1.0.1 1,136 3/23/2024 1.0.1 is deprecated because it is no longer maintained.
1.0.1-beta8 175 3/23/2024 1.0.1-beta8 is deprecated because it is no longer maintained.
1.0.1-beta7 180 3/17/2024 1.0.1-beta7 is deprecated because it is no longer maintained.
1.0.1-beta5 180 3/14/2024 1.0.1-beta5 is deprecated because it is no longer maintained.
1.0.1-beta4 156 3/14/2024 1.0.1-beta4 is deprecated because it is no longer maintained.
1.0.1-beta3 139 3/14/2024 1.0.1-beta3 is deprecated because it is no longer maintained.
1.0.1-beta2 132 3/14/2024 1.0.1-beta2 is deprecated because it is no longer maintained.