.NET AOP微型框架發布 --CleanAOP


CleanAOP--簡介

作者:立地(歐文)
郵箱:jarvin_g@126.com

 

導語:

AOP為Aspect Oriented Programming的縮寫。 意為:面向切面編程。將日志記錄,性能統計,安全控制,事務處理,異常處理等代碼從業務邏輯代碼中划分出來,通過對這些行為的分離,將它們獨立到非指導業務邏輯的方法中,進而改變這些行為的時候不影響業務邏輯的代碼。

一:認識Aop

在日常的編程任務中,很多的代碼都是進行一些通用的功能(日志、檢測、一層處理等等),然后代碼都是機械般的復制粘貼,實際上的業務邏輯代碼只占不多的份額。那么,aop能更好的組織通用的代碼、然后以標記的方式讓某個方法切入,使得業務邏輯和通用代碼分離,使其互不影響。

使用Aop的優點

  • 容易擴展新的切面。
  • 業務邏輯與切面邏輯解耦合。
  • 對修改封閉、對擴展開放。

使用Aop的缺點

  • 對於一些已存在修飾符的方法無法使用,需添加外圍方法包含。

CleanAop支持語言

C#

版本歷史

最新版本:v2.0.0

 

  • v1.0.0:框架搭建完成、支持同步異步、提供Demo切面(錯誤捕獲,log,時間記錄)、前后切面選擇。
  • v2.0.0:
    1. 攔截面切入方式改變,優化代理類生成方式。
    2. 使用AOP的類不能有帶參構造函數bug修復。

哪里下載?

  1. github地址
  2. 網盤下載:

Demo測試案例

  1. 多切面、同步

    [TryCatchAttrubute]
    [LogAopAttrubute]
    [TimeAop]
    public virtual void DoWord()
    {
        throw new Exception("錯誤測試");
        Debug.WriteLine("123");
    }
    

    結果:

    開始捕捉異常([TryCatchAttrubute])
    開始執行([LogAopAttrubute])
    2015/11/5 0:47:19([TimeAop])
    錯誤測試(異常捕獲處理)
    執行中([LogAopAttrubute])
    執行結束,Void DoWord()方法([LogAopAttrubute])
    2015/11/4 23:47:19  [TimeAop])
    
  2. 多切面、異步

    [TryCatchAttrubute]
    [LogAopAttrubute]
    [TimeAop]
    public virtual async Task DoWord()
    {
        await GetValueAsync(1234.5123, 1.01);
        Debug.WriteLine("123");
        throw new Exception("錯誤測試");
        Debug.WriteLine("123");
    }
    

    結果:

    開始捕捉異常([TryCatchAttrubute])
    開始執行([LogAopAttrubute])
    2015/11/5 1:05:23([TimeAop])
    執行中([LogAopAttrubute])
    123
    處理錯誤,錯誤信息為:錯誤測試([TryCatchAttrubute])
    執行結束,System.Threading.Tasks.Task DoWord()方法([LogAopAttrubute])
    2015/11/5 0:05:23([TimeAop])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM