Разница между HTTP-модулем и промежуточным ПО OWIN

Я прошел через http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana и задавался вопросом, в чем разница между модулем HTTP и промежуточным программным обеспечением owin. Некоторые указатели, о которых я могу думать,

1) промежуточное ПО Owin отделяет приложение от хоста/сервера. Так что мне больше не нужно подключать мою прикладную логику специально к System.Web

2) промежуточное ПО Owin выполняется в том порядке, в котором они добавлены (не уверен, что то же самое верно для HttpModules, возможно, зависит от того, как я добавил их в web.config)

3) HttpModules помогает мне прикрепить свой код к событиям приложения. Средство промежуточного уровня Owin не зависит от этих событий.

Пожалуйста, дайте мне знать о практическом примере использования модуля OWIN, а не HttpModule.

Еще несколько ссылок, в которых я закончил чтение (я буду продолжать добавлять сюда, когда и когда я сталкиваюсь с новыми) http://www.cloudidentity.com/blog/2013/07/23/securing-a-web-api-with-windows-azure-ad-and-katana/

Обновить: возможно, у этого есть anwer, который я искал http://www.asp.net/aspnet/overview/owin-and-katana/owin-middleware-in-the-iis-integrated-pipeline

Когда следует использовать OWIN Katana?

Спасибо.

Ответ 1

1) и 3) правильно, 2) верно и для HttpModules, поэтому нет никакой разницы. Дело в том, что OWIN не имеет очень сложной инфраструктуры запросов ASP.NET, и она не зависит от хоста. На самом деле вы можете размещать приложения OWIN внутри другого приложения .NET, если вы этого хотите.

Насколько я понимаю, если вы идете с современной инфраструктурой, построенной на ASP.NET MVC, WebApi или такой, забудьте HttpModules. Они являются частью инфраструктуры, построенной давным-давно, и для самых разных проблем, чем те, с которыми сталкиваются современные веб-разработчики. Также обычно намного проще интегрировать различные службы в OWIN (и встроенная аутентификация OAuth и аналогичные hings весьма удобны).

Теперь, если вы все еще разрабатываете веб-приложения с использованием "старой" модели WebForms, HttpModules migth по-прежнему будет лучшим выбором - возможно размещение WebForms в OWIN (и, вероятно, хорошо работает), но преимущества исчезают. Однако, если вы хотите тонкую конечную точку HTTP, OWIN просто потрясающе; он очень легкий и простой по сравнению со старой инфраструктурой ASP.NET. Тот факт, что он не сильно привязан к IIS, - это просто вишня сверху. Лично я все еще использую его с IIS, хотя я могу определенно увидеть использование для легкого HTTP-сервера внутри другой службы. Кроме того, не забывайте, что версия IIS привязана к версии Windows. Использование всех последних функций часто требует обновления сервера в IIS.