Давайте соберем несколько советов для оценки соответствующего использования global.asax.Каковы преимущества и недостатки использования Global.asax?
ответ
Это прост в использовании, если ваш код инициализации сеанса и приложения очень мал и зависит от приложения. Использование HttpModule более полезно, если вы хотите повторно использовать код, например, настроить правила для перезаписи URL-адресов, перенаправления или авторизации. HttpModule может охватывать все, что может сделать файл Global.asax. Их также можно легко удалить и добавить с помощью .config.
Я использовал его раньше, чтобы поймать ошибки на уровне приложения и сделать что-то, когда истекает срок действия пользователя.
Я также часто использую его для предоставления статических свойств, которые считывают значения из web.config.
Я думаю, что это нормально для таких вещей, хотя я бы не стал гораздо больше, чем там.
Global.asax может наследовать от вашего собственного класса, который наследует httpapplication. Дает вам больше опций, а также добавляет основную часть кода, который может иметь глобальный в библиотеку классов.
EDIT: Наличие вашего класса HttpApplication (parent.asax parent) в отдельной библиотеке классов также может способствовать повторному использованию. Хотя я согласен с тем, что использование HttpModules лучше подходит для многих задач, но у этого все еще есть много применений, для одного, более чистого кода.
Я действительно не использовал Global.asax. Я использовал его эквивалентно в классическом ASP все время, но это в основном связано с определенными конфигурациями, такими как строки подключения к базе данных и т. Д. Конфигурация в .net делает многое из этого намного проще.
Но если вы хотите реализовать события приложения и уровня сеанса, это то, куда вам нужно идти.
Это прекрасное место, чтобы захватить начало сеанса и даже запросить инициирование. Другие упоминали об аспекте обработки ошибок, хотя будьте осторожны с исключениями, вызванными потоками nonasp.net (например, threadpool или пользовательским потоком), поскольку они будут обходить обработчик global.asax. Лично у меня всегда есть один, я думаю, что это просто часть сантехники.
- Инициализация ASP.NET MVC. :)
- Пользовательская аутентификация пользователя.
- Зависимость впрыска, как удлинение Ninject HttpApplication.
Раньше я использовал Global.asax для таких вещей, как обработка ошибок и т. Д., Однако я с тех пор перешел на использование HttpModules, чтобы заменить это, поскольку я могу скопировать его из одного проекта в другой без редактирования global.asax.
Его жесткий напиток, просто будьте осторожны, чтобы не пить слишком много, и все будет хорошо.
Я использую его для обработки глобальных ошибок и настройки маршрутов в mvc. Однако вы не хотите писать глобальный код page_init.
Если вы придерживаетесь событий на уровне приложений и фактически используете большую часть логики в классах, которые вызываются только во время этих событий, у вас не будет проблем с использованием глобальных конструкций.
Кон с использованием Global.asax по сравнению с HttpModule: у вас возникнет соблазн написать код, который трудно использовать, потому что он будет слишком привязан к конкретному приложению.
Событие Session_Start
в Global.asax является злым хорошим местом для инициализации переменных сеанса.
- 1. Каковы преимущества/недостатки использования Maven?
- 2. Каковы преимущества/недостатки использования CTE?
- 3. Каковы преимущества и недостатки использования DLL?
- 4. Каковы преимущества и недостатки использования OpenID?
- 5. Каковы преимущества и недостатки использования прокси-сервера?
- 6. Каковы преимущества и недостатки использования линз?
- 7. Каковы преимущества и недостатки использования XML-схем?
- 8. Каковы преимущества и недостатки повторного использования AFHTTPRequestOperationManager?
- 9. Каковы преимущества и недостатки использования контейнера IOC?
- 10. Каковы преимущества и недостатки использования ARC?
- 11. Каковы преимущества и недостатки использования FXLM и без использования FXML?
- 12. Каковы преимущества/недостатки использования синонимов против представления?
- 13. Каковы преимущества и недостатки NHibernate?
- 14. Каковы преимущества и недостатки метапрограммирования?
- 15. Каковы преимущества и недостатки использования Phonegap и Titanium?
- 16. Каковы преимущества и недостатки использования GroovyClassLoader и GroovyShell
- 17. Каковы преимущества и недостатки различных механизмов анимации
- 18. Каковы преимущества и недостатки Perl для ООП?
- 19. Преимущества/недостатки использования триггеров MySQL
- 20. Преимущества и недостатки использования ReactJS
- 21. Преимущества и недостатки использования раскадровки?
- 22. Преимущества и недостатки NHibernate
- 23. Каковы преимущества и недостатки SIMBL и mach_star?
- 24. Каковы преимущества и недостатки LinkedHashMaps и LinkedHashSets?
- 25. Каковы недостатки и преимущества использования NoCount в службах Reporting Services?
- 26. Каковы преимущества и недостатки использования api для вашего веб-приложения.
- 27. Каковы преимущества и недостатки использования configChanges = «ориентация» для устройств Android?
- 28. Каковы преимущества и недостатки использования UdpClient над Socket
- 29. Каковы преимущества и недостатки использования Swift для Mac-приложения?
- 30. Каковы преимущества и недостатки использования классов, которые отличаются только конструкторами?
Лично я не думаю, что необходим тэг global.asax ... –
Справедливо, я тоже удалю этот комментарий – Larsenal