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
}
}
}
ใช่มันเป็นสิ่งที่ถูก. OWIN เป็นอินเตอร์เฟซและ Katana เป็นการดำเนินงานของอินเตอร์เฟซ OWIN โดยไมโครซอฟท์ ดังนั้นเราจึงได้ยินคำ 2 คำนี้ (OWIN / KATANA) ด้วยกันและหลายครั้งที่เราสับสนระหว่างความแตกต่างระหว่าง 2 คำนี้ ดังนั้น Katana คือการใช้งานอินเทอร์เฟซ OWIN ของ Microsoft สมมติว่ามีอีก บริษัท หนึ่งชื่อว่า BIG-BOSS ที่ต้องการสร้างการใช้งาน OWIN ของตัวเองพวกเขาสามารถทำสิ่งนั้นและตั้งชื่อการใช้งานเป็น 'BATANA' และโฆษณาวลีเช่น OWIN / BATANA
ดังนั้นทำไมต้องเป็นเจ้าของ !!!
นึกถึงประเทศที่มียานพาหนะเพียงคันเดียวสำหรับการเคลื่อนไหวคือรถบรรทุก ไม่มีอะไรอีกแล้ว. หากคุณต้องการซื้อรถยนต์คุณจะซื้อรถบรรทุก ดีที่เคยให้บริการดี แต่ผู้คนเริ่มตระหนักว่าพวกเขาไม่ต้องการรถบรรทุกตลอดเวลาโดยเฉพาะอย่างยิ่งเมื่อพวกเขาต้องการไปดูหนังหรือซื้อนมขับรถบรรทุกหนักไม่เพียง แต่ต้นทุนเชื้อเพลิงสูง แต่ยัง เพิ่มความเครียดในการขับขี่ แต่ใช่ถ้าพวกเขาต้องการที่จะบรรทุกของหนักจำนวนมาก
จากนั้นรัฐบาลของประเทศนั้นได้มีข้อกำหนดสำหรับผู้ผลิตรถยนต์ ข้อกำหนดดังต่อไปนี้:
- ยานพาหนะต้องมี 4 ล้อ
- ยานพาหนะจะต้องมีพวงมาลัย
- ยานพาหนะจะต้องมีไฟหน้าและไฟสัญญาณ
ดังนั้นตามข้อกำหนดเหล่านี้ทุกคนสามารถสร้างยานพาหนะตามความต้องการที่แตกต่างกันและพวกเขาสามารถตั้งชื่อยานพาหนะของพวกเขาตาม ดังนั้นรถซีดาน, รถกระบะ, SUV, VAN, และอื่น ๆ ยานพาหนะทุกชนิดปรากฏตัวในตลาด หากใครบางคนไม่จำเป็นต้องแบกของหนักตลอดเวลาแทนที่จะต้องการยานพาหนะเพียงเพื่อไปทำงานเขา / เธอสามารถซื้อรถซีดานตัวเล็ก ๆ ได้ ใครบางคนสามารถซื้อ SUV ได้ถ้าเขาต้องการพลังงานเพิ่มขึ้นเล็กน้อย
จากตัวอย่างข้างต้นเราสามารถพูดได้ว่าแอปพลิเคชั่น ASP.NET Web ของเราใช้แอสเซมบลี System.Web ซึ่งมีการโหลดจำนวนมาก (เช่นรถบรรทุก) และถ้าเราต้องการสร้างแอปพลิเคชันเว็บขนาดเล็กที่จุดประสงค์ของเรา ในชุดคำขอเล็ก ๆ น้อย ๆ เราต้องใช้ชุดประกอบ System.Web หนัก (รถบรรทุก) ตอนนี้ OWIN จะปรากฏขึ้น OWIN เป็นชุดข้อมูลจำเพาะ (เราสามารถเรียกมันว่าอินเตอร์เฟส) ที่กำหนดเซิร์ฟเวอร์ ตามข้อมูลจำเพาะนั้นบางคน (เช่นผู้ผลิตยานพาหนะ) สามารถสร้างเซิร์ฟเวอร์ประเภทต่างๆตามความต้องการของโดเมน / แอปพลิเคชัน Microsoft สร้าง Implementation ของตนเองสำหรับ OWIN ชื่อ Katana ด้วยวิธีเดียวกันกับที่ให้บริการ Web API เนื่องจาก WebAPI เป็นเทคโนโลยีที่มีน้ำหนักเบาซึ่งไม่จำเป็นต้องมีระบบเป่าเต็มสิ่งต่าง ๆ
ตอนนี้ถ้าคุณถามว่า ' ฉันต้องการมันไหม' คำตอบคือ 'ขึ้นอยู่กับความต้องการของคุณ' หากคุณไม่สนใจขับรถบรรทุกของคุณแม้จะไปดูภาพยนตร์คุณก็อาจไม่จำเป็นต้องใช้ OWIN แต่ถ้าคุณรู้สึกว่ารถซีดานน้ำหนักเบานั้นเป็นสิ่งที่คุณต้องขับในเมืองระยะทางเล็ก ๆ ดูหนัง .. ฯลฯ คุณอาจตรวจสอบการใช้งานของ OWIN ที่มีในตลาด Katana เป็นหนึ่งในการใช้งานของ OWIN ดังนั้นคุณสามารถตรวจสอบสิ่งที่ Katana เสนอ ไม่เพียง แต่ Katana หาก บริษัท อื่นดำเนิน OWIN ตามโดเมนเฉพาะ (เช่นเซิร์ฟเวอร์สำหรับอุปกรณ์การแพทย์ซึ่งจะดาวน์โหลดข้อมูลยาล่าสุด) และหากคุณเป็นแพทย์คุณสามารถตรวจสอบการใช้ OWIN นั้นได้ นอกจากนี้คุณเองสามารถสร้างการใช้งาน OWIN ของคุณเองเพื่อกำหนดกลุ่มเป้าหมายเฉพาะ
ในแง่ของเว็บแอพพลิเคชั่นหากคุณเป็นผู้พัฒนาเว็บอย่างง่ายพัฒนาเว็บไซต์ที่กำหนดเองสำหรับลูกค้าของคุณคุณไม่จำเป็นต้องกังวลเกี่ยวกับการใช้ OWIN แบบกำหนดเองเนื่องจาก IIS จะให้บริการคุณอย่างสมดุล หากคุณสร้างโครงการ Web API คุณจะได้รับแม่แบบ Katana ที่สร้างจาก Visual Studio -> โครงการใหม่ดังนั้นคุณจะไม่ต้องกังวลเกี่ยวกับสิ่งอื่นนอกจากเรียนรู้เทคนิคเฉพาะของ Katana ในขณะนี้ Katana ยังไม่โตพอที่จะแทนที่ความต้องการ IIS สำหรับ ASP.NET MVC ได้อย่างสมบูรณ์ แต่บางทีในอนาคตจะเป็นเช่นนั้น
เมื่อใดที่ฉันอาจต้องเขียนการใช้งาน OWIN ของตัวเอง
คำตอบ: ยกตัวอย่างเช่นคุณได้พัฒนาแอปพลิเคชั่น Windows ซึ่งควรทำงานเป็นเซิร์ฟเวอร์ในพื้นหลังและฟังหมายเลขพอร์ต XXXX เซิร์ฟเวอร์ของคุณจะตอบกลับคำขอบางชุดเช่นนี้:
- รับสินค้าคงคลัง
- ลบ ID คลังโฆษณา = 4
- PUT Inventory ID = 5
นั่นคือทั้งหมดที่ และไม่มีอะไรอื่น ดังนั้นทำไมคุณต้องใช้เว็บเซิร์ฟเวอร์ IIS แบบเต็มสำหรับงานเล็ก ๆ นี้ คุณสามารถสร้างการใช้งาน OWIN ของคุณเองในกรณีนั้น (บางทีคุณจะใช้ Katana สำหรับสิ่งนั้น)
ตกลงดังนั้นฉันเข้าใจว่าถ้าฉันต้องการสร้างเว็บไซต์ ASP.NET MVC ฉันไม่มีตัวเลือกในการแทนที่ IIS ดังนั้นทำไมฉันต้องรู้เกี่ยวกับ Katana ในตอนนี้
คำตอบ: แม้ว่า Katana จะไม่โตพอที่จะแทนที่ความต้องการของ IIS เพื่อให้คุณสามารถโฮสต์เว็บไซต์ ASP.NET MVC ของคุณได้โดยตรงบน Katana แต่ Katana ได้ใช้อินเทอร์เฟซแบบเย็นจำนวนมากของ OWIN เพื่อให้คุณสามารถใช้ประโยชน์จากด้านคุณลักษณะเหล่านั้น ข้างๆ. ตัวอย่างเช่นการอนุญาตให้ผู้ใช้ของคุณเข้าสู่ระบบโดยใช้ Facebook, Google, Twitter และอื่น ๆ ไม่ใช่เรื่องง่ายมาก่อน Katana มอบตะขอจำนวนมาก (เป็นเครื่องกลาง) เพื่อให้คุณสามารถปล่อยให้ Katana ดูแลการรับรองความถูกต้องจากสื่อสังคมออนไลน์ได้อย่างง่ายดายโดยไม่ต้องเขียนรหัสการประปา มีประโยชน์อื่น ๆ อีกมากมายสำหรับการใช้ Katana ที่คุณอาจพบเมื่อคุณเริ่มใช้เทคโนโลยีนี้