让我们收集一些提示,以便评估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. 使用“部分索引”的优点和缺点是什么?
- 2. 什么是使用大型CSS文件的优点和缺点?
- 3. 使用Protocol vs Inheritance的优点和缺点是什么?
- 4. 使用XML模式的优点和缺点是什么?
- 5. 使用OpenID的优点和缺点是什么?
- 6. 使用Maven有什么优点/缺点?
- 7. 使用Autofac什么是优点和缺点
- 8. has_many和has_one,有什么优点/缺点?
- 9. GPGPU(通用GPU)开发的优点和缺点是什么?
- 10. JQuery和Glow JavaScript库的优点和缺点是什么?
- 11. WPF:使用WPF UserControl的优点/缺点是什么?
- 12. 使用Drupal最大的缺点和优势是什么?
- 13. wxPython的AGW AUI的优点和缺点是什么?
- 14. 使用服务而不是组件的优点和缺点是什么?
- 15. MSpec和SpecFlow何时使用哪个?两者的优点和缺点是什么?
- 16. 在JavaScript中匿名方法的优点和缺点是什么?
- 17. 64位/ 32位的低级优点和缺点是什么?
- 18. IDE中实时协作的优点和缺点是什么?
- 19. Link-Time Code Generation的优点和缺点是什么? (VS 2005)
- 20. 有多重遗传的优点和缺点是什么?
- 21. Cocoa框架,库和包的优点/缺点是什么?
- 22. 三重数据库的优点和缺点是什么?
- 23. 让Google为我主持jQuery的优点和缺点是什么?
- 24. 在windows上运行php的优点和缺点是什么
- 25. 咖喱函数的优点和缺点是什么
- 26. jQuery中方法链接的缺点和优点是什么?
- 27. Static class vs. Singelton - 每个人的优点和缺点是什么?
- 28. Liftweb Comet的优点和缺点是什么?
- 29. 使用git-svn有什么优缺点?
- 30. 使用Meteor-Roles有什么优点和缺点?
个人而言,我不认为需要global.asax标记... – 2008-09-25 20:12:34