Mengenai komentar di atas, OWIN bukan kerangka kerja. OWIN adalah spesifikasi tentang bagaimana server web dan aplikasi web harus dibangun untuk memisahkan mereka dan memungkinkan perpindahan aplikasi ASP.NET ke lingkungan yang tidak didukung sebelumnya.
Sebelum ke OWIN, ketika membangun aplikasi ASP.NET, Anda secara inheren terikat dengan IIS karena sangat bergantung pada System.Web
perakitan.
System.Web
adalah sesuatu yang telah ada sejak ASP (bukan versi .NET) dan secara internal mengandung banyak hal yang bahkan mungkin tidak Anda perlukan (seperti Formulir Web atau Otorisasi URL), yang secara default semua berjalan pada setiap permintaan, sehingga menghabiskan sumber daya dan membuat ASP Aplikasi .NET pada umumnya banyak lebih lambat daripada rekan-rekannya seperti Node.js misalnya.
OWIN sendiri tidak memiliki alat, perpustakaan atau apa pun. Itu hanya spesifikasi.
Katana di sisi lain, adalah kerangka kerja yang dikembangkan sepenuhnya dibuat untuk membuat jembatan antara kerangka ASP.NET saat ini dan spesifikasi OWIN. Saat ini, Katana telah berhasil mengadaptasi kerangka ASP.NET berikut untuk OWIN:
ASP.NET MVC dan Formulir Web masih berjalan secara eksklusif melalui System.Web, dan dalam jangka panjang ada rencana untuk memisahkan mereka juga.
Di sisi lain, IIS adalah tuan rumah yang bagus dan banyak akal untuk server web. Seluruh masalah kinerja ASP.NET menggunakan IIS hanya memiliki akar yang dalam System.Web
. Hingga saat ini, ketika memutuskan bagaimana Anda akan meng-host server web Anda, Anda memiliki dua opsi:
Jadi, jika Anda menginginkan kinerja, Anda akan memilih opsi self-host. Jika Anda menginginkan banyak fitur out-of-the-box yang disediakan IIS, Anda akan menggunakan IIS tetapi Anda akan kehilangan kinerja.
Sekarang, ada opsi ke-3, perpustakaan Microsoft yang bernama Helios (nama kode saat ini) yang bermaksud untuk dihilangkan System.Web
, dan memungkinkan Anda untuk menggunakan IIS pada cara yang lebih "bersih", tanpa perpustakaan atau modul yang tidak perlu. Helios sekarang dalam versi pra-rilis, dan sedang menunggu umpan balik komunitas untuk membuatnya sepenuhnya didukung produk Microsoft.
Semoga penjelasan ini menjelaskan hal-hal yang lebih baik untuk Anda.
EDIT (Sep 2014):
Dengan ASP.NET vNext sedang dalam pengembangan, Katana perlahan-lahan mulai pensiun. Versi 3.0 kemungkinan besar akan menjadi rilis besar terakhir Katana sebagai kerangka kerja mandiri.
Namun, semua konsep yang diperkenalkan dengan Katana sedang diintegrasikan ke dalam ASP.NET vNext, yang berarti bahwa model pemrograman akan hampir sama. Kutipan dari posting forum yang dibuat oleh David Fowler (Arsitek ASP.NET vNext):
vNext adalah penerus Katana (itulah sebabnya mereka terlihat sangat mirip). Katana adalah awal dari terobosan dari System.Web dan komponen modular yang lebih banyak untuk tumpukan web. Anda dapat melihat vNext sebagai kelanjutan dari pekerjaan itu tetapi melangkah lebih jauh (CLR baru, Sistem Proyek baru, abstraksi http baru).
Segala sesuatu yang ada hari ini di Katana akan membuatnya menjadi vNext.
EDIT (Feb 2015):
ASP.NET vNext sekarang dikenal sebagai ASP.NET 5 dan akan dibangun di atas .NET Core 5. .NET Core 5 adalah versi ringan dari .NET Framework, yang dirancang untuk mendukung tujuan ASP.NET 5 dan .NET Native . Namun, ASP.NET 5 akan didukung oleh .NET Framework 4.6 juga, yang harus tersedia bersama dengan .NET Core 5. Baik ASP.NET 5 dan .NET Core 5 akan dilisensikan di bawah MIT dan akan menerima kontribusi masyarakat.
EDIT (Mei 2015):
Selain itu, merek ASP.NET Web API akan dihentikan, namun teknologinya akan menjadi dasar untuk ASP.NET MVC 6. Versi ASP.NET MVC sebelumnya dibangun dengan mengimplementasikan IHttpHandler, sebuah antarmuka yang didefinisikan dalam System.Web
. ASP.NET MVC 6 menghilangkan ketergantungan itu, menjadikannya portabel untuk berbagai platform dan server web.
EDIT (Mei 2016):
ASP.NET 5 secara resmi akan diubah namanya menjadi ASP.NET Core dimulai dengan Release Candidate 2 yang dijadwalkan akan segera dirilis. Hal yang sama akan berlaku untuk Entity Framework 7 yang akan diubah namanya menjadi Entity Framework Core. Informasi lebih lanjut tentang pengumuman resmi dan alasan di baliknya dapat ditemukan di posting blog Scott Hanselman:
ASP.NET 5 sudah mati - Memperkenalkan ASP.NET Core 1.0 dan .NET Core 1.0
EDIT (Mei 2016):
Dengan rilis Release Candidate 2, ASP.NET Core telah dimodifikasi sehingga aplikasi web masa depan sebenarnya hanya .NET Core aplikasi konsol setup untuk memproses permintaan HTTP yang masuk . Konsep ini membuat ASP.NET Core bahkan lebih selaras dengan pendekatan yang telah diambil Microsoft dengan dukungan arsitektur layanan mikro dan implementasinya melalui Azure Service Fabric. Informasi lebih lanjut tentang dapat ditemukan di posting blog resmi:
Mengumumkan ASP.NET Core RC2