AspectF offers you separation of concern, without the bells and whistles. You can put Aspects into your code without using any third party framework, or DynamicProxy or ContextBoundObject or any other mumbo jumbo. It's plain simple C# code, clever use of Delegate in a fluent manner.
Here's an example of AspectF usage:
public void InsertCustomerTheEasyWay(string firstName, string lastName, int age,
Dictionary<string, string> attributes)
{
AspectF.Define
.Log(Logger.Writer, "Inserting customer the easy way")
.HowLong(Logger.Writer, "Starting customer insert", "Inserted customer in {1} seconds")
.Retry()
.Do(() =>
{
CustomerData data = new CustomerData();
data.Insert(firstName, lastName, age, attributes);
});
}
Learn details about how to create aspects from my blog: http://msmvps.com/omar
Read the CodeProject article to get more details: AspectF Fluent way to add Aspects into your code
Get the latest source code from "source" tab.
Download latest releases from "downloads" tab.