Saya telah membaca banyak artikel tentang proyek OWIN dan Katana, tetapi saya tidak dapat memperoleh gambaran keseluruhannya.
Untuk pengembang web biasa yang menggunakan ASP.NET:
- Apa sebenarnya OWIN dan masalah apa yang dipecahkannya (dengan kata sederhana). Apa hubungannya dengan IIS?
- Apakah OWIN menggantikan IIS? jika tidak, dalam situasi apa OWIN paling cocok?
- Bagaimana OWIN dapat membantu saya dalam proyek pekerjaan sehari-hari saya?
- Bagaimana OWIN dapat membantu saya dalam proyek peningkatan diri?
Jawaban:
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):
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
sumber
Jika saya harus mendefinisikan OWIN untuk diri saya sendiri, itu akan menjadi: "Ide-ide terbaik dari komunitas dev web Ruby dan Node.js, datang ke .NET"
Tapi ini tidak akan membantu pengembang ASP.NET. Definisi saya sendiri akan menjadi sesuatu seperti:
OWIN mendefinisikan antarmuka standar antara .NET web server dan aplikasi web. Tujuan dari antarmuka OWIN adalah untuk memisahkan server dan aplikasi. Jika saya harus menjawab pertanyaan yang Anda ajukan, maka ini dia:
OWIN adalah spesifikasi antarmuka. Ini memisahkan aplikasi web dari IIS.
Jika Anda menggunakan komponen siap pakai (yang merupakan Katana), maka beberapa bagian dari fungsionalitas aplikasi jauh lebih mudah untuk diimplementasikan dibandingkan dengan ASP.NET yang lama. Otentikasi dengan penyedia identitas pihak ketiga (Facebook, Twitter) adalah salah satu contohnya.
sumber
Saya akan mencoba menutupinya dari perspektif praktis.
Katana adalah nama proyek untuk mengimplementasikan OWIN di Microsoft .
Apa sebenarnya OWIN dan masalah apa yang dipecahkannya (dengan kata sederhana). Apa hubungannya dengan IIS? OWIN ( Open Web Interface untuk .NET ) adalah standar ( Spesifikasi OWIN ) dan Katana adalah .NET library, Anda bisa mendapatkan nuget dari sini . OWIN dan Katana menjadi agak sinonim di web.
Sebelum OWIN, satu-satunya pilihan Anda adalah
IIS
dengan OWIN, Anda dapat menggunakan aplikasi lain (yang memiliki titik masuk) sebagai server web.Apakah OWIN menggantikan IIS? jika tidak, dalam situasi apa OWIN paling cocok?
Tidak itu tidak menggantikan IIS, Anda dapat menggunakan OWIN dan IIS ada
Microsoft.Owin.Host.SystemWeb
nuget untuk itu . Paling cocok jika Anda ingin mengoptimalkan / mengubah cara penanganannya di IIS, atau Anda ingin membuat server web kustom Anda dari misalkan Aplikasi Formulir Windows.Bagaimana OWIN dapat membantu saya dalam proyek pekerjaan sehari-hari saya?
Ini bisa mengurangi biaya server Anda karena server web Anda tidak perlu lagi berjalan di IIS (Windows) (server Windows lebih mahal daripada yang berbasis Unix, dan Anda bisa menjalankannya di Aplikasi Konsol di bawah Mono di Linux).
Bagaimana OWIN dapat membantu saya dalam proyek peningkatan diri?
Belajar
Microsoft.Owin
(dan perpustakaan OWIN terkait lainnya) akan meningkatkan pengetahuan Anda tentang bagaimana komunikasi HTTP antara klien dan server web bekerja.Bagus dibaca jika Anda ingin lebih memahami apa itu Katana dan OWIN.
sumber
Apa itu OWIN?
OWIN adalah singkatan dari Open Web Interface untuk .NET. OWIN adalah spesifikasi yang menjelaskan bagaimana kerangka kerja pengembangan web seperti ASP.NET MVC harus berinteraksi dengan server web. Tujuan OWIN adalah memisahkan aplikasi web dari server web dengan memperkenalkan lapisan abstraksi. Abstraksi semacam itu memungkinkan Anda untuk menjalankan aplikasi yang sama di semua server web yang mendukung OWIN. Selain itu, ini menyederhanakan sistem secara keseluruhan karena lapisan abstraksi dapat menyediakan infrastruktur yang ringan untuk menampung aplikasi. IIS menyediakan beragam fitur untuk aplikasi web. Namun, aplikasi web mungkin tidak memerlukan semua fitur ini. Mungkin cukup bagi mereka untuk memiliki kemampuan pemrosesan HTTP minimal. Tuan rumah yang kompatibel dengan OWIN dapat menyediakan lingkungan hosting seperti itu untuk aplikasi ini. Bahkan, Anda dapat menentukan pipa modul yang digunakan selama pemrosesan permintaan. Pipa OWIN adalah rantai komponen yang kompatibel dengan OWIN yang melaluinya permintaan.
Apa itu Katana?
Katana adalah seperangkat komponen yang dibuat oleh Microsoft menggunakan spesifikasi OWIN. Beberapa komponen ini termasuk API Web, ASP.NET Identity, dan SignalR.
Di atas adalah kutipan dari Artikel CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm
sumber