小编Jon*_*ing的帖子

AspectF(一种流畅的Aspect框架)是一种类似AOP的设计,可以毫不费力地使用吗?

Omar Al Zabir正在寻找"一种更简单的AOP风格编码方式".

他创建了一个名为AspectF的框架,这是一种"将Aspects添加到代码中的流畅而简单的方法".

它不是真正的AOP,因为它不进行任何编译时或运行时编织,但它是否实现了与AOP相同的目标?

以下是AspectF用法的示例:

    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);
                });
    }
Run Code Online (Sandbox Code Playgroud)

以下是作者的一些帖子,进一步阐明了AspectF的目标:

根据作者的说法,我认为AspectF的设计不是AOP的替代品,而是一种实现"分离关注并保持代码良好和干净"的方法.

一些想法/问题:

  • 关于使用这种编码风格作为项目的任何想法都在增长?
  • 它是一个可扩展的架构吗?
  • 性能问题?
  • 可维护性与真正的AOP解决方案相比如何?

c# aop aspects

9
推荐指数
1
解决办法
1524
查看次数

为什么在F#Interactive中打印5000个数字会导致StackOverflowException?

在Windows 7上测试F#3.1

fsi.PrintLength < - 5000 ;;

[1..5000] ;;

由于StackOverflowException,进程终止.检测到会话终止.按Enter重新启动.

在Mono(F#4.0)上,似乎没有这样的限制.

f# f#-interactive

7
推荐指数
1
解决办法
326
查看次数

标签 统计

aop ×1

aspects ×1

c# ×1

f# ×1

f#-interactive ×1