Yukarıdaki yorum ile ilgili olarak, OWIN bir çerçeve değildir. OWIN, web sunucularının ve web uygulamalarının ayrıştırılması ve ASP.NET uygulamalarının daha önce desteklenmeyen ortamlara taşınmasına izin vermek için nasıl oluşturulması gerektiğine dair bir spesifikasyondur.
OWIN'den önce, ASP.NET uygulaması oluştururken, System.Web
derlemede büyük bağımlılık nedeniyle doğası gereği IIS'ye bağlıydınız .
System.Web
ASP'den (.NET sürümü olmayan) beri var olan ve dahili olarak ihtiyacınız olmayan birçok şeyi (Web Formları veya URL Yetkilendirme gibi) içerdiği, varsayılan olarak her istekte çalışan, böylece kaynakları tüketen ve ASP yapma .NET uygulamaları genelde Node.js gibi benzerlerinden çok daha yavaştır.
OWIN'in kendisi herhangi bir araç, kütüphane veya başka bir şeye sahip değildir. Bu sadece bir özelliktir.
Öte yandan Katana, mevcut ASP.NET çerçeveleri ile OWIN özellikleri arasında bir köprü oluşturmak için yapılmış tamamen geliştirilmiş bir çerçevedir. Şu anda Katana, aşağıdaki ASP.NET çerçevelerini OWIN'e başarıyla uyarlamıştır:
ASP.NET MVC ve Web Formları hala yalnızca System.Web aracılığıyla çalışıyor ve uzun vadede bunları da ayırmak için bir plan var.
Öte yandan IIS, web sunucuları için iyi ve becerikli bir ana bilgisayardır. IIS kullanan tüm ASP.NET performans sorunlarının System.Web
yalnızca derin kökleri vardır . Yakın zamana kadar, web sunucunuzu nasıl barındıracağınıza karar verirken iki seçeneğiniz vardı:
Dolayısıyla, bir performans istiyorsanız, kendi kendine barındırılan bir seçenek tercih edersiniz. IIS'nin sunduğu pek çok kullanıma hazır özellik istiyorsanız, IIS'yi tercih edersiniz ancak performansınızı kaybedersiniz.
Şimdi, üçüncü bir seçenek var: Helios (geçerli kod adı) adlı bir Microsoft kütüphanesi System.Web
, yoldan kaldırmayı ve gereksiz kitaplıklar veya modüller olmadan IIS'yi daha "daha temiz" bir şekilde kullanmanıza izin veriyor. Helios şimdi yayın öncesi sürümde ve tamamen desteklenen Microsoft ürününü oluşturmak için daha fazla topluluk geri bildirimi bekliyor.
Umarım bu açıklama sizin için işleri daha iyi açıklar.
EDIT (Eylül 2014):
ASP.NET vNext geliştirilirken, Katana yavaş yavaş emekli oluyor. Sürüm 3.0, büyük olasılıkla bağımsız bir çerçeve olarak Katana'nın son büyük sürümü olacak.
Bununla birlikte, Katana ile sunulan tüm kavramlar ASP.NET vNext'e entegre edilmiştir, yani programlama modeli hemen hemen aynı olacaktır. David Fowler (ASP.NET vNext Mimarı) tarafından yapılan forum gönderisinden alıntı :
vNext, Katana'nın halefidir (bu yüzden çok benziyorlar). Katana, System.Web'den ve web yığını için daha modüler bileşenlere olan kopmanın başlangıcıydı. VNext'i bu çalışmanın devamı olarak görebilir, ancak daha da ileri gidebilirsiniz (yeni CLR, yeni Proje Sistemi, yeni http soyutlamaları).
Bugün Katana'da var olan her şey onu vNext'e dönüştürecek.
EDIT (Şub 2015):
ASP.NET vNext artık ASP.NET 5 olarak bilinir ve .NET Core 5'in üzerine inşa edilecektir. .NET Core 5, ASP.NET 5 ve .NET Native hedeflerini desteklemek için tasarlanmış .NET Framework'ün hafif faktörlü sürümüdür. . Ancak ASP.NET 5, .NET Core 4.6 ile birlikte kullanılabilmesi gereken .NET Framework 4.6 tarafından da desteklenecektir. Hem ASP.NET 5 hem de .NET Core 5, MIT kapsamında lisanslanacak ve topluluk katkılarını kabul edecektir.
EDIT (Mayıs 2015):
Ayrıca, ASP.NET Web API markası kullanımdan kaldırılacak, ancak yeni ASP.NET MVC 6 için teknoloji temel alınacaktır. Önceki ASP.NET MVC sürümleri, içinde tanımlanan bir arabirim olan IHttpHandler uygulanarak oluşturulmuştur System.Web
. ASP.NET MVC 6 bu bağımlılığı ortadan kaldırır ve çeşitli platformlara ve web sunucularına taşınabilir hale getirir.
EDIT (Mayıs 2016):
ASP.NET 5, yakında piyasaya sürülmesi planlanan Sürüm Adayı 2'den başlayarak resmi olarak ASP.NET Core olarak yeniden adlandırılacaktır. Aynı şey Entity Framework Core olarak yeniden adlandırılacak Entity Framework 7 için de geçerli olacak. Resmi duyuru ve arkasındaki nedenler hakkında daha fazla bilgi Scott Hanselman'ın blog gönderisinde bulunabilir:
ASP.NET 5 öldü - ASP.NET Core 1.0 ve .NET Core 1.0'ın tanıtımı
EDIT (Mayıs 2016):
Release Candidate 2'nin piyasaya sürülmesiyle, ASP.NET Core, gelecekteki web uygulamalarının gelen HTTP isteklerini işlemek için yalnızca .NET Core konsol uygulamaları kurulumu olacak şekilde değiştirildi . Bu kavram, ASP.NET Core'u Microsoft'un mikro hizmet mimarisi desteği ve Azure Service Fabric aracılığıyla uygulamasıyla benimsediği yaklaşımla daha uyumlu hale getirir. Daha fazla bilgi resmi blog gönderisinde bulunabilir:
ASP.NET Core RC2'yi Duyurmak