讓我們收集一些提示,以便評估global.asax的正確使用。使用Global.asax的優點和缺點是什麼?
回答
如果您的會話和應用程序初始化代碼非常小且特定於應用程序,則使用起來很簡單。如果您想重用代碼,比如設置URL重寫,重定向或認證規則,使用HttpModule會更有用。 HttpModule可以覆蓋Global.asax文件可以包含的所有內容。他們也可以使用你的.config來移除和添加。
我以前用它來捕獲應用程序級別的錯誤,並在用戶會話到期時執行某些操作。
我也傾向於使用它來提供從web.config讀取值的靜態屬性。
我認爲這樣的東西沒問題,但我不會在那裏放更多的東西。
Global.asax可以繼承自己的繼承httpapplication的類。爲您提供更多選擇,並將您可能擁有的全部代碼放入類庫中。
編輯:有你的HttpApplication類(global.asax父)在一個單獨的類庫中也可以提高可重用性。雖然我同意使用HttpModules更適合於許多任務,但這仍然有許多用途,例如更簡潔的代碼。
我還沒有真正使用Global.asax。我一直使用它在傳統的ASP中是等價的,但主要與數據庫連接字符串等特定配置有關。 .net中的配置使得很多這些事情變得更容易。
但是如果你想實現應用程序和會話級別的事件,這就是你需要去的地方。
這是一個很好的地方抓住會議開始,甚至要求發起。其他人提到了錯誤處理方面的問題,但要小心從非asp.net線程(例如線程池或自定義線程)拋出的異常,因爲它們將繞過global.asax處理程序。就我個人而言,我總是有一個,我認爲它只是管道的一部分。
- 初始化ASP.NET MVC。 :)
- 自定義用戶驗證。
- 依賴注入,如擴展Ninject HttpApplication。
我曾經使用Global.asax來處理諸如錯誤處理等事情,但是,我已經使用HttpModules來替換它,因爲我可以將它從一個項目複製到另一個項目,而無需編輯global.asax。
它是一種僵硬的飲料,只是要小心不要喝太多,你會沒事的。
我用它進行全局錯誤處理,並在mvc中設置路由。雖然你不想在那裏寫全局的page_init代碼。
如果您堅持使用應用程序級別的事件,並使大多數邏輯實際存在於在這些事件中被調用的類中,那麼使用全局構造就沒有問題。
使用Global.asax與HttpModule相比:你會被誘惑編寫難以重用的代碼,因爲它將被綁定到特定的應用程序。
Global.asax中的Session_Start
事件是初始化會話變量的好地方。
- 1. 使用Signalr的優缺點是什麼
- 2. 使用「部分索引」的優點和缺點是什麼?
- 3. 使用Protocol vs Inheritance的優點和缺點是什麼?
- 4. 使用OpenID的優點和缺點是什麼?
- 5. 什麼是使用大型CSS文件的優點和缺點?
- 6. 使用XML模式的優點和缺點是什麼?
- 7. 使用Maven有什麼優點/缺點?
- 8. 使用Autofac什麼是優點和缺點
- 9. has_many和has_one,有什麼優點/缺點?
- 10. GPGPU(通用GPU)開發的優點和缺點是什麼?
- 11. 實施單用戶會話的優點和缺點是什麼?
- 12. JQuery和Glow JavaScript庫的優點和缺點是什麼?
- 13. WPF:使用WPF UserControl的優點/缺點是什麼?
- 14. 使用DB First與Code First的優點/缺點是什麼?
- 15. 使用Drupal最大的缺點和優勢是什麼?
- 16. wxPython的AGW AUI的優點和缺點是什麼?
- 17. 使用服務而不是組件的優點和缺點是什麼?
- 18. MSpec和SpecFlow何時使用哪個?兩者的優點和缺點是什麼?
- 19. F#的優缺點是什麼?
- 20. 在JavaScript中匿名方法的優點和缺點是什麼?
- 21. IDE中實時協作的優點和缺點是什麼?
- 22. 在windows上運行php的優點和缺點是什麼
- 23. Link-Time Code Generation的優點和缺點是什麼? (VS 2005)
- 24. 咖喱函數的優點和缺點是什麼
- 25. 64位/ 32位的低級優點和缺點是什麼?
- 26. Static class vs. Singelton - 每個人的優點和缺點是什麼?
- 27. jQuery中方法鏈接的缺點和優點是什麼?
- 28. 三重數據庫的優點和缺點是什麼?
- 29. XML Schema over Editor工具的優點和缺點是什麼?
- 30. Cocoa框架,庫和包的優點/缺點是什麼?
個人而言,我不認爲需要global.asax標記... – 2008-09-25 20:12:34