继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

WebActivator - 不修改Global.asa也能加入Application_Start

Bobo117116
关注TA
已关注
手记 1
粉丝 1
获赞 0

研究NuGet Server過程發現的新東西,不修改Global.asa就能加入Application_Start()/Appliation_Shutdown()事件的新做法---WebActivator!!

這是微軟NuGet開發小組成員David Ebbo所寫的一個程式模組,實現不修改Global.asa就加入Application_Start()/Shutdown()事件,目的在解決網站專案安裝程式庫的一項難題。部分程式庫有在Application_Start()階段加入初始化程序的需求,例如: 讀取設定檔、建立共用物件、處理Assembly參照... 等,一但引用時漏了此步驟,便會導致運作不正常。(我永遠記得第一次玩log4net的情景,就因忘了加Application_Start(),大半天搞不出來氣到想咬人,最後找到91這篇同病相憐的KB才頓然開悟)

安裝程式元件還需要修改Application_Start()才能使用,或多或少提高安裝複雜度,同時也增加安裝失敗的可能(以log4net為例,至少有兩個人跌倒過 XD)。而對NuGet自動安裝來說,自動修改Global.asa加入Application_Start()不但困難,而且還可能搞壞原本程式邏輯,因此最理想的做法在程式元件內部涵蓋這段邏輯,不要勞煩安裝程序或開發人員動手。透過在網站引用WebActivator.dll及在元件程式中加入適當的宣告,就能實現這種不沾手式的事件掛載法。(註: 但要ASP.NET 4.0才支援)

想當然爾,David是NuGet開發者,取得WebActivator的最簡單方法就是搓搓神燈,Add Library Package Reference並輸入webactivator。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP