Saya baru mengenal OWIN dan Katana. Saya benar-benar tidak mengerti mengapa saya harus menggunakan OWIN, sementara saya bisa menggunakannya IIS
. Sederhananya, pertanyaan saya adalah: Apa yang hilang jika saya tidak belajar OWIN dan menggunakan IIS untuk situs web saya?
Saya mencari di Google tetapi tidak ada penjelasan sederhana. Ada beberapa informasi di sini , tetapi mereka menggunakan beberapa frasa jargon jadi saya tidak bisa memahaminya.
Jawaban:
Di asp.net WebApi v2, pipa OWIN menjadi default. Ini akhirnya akan menjadi pipa standar di bawah proyek asp.net apa pun.
Saya tidak bisa mengatakannya lebih baik daripada yang tertulis di sini: http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
Bagian "Antarmuka Web Terbuka untuk .NET (OWIN)" menjelaskan dengan sempurna tujuan OWIN.
Tanpa OWIN, bit asp.net digabungkan dengan cara IIS berkomunikasi dengan aplikasi. OWIN mengabstraksi server web dan komponen framework. Itu berarti bahwa kode aplikasi Anda sekarang akan mengetahui antarmuka OWIN, tetapi bukan dari server web yang melayani permintaan.
Sebagai imbalannya, aplikasi dapat lebih mudah dipindahkan antara host dan berpotensi seluruh platform / sistem operasi. Misalnya, kemampuan untuk meng-host aplikasi di konsol atau proses apa pun memungkinkan Mono untuk menyimpannya tanpa upaya ... (Raspberry Pi siapa pun)
Aspek kedua adalah ia berfungsi sebagai saluran pipa.
Anda dapat menyambungkan middlewares (dan sebanyak yang Anda inginkan) antara server web dan aplikasi Anda.
Ini memungkinkan lebih banyak solusi modular. Anda dapat mengembangkan middlewares yang dapat didistribusikan kembali yang dapat memengaruhi permintaan / tanggapan yang datang ke / dari aplikasi Anda, tetapi memisahkan modul-modul ini dari kode aplikasi.
Untuk meyakinkan diri Anda tentang manfaat dari pendekatan modular ini, lihatlah paket nuget yang tersedia untuk OWIN: http://www.nuget.org/packages?q=owin
Banyak dari paket-paket ini yang sebelumnya merupakan fungsi asp.net inti, dan telah diekstraksi sebagai middleware.
Misalnya, menambahkan dukungan untuk masuk menggunakan berbagai penyedia OAuth menjadi masalah infrastruktur (middleware) dan tidak perlu menjadi bagian dari kode aplikasi Anda lagi:
...
Atau jika Anda ingin mengganti semua gambar dari situs web Anda secara otomatis dengan gambar-gambar imut, Anda juga dapat melakukannya secara transparan:
https://github.com/serbrech/Owin.Catify
EDIT: Sekarang tersedia sebagai paket nuget : Owin.Catify !
sumber
Ya itu betul. OWIN adalah antarmuka dan Katana adalah implementasi antarmuka OWIN oleh Microsoft . Oleh karena itu kita mendengar 2 kata ini (OWIN / KATANA) bersama-sama dan seringkali kita menjadi bingung antara perbedaan antara 2 istilah ini. Jadi, Katana adalah implementasi Microsoft dari antarmuka OWIN. Katakanlah ada perusahaan lain bernama BIG-BOSS yang ingin membuat implementasi OWIN mereka sendiri, mereka dapat melakukan itu dan menamai implementasinya sebagai 'BATANA' dan mengiklankan frasa seperti OWIN / BATANA.
Jadi, mengapa OWIN !!!
Pikirkan tentang negara di mana satu-satunya kendaraan yang tersedia untuk bergerak adalah truk. Tidak ada lagi. Jika Anda ingin membeli kendaraan, Anda akan membeli truk. Ya, itu digunakan untuk melayani yang baik tetapi orang-orang mulai menyadari bahwa, mereka tidak memerlukan truk sepanjang waktu, terutama ketika mereka ingin pergi menonton film atau membeli susu, mengendarai truk berat tidak hanya membutuhkan bahan bakar tinggi, tetapi juga menambah stres saat mengemudi. Tapi ya, jika mereka ingin membawa banyak barang berat, truk melayani tujuannya dengan sangat baik.
Kemudian, Pemerintah negara itu datang dengan spesifikasi untuk pembuat kendaraan. Spesifikasi adalah sebagai berikut:
Jadi, berdasarkan spesifikasi ini, siapa pun dapat membuat kendaraan sesuai dengan kebutuhan yang berbeda dan mereka dapat memberi nama kendaraan mereka sesuai. Karena itu, Sedan, Truk Pikap, SUV, VAN, dll. Semua jenis kendaraan muncul di pasar. Jika seseorang tidak perlu membawa barang-barang berat sepanjang waktu, lebih membutuhkan kendaraan hanya untuk pergi ke tempat kerja, ia dapat membeli sedan kecil. Seseorang dapat membeli SUV jika dia membutuhkan lebih banyak daya.
Berdasarkan contoh di atas, kita dapat mengatakan bahwa aplikasi Web ASP.NET kami menggunakan System.Web Assembly yang sangat dimuat (seperti truk) dan jika kita ingin membuat Aplikasi Web kecil di mana tujuan kita hanya untuk melayani beberapa file berdasarkan pada set kecil permintaan, kita terikat untuk menggunakan perakitan System.Web (truk) yang berat itu. Sekarang, OWIN muncul. OWIN adalah seperangkat spesifikasi (kita bisa menyebutnya antarmuka) yang mendefinisikan Server. Berdasarkan spesifikasi itu, seseorang (seperti pembuat kendaraan) dapat membuat berbagai jenis server berdasarkan domain masalah / kebutuhan aplikasi tertentu. Microsoft membuat Implementasi mereka sendiri untuk OWIN bernama Katana dengan cara yang sama yang dapat melayani Web API. Karena WebAPI adalah teknologi ringan, yang tidak perlu Sistem full blown.
Sekarang, jika Anda bertanya, ' Apakah saya membutuhkannya?' Jawabannya adalah, 'Itu tergantung pada kebutuhan Anda akan kinerja'. Jika Anda tidak keberatan mengendarai truk Anda bahkan untuk menonton film, maka, mungkin Anda tidak perlu OWIN. Tetapi jika Anda merasa bahwa, mobil Sedan ringan adalah semua yang Anda butuhkan untuk mengemudi dalam kota, jarak kecil, menonton film .. dll .. ya, Anda dapat memeriksa implementasi OWIN apa yang tersedia di pasar. Katana adalah salah satu implementasi dari OWIN, oleh karena itu Anda dapat memeriksa apa yang ditawarkan Katana. Bukan hanya Katana, jika perusahaan lain mengimplementasikan OWIN sesuai dengan Domain spesifik (misalnya, server untuk Alat Kesehatan yang akan mengunduh informasi obat terbaru) dan jika Anda seorang dokter, mungkin, Anda dapat memeriksa penerapan OWIN tersebut. Selain itu, Anda sendiri dapat membuat implementasi OWIN Anda sendiri dengan menargetkan ceruk tertentu.
Dalam hal aplikasi web, jika Anda adalah pengembang Web sederhana, mengembangkan Situs Web khusus untuk klien Anda, mungkin, Anda tidak perlu khawatir tentang implementasi kustom OWIN, karena IIS akan melayani Anda secara seimbang. Jika Anda membangun proyek API Web, Anda akan mendapatkan templat berbasis Katana yang siap dibuat dari Visual Studio -> Proyek Baru, sehingga Anda tidak perlu khawatir tentang apa pun selain mempelajari teknik spesifik Katana. Pada saat ini, Katana belum cukup matang untuk sepenuhnya menggantikan kebutuhan IIS untuk ASP.NET MVC, tetapi mungkin, di masa depan itu akan terjadi.
Lalu Kapan saya mungkin perlu menulis Implementasi OWIN saya sendiri?
Jawaban: Ya, misalnya, Anda telah mengembangkan aplikasi Windows yang seharusnya berjalan sebagai server di latar belakang dan mendengarkan nomor port XXXX. Server Anda hanya akan merespons beberapa Permintaan seperti ini:
Itu saja. Dan tidak ada lagi. Jadi, mengapa Anda memerlukan server web IIS lengkap untuk tugas kecil ini? Anda dapat membuat implementasi OWIN Anda sendiri dalam kasus itu. (Mungkin, Anda akan menggunakan Katana untuk itu)
Ok, jadi saya mengerti bahwa, jika saya ingin membuat situs web ASP.NET MVC, saya tidak memiliki opsi untuk menggantikan IIS, lalu mengapa saya harus tahu tentang Katana saat ini?
Jawaban: Meskipun Katana tidak cukup matang untuk menggantikan kebutuhan IIS sehingga Anda dapat meng-host situs web ASP.NET MVC Anda secara langsung di Katana, tetapi Katana mengimplementasikan banyak antarmuka OWIN yang keren sehingga Anda dapat memanfaatkan penggunaan sisi-sisi fitur tersebut. di samping. Sebagai contoh, mengizinkan pengguna Anda untuk login menggunakan Facebook, Google, Twitter dll itu tidak mudah sebelumnya. Katana memberi Anda banyak kait (sebagai perangkat tengah) sehingga Anda dapat membiarkan Katana merawat Otentikasi Berbasis Media Sosial eksternal dengan mudah tanpa menulis kode pipa ledeng. Ada banyak manfaat lain untuk menggunakan Katana yang mungkin Anda ketahui saat mulai menggunakan teknologi ini.
sumber
what is lightweight part, i mean if Katana is compared to IIS, by which means it is lightweight ( say it does not do step#1,2,3 etc.. , but IIS does that.
Versi sederhana dari jawaban itu adalah bahwa Katana gong untuk sepenuhnya menggantikan perakitan System.Web dan pipa ASP.NET lama, yang memberi Anda fleksibilitas yang lebih baik (gunakan dalam skenario lebih banyak dan gunakan hanya bagian yang Anda suka) dan kinerja.
Jadi semua orang harus menonton evolusinya sekarang dan siap untuk beralih ketika akhirnya selesai.
Di bawah ini adalah diagram yang saya gambar untuk mengisi rincian yang Microsoft gagal sertakan dalam artikel ini .
OWIN adalah standar yang memungkinkan kerangka kerja aplikasi berjalan di atasnya dan melupakan semua yang ada di bawahnya. Di sisi lain, OWIN sendiri menggunakan berbagai adaptor host untuk memastikannya dapat berbicara dengan server web yang mendasarinya (IIS dan banyak lainnya).
Saya sekarang bekerja dengan penulis server web Jexus untuk menyelidiki bagaimana kita dapat menulis adaptor host untuk menjembatani OWIN / Katana dan Jexus. Kami sangat senang mengetahui bahwa OWIN fleksibel dan sangat dapat dikustomisasi.
Referensi: http://blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers/
sumber
System.Web
.OWIN dirancang untuk memisahkan server web dari kerangka kerja Anda. Itu dapat membuat aplikasi ringan dan portabel untuk kerangka kerja dan server pencampuran.
Dan Katana adalah implementasi komponen OWIN dari Microsoft.
Sejak beberapa tahun terakhir Microsoft membuat alat web lebih gesit dan responsif seiring rencana mereka yang sedang berjalan. Sebagai contoh, pengembangan ASP.Net MVC dan ASP.Net Web API. Mereka tidak bergantung pada System.Web dll yang merupakan beban besar yang mereka rasakan sekarang saya pikir. Keuntungannya adalah kedua pengembangan perbaikan dapat diberikan pada waktu yang tepat dan siklus lebih cepat dari sebelumnya. Juga sekarang pengembang dapat menyebarkan aplikasi ini pada host OWIN kustom atau Katana, yang merupakan referensi implementasi OWIN.
Apa gunanya?
Microsoft telah merilis proyek yang merupakan host web berbasis OWIN ringan di atas IIS, yang disebut `Helios. Tujuannya adalah untuk menghindari hubungan ASP.NET/IIS dengan menyediakan beberapa komponen kecil independen yang dapat digunakan, diinstal, dan dikelola secara independen di web-host yang mengimplementasikan spesifikasi OWIN.
Salah satu alasan inti adalah faktor kinerja. Helios akan dapat mencapai throughput 2x-3x lebih banyak daripada aplikasi ASP.Net standar. Dalam hal konsumsi memori, Helios jauh lebih baik daripada System.Web dll. Dalam patokan yang diambil, arsitektur Helios memungkinkan aplikasi sampel untuk mencapai 50.000 permintaan bersamaan dengan overhead sekitar 1GB lebih sedikit dibandingkan dengan aplikasi ASP.Net standar.
sumber
OWIN adalah abstraksi antara aplikasi web dan platform hosting. Jika Anda menulis aplikasi web menggunakan OWIN Anda tidak terikat dengan IIS, Anda dapat menggunakan host lain jika mau.
Anda bertanya mengapa menggunakan OWIN daripada IIS, tetapi ini bukan alternatif satu sama lain. OWIN berada di antara IIS dan aplikasi Anda sehingga Anda dapat mematikan IIS tanpa menulis ulang aplikasi Anda.
Anda mungkin juga ingin memeriksa halaman ini https://github.com/Bikeman868/OwinFramework/wiki/OWIN
sumber