Что касается комментария выше, OWIN не является основой. OWIN - это спецификация того, как должны создаваться веб-серверы и веб-приложения, чтобы разделить их и разрешить перемещение приложений ASP.NET в среды, которые ранее не поддерживались.
До OWIN при создании приложения ASP.NET вы были привязаны к IIS из-за сильной зависимости от System.Web
сборки.
System.Web
это то, что существует со времен ASP (не версия .NET) и содержит много вещей, которые вам могут даже не понадобиться (например, веб-формы или авторизация URL-адресов), которые по умолчанию выполняются при каждом запросе, что потребляет ресурсы и делает ASP Приложения .NET в целом работают намного медленнее, чем его аналоги, такие как, например, Node.js.
Сам OWIN не имеет никаких инструментов, библиотек или чего-либо еще. Это просто спецификация.
Katana, с другой стороны, является полностью разработанной средой, созданной для создания моста между текущими средами ASP.NET и спецификацией OWIN. На данный момент Katana успешно адаптировала следующие платформы ASP.NET для OWIN:
ASP.NET MVC и веб-формы по-прежнему работают исключительно через System.Web, и в долгосрочной перспективе планируется также разделить их.
С другой стороны, IIS является хорошим, находчивым хостом для веб-серверов. Все проблемы производительности ASP.NET с использованием IIS имеют глубокие корни System.Web
только в. Вплоть до недавнего времени, когда вы решали, как разместить свой веб-сервер, у вас было два варианта:
Поэтому, если вы хотите получить представление, вы можете выбрать вариант с собственным хостом. Если вы хотите использовать множество встроенных функций IIS, вы бы выбрали IIS, но потеряли бы производительность.
Теперь есть 3-й вариант, библиотека Microsoft с именем Helios (текущее кодовое имя), которая намеревается удалитьSystem.Web
, и которая позволяет вам использовать IIS более «чистым» способом, без каких-либо ненужных библиотек или модулей. Helios в настоящее время находится в предварительной версии и ждет большего количества отзывов сообщества, чтобы сделать его полностью поддерживаемым продуктом Microsoft.
Надеюсь, что это объяснение проясняет ситуацию лучше для вас.
РЕДАКТИРОВАТЬ (сентябрь 2014 г.):
В процессе разработки ASP.NET vNext Катана постепенно выходит на пенсию. Версия 3.0, скорее всего, станет последним основным выпуском Katana в качестве автономного фреймворка.
Тем не менее, все концепции, представленные в Katana, интегрируются в ASP.NET vNext, а это означает, что модель программирования будет практически одинаковой. Цитата из сообщения на форуме, сделанного Дэвидом Фаулером (Архитектор ASP.NET vNext):
vNext является преемником Katana (именно поэтому они так похожи). Katana стала началом отказа от System.Web и более модульных компонентов для веб-стека. Вы можете видеть vNext как продолжение этой работы, но идти гораздо дальше (новый CLR, новая система проектов, новые абстракции http).
Все, что существует сегодня в Катане, попадет в vNext.
РЕДАКТИРОВАТЬ (февраль 2015 г.):
ASP.NET vNext теперь известен как ASP.NET 5 и будет построен на основе .NET Core 5. .NET Core 5 - это облегченная факторинговая версия .NET Framework, предназначенная для поддержки целей ASP.NET 5 и .NET Native. , Однако ASP.NET 5 также будет поддерживаться .NET Framework 4.6, который должен стать доступным вместе с .NET Core 5. Как ASP.NET 5, так и .NET Core 5 будут лицензированы в рамках MIT и будут принимать участие сообщества.
РЕДАКТИРОВАТЬ (май 2015 г.):
Кроме того, торговая марка ASP.NET Web API будет прекращена, однако ее технология станет основой для нового ASP.NET MVC 6. Предыдущие версии ASP.NET MVC были созданы с использованием интерфейса IHttpHandler, определенного в System.Web
. ASP.NET MVC 6 устраняет эту зависимость, делая его переносимым на различные платформы и веб-серверы.
РЕДАКТИРОВАТЬ (май 2016 г.):
ASP.NET 5 будет официально переименован в ASP.NET Core, начиная с Release Candidate 2, выпуск которого запланирован в ближайшее время. То же самое будет применяться к Entity Framework 7, который будет переименован в Entity Framework Core. Более подробную информацию об официальном объявлении и причинах этого можно найти в блоге Скотта Хансельмана:
ASP.NET 5 мертв - Представляем ASP.NET Core 1.0 и .NET Core 1.0
РЕДАКТИРОВАТЬ (май 2016 г.):
С выпуском Release Candidate 2 ASP.NET Core был изменен таким образом, чтобы будущие веб-приложения были фактически просто консольными приложениями .NET Core для обработки входящих HTTP-запросов . Эта концепция делает ASP.NET Core еще более согласованным с подходом Microsoft к поддержке архитектуры микросервисов и ее реализации через Azure Service Fabric. Дополнительную информацию можно найти в официальном сообщении в блоге:
Объявление о ASP.NET Core RC2