Fody
ModuleInit
Fody | ModuleInit | |
---|---|---|
12 | 1 | |
4,237 | 110 | |
0.5% | -0.9% | |
8.7 | 10.0 | |
18 days ago | almost 2 years ago | |
C# | C# | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Fody
-
Metalama.Compiler VS Fody - a user suggested alternative
2 projects | 7 Dec 2023
While Fody works at binary (MSIL) level, Metalama Compiler is a fork of Roslyn and allows for AST transformations, at the C# level.
-
Metalama VS Fody - a user suggested alternative
2 projects | 7 Dec 2023
-
C# Equivalent of Python Decorators
As an alternative to PostSharp you may take a look at Fody.
-
What does Realm.Fody do?
Working with IL weaving as part of the building process is quite complex though, and this is where Fody enters into the picture. Fody is an extensible tool that allows to simplify the weaving process by taking care of all the heavy lifting.
- Automated logging
-
Code generator like plop.js for dotnet
Fodyplugins can modify exists code during compilation.
-
What do think is the most advanced C# concept that most developers will never get?
I've seen coworkers using Fody for such MSIL weaving stuff, but I have a bad feeling about this. It's a little bit like jailbreaking your phone. Cool stuff ahead, but voids warranty.
-
EntityFramework installed in customers' GAC causing bugs in our software
Implement your own (in C++/outside dotnet/CLR) IHostAssemblyManager stuff, this is the "replace/bypass how assemblies are loaded" trick. There used to be a prebuilt thing on the old old codepages, but I can't find it. I wonder if newer code/assemblie weavers such as Fody can do the similar thing?
- Coding classes be like
-
Debugging hard to track transform changes. Can I pick your brains on tool design approach?
Great place to start is https://github.com/Fody/Fody and existing 'addins' - fody does it at compile time - generally quite useful for your own code if you want to dip into aspect oriented programming.
ModuleInit
-
What does Realm.Fody do?
Module initializers are a kinda obscure feature of .NET that allows writing initialization code for an assembly. They allow libraries to do one-time initialization when loaded, without the need for the user to explicitly call anything. It's a quite niche feature, but unfortunately it was not exposed in C#, and that led to users finding their own way of using it, like with ModuleInit.Fody. Given the need for it, Microsoft then decided to add it in supported platform starting from C# 9.0.
What are some alternatives?
Mono.Cecil - Cecil is a library to inspect, modify and create .NET programs and libraries.
JustDecompile Engine - The decompilation engine of JustDecompile
Aspect Injector - AOP framework for .NET (c#, vb, etc)
csharplang - The official repo for the design of the C# programming language
dnSpy
ILSpy - .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
ILRepack - Open-source alternative to ILMerge
Realm Xamarin - Realm is a mobile database: a replacement for SQLite & ORMs
NConcern - NConcern .NET AOP Framework
PropertyChanged - Injects INotifyPropertyChanged code into properties at compile time
Harmony - A library for patching, replacing and decorating .NET and Mono methods during runtime
Gt.SubProcess - A library to run sub-processes on .net