Extensible tool for weaving .NET assemblies to manipulate IL code during build.
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.
.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.
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.
Extensible tool for weaving .net assemblies
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Abstracts the complex plumbing of MSBuild and Visual Studio APIs, allowing developers to create custom weavers without grappling with low-level build tool intricacies.
Weaves IL directly into assemblies during the build process, ensuring modifications are baked in before execution, which integrates naturally with standard .NET toolchains.
Offers a wide range of community-developed weavers for tasks like property notification and logging, reducing boilerplate and accelerating development.
Provides detailed guides on usage, configuration, and addin development, making it accessible for both novice users and advanced contributors.
Explicitly expects all developers to become patrons for long-term viability, adding an ongoing cost that may not fit all budgets or organizational policies.
IL modifications at build-time can complicate debugging and troubleshooting, as the executed code diverges from source, potentially hiding errors.
Introduces external weaver dependencies and additional build steps, which can slow down builds and increase fragility if weavers are poorly maintained.