Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Core
  3. Fody

Fody

NOASSERTIONC#6.9.3

Extensible tool for weaving .NET assemblies to manipulate IL code during build.

GitHubGitHub
4.5k stars460 forks0 contributors

What is Fody?

Fody is an extensible tool for weaving .NET assemblies that manipulates Intermediate Language (IL) code during the build process. It solves the problem of writing complex plumbing code to interact with MSBuild and Visual Studio APIs by providing a modular add-in system. This allows developers to automatically modify compiled assemblies for purposes like adding logging, implementing INotifyPropertyChanged, or other cross-cutting concerns.

Target Audience

.NET developers and teams who need to automate IL-level modifications to their assemblies as part of their build pipeline, particularly those building libraries or applications that benefit from aspect-oriented programming (AOP) techniques.

Value Proposition

Developers choose Fody because it dramatically reduces the boilerplate and complexity required for build-time code weaving, offering a robust ecosystem of pre-built weavers and a flexible framework for creating custom ones. Its integration with standard .NET build tools makes it a reliable and maintainable solution for assembly manipulation.

Overview

Extensible tool for weaving .net assemblies

Use Cases

Best For

  • Automatically implementing INotifyPropertyChanged in WPF or Xamarin projects
  • Adding logging or performance tracing to methods without modifying source code
  • Injecting dependency injection container initialization code
  • Simplifying aspect-oriented programming (AOP) in .NET applications
  • Reducing boilerplate code for common patterns like lazy loading or singleton enforcement
  • Creating custom weavers for project-specific IL transformations

Not Ideal For

  • Projects requiring runtime code weaving or dynamic AOP via proxies (e.g., using Castle DynamicProxy)
  • Teams with strict zero-overhead build pipelines where IL manipulation could introduce complexity or slowdowns
  • Organizations unwilling to adopt the patronage model for open-source tooling due to budget or policy constraints
  • Applications where source-level debugging is critical, as IL modifications can obscure the original code flow

Pros & Cons

Pros

Extensible Add-in Model

Abstracts the complex plumbing of MSBuild and Visual Studio APIs, allowing developers to create custom weavers without grappling with low-level build tool intricacies.

Seamless Build Integration

Weaves IL directly into assemblies during the build process, ensuring modifications are baked in before execution, which integrates naturally with standard .NET toolchains.

Rich Weaver Ecosystem

Offers a wide range of community-developed weavers for tasks like property notification and logging, reducing boilerplate and accelerating development.

Comprehensive Documentation

Provides detailed guides on usage, configuration, and addin development, making it accessible for both novice users and advanced contributors.

Cons

Patronage Financial Burden

Explicitly expects all developers to become patrons for long-term viability, adding an ongoing cost that may not fit all budgets or organizational policies.

Debugging and Maintenance Overhead

IL modifications at build-time can complicate debugging and troubleshooting, as the executed code diverges from source, potentially hiding errors.

Build Process Dependency

Introduces external weaver dependencies and additional build steps, which can slow down builds and increase fragility if weavers are poorly maintained.

Frequently Asked Questions

Quick Stats

Stars4,543
Forks460
Contributors0
Open Issues3
Last commit1 day ago
CreatedSince 2012

Tags

#nuget#msbuild#dotnet#aop#code-generation#build-tool

Included in

.NET21.2kCore21.2kXamarin1.9k
Auto-fetched 1 day ago

Related Projects

AutoMapperAutoMapper

A convention-based object-object mapper in .NET.

Stars10,187
Forks2,398
Last commit6 days ago
HumanizerHumanizer

Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities

Stars9,938
Forks1,067
Last commit7 days ago
FluentValidationFluentValidation

A popular .NET validation library for building strongly-typed validation rules.

Stars9,765
Forks1,276
Last commit13 days ago
AngleSharpAngleSharp

:angel: The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications.

Stars5,542
Forks599
Last commit8 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub