使用Spring.NET統一ASP.NET異常處理並記錄日誌

來源:互聯網
上載者:User

Spring.NET是Spring Framework移植到.NET平台上的一個架構,與其他.NET架構比較:

 

  • 不僅僅是個DI容器——雖然Spring.NET常被拿來與其他的DI容器如Castle等進行比較,但準確地說,Spring.NET是個應用程式框架,因為它具有豐富的API,可以用在整個應用中,如資料訪問、Web開發和整合測試等等。
  • ASP.NET架構——Spring.NET ASP.NET架構並不是基於ASP.NET MVC的,它最大的好處是提升了生產率:新使用者在探索DI和Spring.NET時常常會尋求某個ASP.NET架構。
  • 面向訊息的中介軟體整合——與Apache ActiveMQ、TIBCO EMS及MSMQ的整合簡化了使用這些架構的工作量,這是通過抽取出低層析的安全執行緒問題並使用基於POCO的編程模型實現的。
  • 面向方面的編程(AOP)——Spring.NET提供了一個可擴充的AOP架構,該架構套件含了如切入點(pointcut)、通知(advice)等概念,同時還提供了便於使用的通知實現,如日誌、異常轉換、參數驗證、緩衝與自動化的重試(retry)等等。
  • ADO.NET程式庫——ADO.NET輔助程式庫抽取並簡化了ADO.NET的資料來源操作,這是通過削減大量的樣板代碼並提供了基於模板的編程模型實現的。
  • 運算式語言——Spring.NET提供了一個運算式語言,可在運行期查詢並操縱對象圖。
  • 整合測試——支援整合測試以簡化資料訪問等操作。
  • 模組化——將特性分布在不同的DLL中,這樣開發人員就可以選取自己所需要的DLL而無需使用整個架構。
  • 企業支援——Spring.NET由SpringSource(前不久被VMWare收購)出品。由於有了大公司的支援,這樣那些想要使用Spring.NET的公司無疑吃了個定心丸。
  • 計劃中的基於代碼的容器配置——目前的Spring.NET只支援基於XML的配置,而Castle則支援XML和“類型映射”風格的API兩種方式。在下一版中,Spring.NET將提供類似於Spring JavaConfig(已融合到了Spring 3.0中)的基於代碼的配置方式。

 

在面向方面(AOP)方面,Spring.NET也做了很好的支援,比如/*ASP.NET網站異常處理並記錄日誌*/這個功能可以這樣實現:

 

 

  • 搭配使用Log4net在ASP.NET發生異常的時候記錄錯誤記錄檔——可以參考這篇文章。Log4net是一個開源高效能日誌記錄組件,log4net有很多好處,例如按日期記錄日誌,按目錄記錄,限制檔案大小等等。
  • 使用Spring.NET Throw Service——通過實現Spring.NET Spring.Aop.IThrowsAdvice 介面,當異常發生的時候,調用自己實現的方法(例如調用Log4net記錄錯誤記錄檔,給管理員傳送簡訊息等等),注意實現IThrowsAdvice介面並不意味這個異常已經被處理,仍舊會繼續傳播。如果想要在 Throw Advice 處理時中止應用程式的處理流程,作法是拋出其它的異常。具體做法可以參考這篇文章。
  • Spring.NET現在最高版本是1.3,將來計劃繼續發展到Spring.NET 2.0,屆時將全面支援.NET4.0的功能,相信在AOP方面會有更多功能呈現。有關Spring.NET最新動向,可以看InfoQ這個文章:對話Spring.NET

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.