Щодо коментаря вище, 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 та Web Forms все ще працюють виключно через System.Web, і в кінцевому рахунку є план також відключити їх.
З іншого боку, IIS - це хороший, винахідливий хост для веб-серверів. Цілі проблеми продуктивності ASP.NET з використанням IIS мають лише глибоке коріння System.Web
. До останнього часу, коли ви вирішували, як розмістити ваш веб-сервер, у вас були два варіанти:
Тож якби ви хотіли виступу, ви б пішли на варіант самостійного ведення. Якби ви хотіли отримати багато нестандартних функцій, які надає IIS, ви б пішли на IIS, але втратили б продуктивність.
Тепер є третя опція, бібліотека Microsoft на ім'я Helios (поточне кодове ім'я), яка має намір видалити System.Web
з шляху, і дозволяє використовувати IIS більш "чистішим" способом, без зайвих бібліотек або модулів. Зараз Helios перебуває у версії до випуску, і чекає на більше відгуків спільноти, щоб зробити його повністю підтримуваним продуктом Microsoft.
Сподіваюся, що це пояснення прояснює речі для вас краще.
EDIT (вересень 2014 р.):
З розвитком ASP.NET vNext, Katana повільно виходить на пенсію. Версія 3.0, швидше за все, буде останньою основною версією Катани як окремої основи.
Однак усі концепції, введені разом з Katana, інтегруються в ASP.NET vNext, що означає, що модель програмування буде майже однаковою. Цитата з допису на форумі, зробленого Девідом Фоулером (архітектор ASP.NET vNext):
vNext є спадкоємцем Катани (саме тому вони схожі на таке). Катана стала початком відриву від System.Web та більш модульних компонентів для веб-стека. Ви можете бачити vNext як продовження цієї роботи, але йти набагато далі (новий CLR, нова система проектів, нові http-абстракції).
Все, що існує сьогодні в Катані, зробить це шлях у vNext.
EDIT (лютий 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 і прийматимуть внески громад.
EDIT (травень 2015 р.):
Крім того, бренд ASP.NET Web API буде припинено, однак його технологія буде базовою для нового ASP.NET MVC 6. Попередні версії ASP.NET MVC були побудовані шляхом впровадження IHttpHandler, інтерфейсу, визначеного в System.Web
. ASP.NET MVC 6 усуває цю залежність, роблячи її портативною для різних платформ та веб-серверів.
EDIT (травень 2016 р.):
ASP.NET 5 офіційно буде перейменований на ASP.NET Core, починаючи з випуску Candidate 2, який планується випустити найближчим часом. Те саме стосується Entity Framework 7, який буде перейменований на Entity Framework Core. Більш детальну інформацію про офіційне оголошення та причини цього можна знайти в блозі Скотта Хензельмана:
ASP.NET 5 мертвий - Представляємо ASP.NET Core 1.0 та .NET Core 1.0
EDIT (травень 2016 р.):
З випуском Release Candidate 2, ASP.NET Core було змінено таким чином, що майбутні веб-додатки насправді є лише налаштуваннями додатків консолі .NET Core для обробки вхідних HTTP-запитів . Ця концепція робить ASP.NET Core ще більш узгодженим із підходом Microsoft до підтримки архітектури мікросервісів та його реалізації через Azure Service Fabric. Більше інформації можна знайти в офіційному дописі блогу:
Оголошення ASP.NET Core RC2