All Projects → ArxOne → Mradvice

ArxOne / Mradvice

Licence: mit
.NET aspect weaver (build task under NuGet package)

Programming Languages

assembly
5116 projects

Labels

Projects that are alternatives of or similar to Mradvice

Nconcern
NConcern .NET AOP Framework
Stars: ✭ 139 (-41.1%)
Mutual labels:  advice, aop
Aspect Injector
AOP framework for .NET (c#, vb, etc)
Stars: ✭ 398 (+68.64%)
Mutual labels:  advice, aop
Puresharp
Puresharp is a Framework that provides the essential APIs (AOP, IOC, etc...) to productively build high quality (.NET 4.5.2+ & .NET Core 2.1+) applications through reliability, scalability and performance without no compromise
Stars: ✭ 120 (-49.15%)
Mutual labels:  advice, aop
Plmcodetemplate
给部门制定的代码框架模板
Stars: ✭ 1,871 (+692.8%)
Mutual labels:  aop
Weihanli.common
common tools,methods,extension methods etc... .net 常用工具类,公共方法,常用扩展方法等,基础类库
Stars: ✭ 152 (-35.59%)
Mutual labels:  aop
Click Debounce
Using ASM to handle Android's click debounce, specially a quick double click.
Stars: ✭ 175 (-25.85%)
Mutual labels:  aop
Coldbox Platform
A modern, fluent and conventions based HMVC framework for ColdFusion (CFML)
Stars: ✭ 220 (-6.78%)
Mutual labels:  aop
Npm Module Checklist
Steps to check when starting, working and publishing a module to NPM
Stars: ✭ 125 (-47.03%)
Mutual labels:  advice
Fragmentrigger
💥A powerful library powered by AOP to manage Fragments.(一个基于AOP设计的Fragment管理框架)
Stars: ✭ 2,260 (+857.63%)
Mutual labels:  aop
Umbrella android
Open source Android, iOS and Web app for learning about and managing digital and physical security. From how to send a secure message to dealing with a kidnap. Umbrella has best practice guides in over 40 topics in multiple languages. Used daily by people working in high risk countries - journalists, activists, diplomats, business travelers etc.
Stars: ✭ 171 (-27.54%)
Mutual labels:  advice
Pine
Dynamic java method hook framework on ART.
Stars: ✭ 171 (-27.54%)
Mutual labels:  aop
Virtualxposed
A simple app to use Xposed without root, unlock the bootloader or modify system image, etc.
Stars: ✭ 12,648 (+5259.32%)
Mutual labels:  aop
Htframework
Unity HTFramework, a rapid development framework of client to the unity.
Stars: ✭ 179 (-24.15%)
Mutual labels:  aop
Wxa
🖖 渐进式小程序开发框架。轻量级的渐进式小程序开发框架,专注于小程序原生开发,提供更好的工程化、代码复用能力,提高开发效率并改善开发体验。
Stars: ✭ 149 (-36.86%)
Mutual labels:  aop
Dntframeworkcore
Lightweight and Extensible Infrastructure for Building Web Applications - Web Application Framework
Stars: ✭ 208 (-11.86%)
Mutual labels:  aop
Swoft Im
基于swoft-cloud的微服务架构,最小化拆分粒度,PHP7、多进程、协程、异步任务、mysql连接池、redi连接池、rpc连接池、服务治理、服务注册与发现、Aop切面、全注解
Stars: ✭ 189 (-19.92%)
Mutual labels:  aop
Alipay Sdk Php
🐜支付宝(蚂蚁金服)开放平台第三方 PHP SDK,基于官方 3.3.2 版本,助力支付宝小程序后端开发。
Stars: ✭ 167 (-29.24%)
Mutual labels:  aop
Easyrouter
A simple android framework used to route activity or action with url.
Stars: ✭ 164 (-30.51%)
Mutual labels:  aop
Ray.di
Guice style dependency injection framework for PHP
Stars: ✭ 175 (-25.85%)
Mutual labels:  aop
Bear.sunday
A resource-oriented application framework
Stars: ✭ 230 (-2.54%)
Mutual labels:  aop

Mr. Advice

Summary

Mr. Advice is an open source (and free of charge) alternative to PostSharp (which is still far more advanced, see https://www.postsharp.net).
It intends to inject aspects at build-time. Advices are written in the form of attributes, and marking methods with them makes the pointcut, resulting in a nice and easy aspect injection.
More information about what is an aspect at Wikipedia.

Mr. Advice can weave assemblies for:

  • .NET framework (4 and above) / Mono
  • Silverlight (4 & 5)
  • Universal Windows Platform
  • .NET Standard 2.0

Mr. Advice allows you to:

  • Advise methods or parameters, at assembly, type, method or parameter level
  • Advice types (at assembly startup)
  • Introduce fields
  • Advise Mr. Advice (and this is BIG) at weaving-time (during build step), so you can rename methods as they are advised, add properties, etc.

How it works

It is available as a NuGet Status package. There is also an automatic build with tests at appveyor. The current status is Build status

Philosophy

Currently, MrAdvice won't bring you any aspect out-of-the-box. This means you'll have to write your own aspects (however you can see below other packages using Mr. Advice).
So it brings us to the next chapter, which is...

How to implement your own aspects

In a nutshell

Here is the minimal sample:

public class MyProudAdvice : Attribute, IMethodAdvice
{
    public void Advise(MethodAdviceContext context)
    {
        // do things you want here
        context.Proceed(); // this calls the original method
        // do other things here
    }
}

You then just need to mark the method(s) with the attribute and that's it, your aspect is injected!

[MyProudAdvice]
public void MyProudMethod()
{
}

More details

Your aspects can be injected at assembly, type or method level, simply by setting the attribute:

  • When an aspect is injected at asembly level, all methods of all types are weaved.
  • When the aspect is injected at type level, all of its methods are weaved.
  • And of course, if the aspect is injected on a method, only the method is weaved.

Contributing

Currently, Mr. Advice still exists in two flavors:

  • The brand new version using dnlib, in master branch. This is the branch you can contribute to, by forking and submitting pull requests.
  • A legacy version using Fody and Cecil still exists in fody branch. This version still exists in NuGet, and is available under ID MrAdvice.Fody. However, it is not supported anymore and may disappear in the future.

Other projects using Mr. Advice

NuGet packages:

Miscellaneous projects:

Contact and links

Project owner is picrap, feel free to drop a mail ✉️.
Project company is Arx One, a french company editor of backup software solutions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].