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
}
}
}
Vâng đúng vậy. OWIN là một giao diện và Katana là một triển khai giao diện OWIN của Microsoft . Do đó, chúng tôi nghe thấy 2 từ này (OWIN / KATANA) và nhiều lần chúng tôi bị nhầm lẫn giữa sự khác biệt giữa 2 thuật ngữ này. Vì vậy, Katana là triển khai giao diện OWIN của Microsoft. Giả sử có một công ty khác tên BIG-BOSS muốn tạo ra triển khai OWIN của riêng họ, họ có thể thực hiện điều đó và đặt tên cho việc triển khai của họ là 'BATANA' và quảng cáo các cụm từ như OWIN / BATANA.
Vậy, tại sao SỞ HỮU !!!
Hãy nghĩ về một đất nước nơi phương tiện duy nhất có sẵn để di chuyển là một chiếc xe tải. Không có gì khác. Nếu bạn muốn mua một chiếc xe, bạn sẽ mua xe tải. Chà, điều đó đã từng phục vụ tốt nhưng mọi người bắt đầu nhận ra rằng, họ không cần xe tải mọi lúc, đặc biệt là khi họ muốn đi xem phim hoặc mua sữa, lái một chiếc xe tải nặng không chỉ tốn nhiên liệu cao mà còn thêm căng thẳng khi lái xe. Nhưng vâng, nếu họ muốn chở nhiều đồ nặng, xe tải phục vụ mục đích rất tốt.
Sau đó, Chính phủ của nước đó đã đưa ra một đặc điểm kỹ thuật cho các nhà sản xuất xe. Thông số kỹ thuật như sau:
- Một chiếc xe cần phải có 4 bánh
- Một chiếc xe phải có tay lái.
- Một chiếc xe phải có đèn pha và đèn tín hiệu.
Vì vậy, dựa trên các thông số kỹ thuật này, bất kỳ ai cũng có thể chế tạo xe theo các nhu cầu khác nhau và họ có thể đặt tên cho chiếc xe của mình cho phù hợp. Do đó, Sedan, Pickup Truck, SUV, VAN, ..v.v .. tất cả các loại xe đã xuất hiện trên thị trường. Nếu ai đó không cần phải mang vác nặng mọi lúc, thay vào đó chỉ cần một chiếc xe để đi làm, anh ấy / cô ấy có thể mua một chiếc Sedan nhỏ. Ai đó có thể mua SUV nếu anh ta cần ít năng lượng hơn.
Dựa trên ví dụ trên, chúng ta có thể nói rằng ứng dụng Web ASP.NET của chúng tôi sử dụng System.Web hội được tải rất nhiều (như một chiếc xe tải) và nếu chúng tôi muốn tạo một Ứng dụng web nhỏ trong đó mục đích của chúng tôi chỉ là phục vụ một số tệp dựa trên trên một tập hợp nhỏ các yêu cầu, chúng tôi buộc phải sử dụng cụm System.Web (xe tải) nặng đó. Bây giờ, OWIN xuất hiện. OWIN là một tập hợp các đặc tả (chúng ta có thể gọi nó là giao diện) xác định Máy chủ. Dựa trên đặc điểm kỹ thuật đó, một người nào đó (như nhà sản xuất xe) có thể tạo ra nhiều loại máy chủ khác nhau dựa trên các vấn đề / nhu cầu ứng dụng cụ thể. Microsoft đã tạo Triển khai riêng cho OWIN có tên Katana theo cùng cách có thể phục vụ API Web. Vì WebAPI là một công nghệ trọng lượng nhẹ, không cần những thứ System.Web đầy đủ,
Bây giờ, nếu bạn hỏi, ' Tôi có cần nó không'? Câu trả lời là, 'Nó phụ thuộc vào nhu cầu thực hiện của bạn'. Nếu bạn không ngại lái xe tải của mình ngay cả khi đi xem phim, thì có lẽ bạn không cần SỞ HỮU. Nhưng nếu bạn cảm thấy rằng, một chiếc xe Sedan trọng lượng nhẹ là tất cả những gì bạn cần để lái trong một thành phố, khoảng cách nhỏ, xem phim..v.v .. vâng, bạn có thể kiểm tra những triển khai của OWIN có sẵn trên thị trường. Katana là một trong những triển khai của OWIN, do đó bạn có thể kiểm tra những gì Katana cung cấp. Không chỉ Katana, nếu bất kỳ công ty nào khác thực hiện OWIN theo Tên miền cụ thể (ví dụ: máy chủ cho Thiết bị y tế sẽ tải xuống thông tin thuốc mới nhất) và nếu bạn là bác sĩ, có lẽ, bạn có thể kiểm tra việc triển khai OWIN. Hơn nữa, bản thân bạn có thể tự tạo triển khai OWIN nhắm mục tiêu bất kỳ mục tiêu cụ thể nào.
Về mặt ứng dụng web, nếu bạn là nhà phát triển Web đơn giản, phát triển Trang web tùy chỉnh cho khách hàng của mình, có lẽ, bạn không cần phải lo lắng về việc triển khai tùy chỉnh OWIN, vì IIS sẽ phục vụ bạn một cách cân bằng. Nếu bạn xây dựng một dự án API Web, bạn sẽ có sẵn mẫu dựa trên Katana được tạo từ Visual Studio -> Dự án mới, do đó bạn sẽ không phải lo lắng về bất cứ điều gì ngoài việc học các kỹ thuật cụ thể của Katana. Tại thời điểm này, Katana chưa đủ trưởng thành để thay thế hoàn toàn nhu cầu về IIS cho ASP.NET MVC, nhưng có lẽ, trong tương lai nó sẽ như vậy.
Sau đó, khi nào tôi có thể cần phải viết Thực hiện RIÊNG của riêng mình?
Trả lời: Chẳng hạn, giả sử, bạn đã phát triển một ứng dụng Windows sẽ chạy như một máy chủ ở chế độ nền và lắng nghe số cổng XXXX. Máy chủ của bạn sẽ chỉ phản hồi một số nhóm Yêu cầu như thế này:
- NHẬN hàng tồn kho
- XÓA ID hàng tồn kho = 4
- PUT ID hàng tồn kho = 5
Đó là tất cả. Và không có gì khác. Vì vậy, tại sao bạn cần một máy chủ web IIS đầy đủ cho nhiệm vụ nhỏ này? Bạn có thể tạo triển khai OWIN của riêng bạn trong trường hợp đó. (Có lẽ, bạn sẽ sử dụng Katana cho điều đó)
Ok, vì vậy tôi hiểu rằng, nếu tôi muốn tạo một trang web ASP.NET MVC, tôi không có tùy chọn thay thế IIS, vậy tại sao tôi cần biết về Katana tại thời điểm này?
Trả lời: Mặc dù Katana chưa đủ chín chắn để thay thế nhu cầu của IIS để bạn có thể lưu trữ trang web ASP.NET MVC của mình trực tiếp trên Katana, nhưng Katana đã triển khai nhiều giao diện tuyệt vời của OWIN để bạn có thể tận dụng lợi thế của các tính năng đó bên cạnh. Ví dụ: cho phép người dùng của bạn đăng nhập bằng Facebook, Google, Twitter, v.v. Katana cung cấp cho bạn nhiều hook (như một kho trung gian) để bạn có thể để Katana chăm sóc Xác thực dựa trên Social Media bên ngoài một cách dễ dàng mà không cần viết mã hệ thống ống nước. Có nhiều lợi ích khác khi sử dụng Katana mà bạn có thể tìm ra khi bắt đầu sử dụng công nghệ này.