Giter VIP home page Giter VIP logo

home's Introduction

Fody

The Home repository is the starting point for people to learn about Fody, the project.

Fody is an extensible tool for weaving .net assemblies. It enables the manipulation of the IL of an assembly as part of a build, which requires a significant amount of plumbing code. This plumbing code involves knowledge of both the MSBuild and Visual Studio APIs. Fody attempts to eliminate that plumbing code through an extensible add-in model. This technique is very powerful, for example you can turn simple properties into full INotifyPropertyChanged implementations, add checks for null arguments, add Method Timings, even make all your string comparisons case insensitive.

Already a Patron? skip past this section

Community backed

Fody requires significant effort to maintain. As such it relies on financial support to ensure its long term viability.

It is expected that all developers using Fody become a Patron on OpenCollective.

See Licensing/Patron FAQ for more information.

Gold Sponsors

Support this project by becoming a Gold Sponsor. A large company logo will be added here with a link to your website.

PostSharp

Silver Sponsors

Support this project by becoming a Silver Sponsor. A medium company logo will be added here with a link to your website.

G-Research Particular Software

Bronze Sponsors

Support this project by becoming a Bronze Sponsor. The company avatar will show up here with a link to your OpenCollective Profile.

Patrons and sponsors

Thanks to all the backers and sponsors! Support this project by becoming a patron.

Main Fody code repository

The codebase of core Fody engine located at https://github.com/Fody/Fody.

Chat on Gitter

The plumbing tasks Fody handles

  • Injection of the MSBuild task into the build pipeline
  • Resolving the location of the assembly and pdb
  • Abstracts the complexities of logging to MSBuild
  • Reads the assembly and pdb into the Mono.Cecil object model
  • Re-applying the strong name if necessary
  • Saving the assembly and pdb

Fody Uses Mono.Cecil and an add-in based approach to modifying the IL of .net assemblies at compile time.

  • No install required to build.
  • Attributes are optional depending on the weavers used.
  • No runtime dependencies need to be deployed.

Documentation and Further Learning

Naming

The name "Fody" comes from the small birds that belong to the weaver family Ploceidae.

Credits

Thanks to the following

home's People

Contributors

aalmada avatar darthwalsh avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar dresel avatar gfody avatar kswoll avatar ltrzesniewski avatar mikernet avatar mrpmorris avatar notanaverageman avatar otiel avatar salfab avatar simoncropp avatar tom-englert avatar x39 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

home's Issues

how to handle charities

i suspect the $3 per month per dev amount should be do-able for a charity. However this doesnt sit right with me, I would prefer they got to use any software they need for free.

Ideally, in OpenCollective, we could manually add users to a given tier, and hence make them honorary patrons for a period of time. This would then make the logistics of the "everyone must be a patron and be verified" simpler. However OpenCollective doesnt have this feature.

As a workaround my current plan would be to donate the equivalent $ amount to them for the year, then they can be monthly patrons with that $.

nugets and open collective

@ltrzesniewski @tom-englert you should not both be admins on open collective. so u can approve you own expenses.

Also i took the liberty of giving you both access to the *.fody nugets. i dont think i have been a blocker on doing nuget deployments. but figured you can both deploy now if you want to. Also the nuget download metrics can sometimes be useful when applying for jobs

MethodDecorator.Fody

MethodDecorator.Fody 异步存在问题,好像没有await 方法体就直接执行后续代码

win32 dll [DllImport("helloword.dll")]

win32 dll [DllImport("helloword.dll")] OR [DllImport("helloword.so")]
helloword.dll OR helloword.so 能否也一起打包进单文件中?
helloword.dll OR helloword.so Can they also be packaged into a single file?

if define atribute for interface its not worked for all calass that implemeted its

hi
if define atribute for interface its not worked for all calass that implemeted its
how can use its for interfaces

public sealed class TransactionScopeAttribute : OnMethodBoundaryAspect
{
    public override void OnEntry(MethodExecutionArgs args)
    {
        args.MethodExecutionTag = new TransactionScope();
    }

    public override void OnExit(MethodExecutionArgs args)
    {
        var transactionScope = (TransactionScope)args.MethodExecutionTag;

        transactionScope.Complete();
        transactionScope.Dispose();
    }

    public override void OnException(MethodExecutionArgs args)
    {
        var transactionScope = (TransactionScope)args.MethodExecutionTag;

        transactionScope.Dispose();
    }
}
[TransactionScope]
public interface ISample
{
    void Method();
}

public class Sample : ISample
{
    public int id { get; set; }
    public void Method()
    {
        Debug.WriteLine("Do some database stuff isolated in surrounding transaction");
    }
}

Please remove the Patron nonsense.

The Patron terms are insane. The entire thing reads like a shallow cash-grab from a broke student.

If you want to earn money from your work, please use a suitable license or offer paid support. Failing any of that, just add a badge to accept donations.

This is an MIT licensed project. You should not charge people to submit a PR.

Open Collective licensing FAQ link not working

At the Open Collective page: https://opencollective.com/fody/contribute/patron-3059
The link is not valid: https://github.com/Fody/Home/blob/master/pages/licensing-patron-faq.md)

The ) character in the end should be removed.

BeforeFieldInit Fody Addin

Now that I'm firmly on the Fody train with NRT null guarding, I figured I could use it to address a few other annoyances I have 😅 I'm going to write a Fody add-in to provide control over the beforefieldinit flag regardless of the presence of static constructor or lack thereof. Just curious if that is something you would be interested in absorbing into your list of addins on here. I'd be happy to maintain/support it as needed.

Cheers!

Tidelift

@tom-englert @ltrzesniewski I am adding Fody to tidelift. Give you are both the most regular contributors, i thought i would see if either of you would like to be involved in providing support?

nugets access

I thought about giving you the same access to my weaver projects as you did in #175, so there is a backup also for these.

While looking at nuget.org I saw that you can also add organizations there - so we could create a "Fody" organization there instead on maintaining every single package.

If you agree I would crate it and update the packages accordingly.

Dependabot couldn't find a <anything>.(cs|vb|fs)proj for this project

Dependabot couldn't find a .(cs|vb|fs)proj for this project.

Dependabot requires a .(cs|vb|fs)proj to evaluate your project's current .NET dependencies. It had expected to find one at the path: /<anything>.(cs|vb|fs)proj.

If this isn't a .NET project, or if it is a library, you may wish to disable updates for it from within Dependabot.

You can mention @dependabot in the comments below to contact the Dependabot team.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.