[Suggestion] A general AOP inplementation structure, please #3356

Open
MaleDong opened this Issue Jun 6, 2015 · 6 comments

Projects

None yet

6 participants

@MaleDong
MaleDong commented Jun 6, 2015

I know that we can use dynamic AOP structure such as "Dynamic Proxy", however that is a heavy bag for me. And to be honest, any dynamic compiling will need an interface to do AOP's injection. So if I have too many methods for AOP (such as do auto logging), I have to define so many interfaces or virtual methods.....and consider that Microsoft seems to like "trick" in syntax such as C#'s LINQ, Async……It would be better if Microsoft can:

  1. Define an Attribute or an interface that contains: DoBeforeExecute, DoExecute and DoAfterExecute.
  2. Any method, class with the attributes will be automatcially do these steps, when the method is called.
  3. When compiling, these customized attributes will be "injected" into your IL (Something like PostSharp, however PostSharp needs money and you see that this is a very important thing sometimes).

I think NET's framework's everything is good except for a general AOP framework. So it's a necessary thing for Microsoft to add this very important into your framework. Maybe Roslyn would be nicer, if this function is injected. And I also know that is a huge task, so since the open source begins with the latest version of Roysln, Maybe Microsoft can develop these open things for our "second-hand" improve.

Hope this will be the SELL POINT or FEATURE for Visual Studio;)

@dsaf
dsaf commented Jun 10, 2015

"...however PostSharp needs money and you see that this is a very important thing sometimes..."

PostSharp FAQ:

"We allow selected open-source projects to use and redistribute PostSharp for free, even Pro Edition features. Developers using the project will not be required to register or acquire a license as long as they use PostSharp in conjunction with the project."

@MaleDong

@dsaf
First I have to say that I only give PostSharp a sample, which proves that such a function is very important for a general architecture. So this should be a function nested in Visual Studio.
Second, this only due to the open-source projects ;)

@vladkosarev

Yes please! Bake this is into the whole .net stack. That would be a fantastic feature.

@Console32

I would love to see that a feature of the .net stack.

@pootow
pootow commented Nov 5, 2015

PLEASE make this happen!!

@gafter
Member
gafter commented Nov 20, 2015

This will likely happen as a community contribution shortly after #5292 and #5561.

@gafter gafter added the Discussion label Nov 20, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment