public interface OWIN
{
void ListenHttpCallAndServeWebPage();
}
namespace Microsoft.OWIN
{
public class Katana : OWIN
{
public void ListenHttpCallAndServeWebPage()
{
// listen to a port for HTTP call and serve web page
}
}
}
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:
- Kendaraan harus memiliki 4 roda
- Kendaraan harus memiliki kemudi.
- Kendaraan harus memiliki lampu utama dan lampu sinyal.
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:
- DAPATKAN Inventaris
- HAPUS ID Inventaris = 4
- ID Persediaan PUT = 5
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.