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
}
}
}
Evet bu doğru. OWIN bir arayüzdür ve Katana, Microsoft tarafından OWIN arayüzünün bir uygulamasıdır . Bu nedenle bu 2 kelimeyi (OWIN / KATANA) birlikte duyuyoruz ve çoğu zaman bu 2 terim arasındaki fark arasında karışıyoruz. Yani, Katana Microsoft'un OWIN arayüzünü uygulamasıdır. Kendi OWIN uygulamasını oluşturmak isteyen BIG-BOSS adında başka bir şirket olduğunu, bunu yapabilir ve uygulamalarını 'BATANA' olarak adlandırabilir ve OWIN / BATANA gibi ifadelerin reklamını yapabilirler.
Peki, neden OWIN !!!
Hareket için mevcut olan tek aracın bir kamyon olduğu bir ülke düşünün. Başka hiçbir şey. Bir araç satın almak istiyorsanız, kamyon satın alırsınız. Bu iyi hizmet ederdi, ancak insanlar her zaman kamyona ihtiyaç duymadıklarını fark ettiler, özellikle de bir film izlemek veya süt almak istediklerinde, ağır bir kamyonu sürmek sadece yüksek yakıt maliyeti değil, aynı zamanda sürüşe stres katmak. Ancak evet, çok fazla ağır eşya taşımak istiyorlarsa, kamyon amaca çok iyi hizmet eder.
Ardından, o ülkenin Hükümeti araç üreticileri için bir şartname hazırladı. Şartname aşağıdaki gibidir:
- Bir aracın 4 tekerleği olmalıdır
- Bir araçta direksiyon bulunmalıdır.
- Bir araçta far ve sinyal lambaları bulunmalıdır.
Bu nedenle, bu özelliklere dayanarak, herkes farklı ihtiyaçlara göre araç yapabilir ve araçlarını buna göre adlandırabilir. Bu nedenle Sedan, Kamyonet, SUV, VAN, ..etc .. pazarda her türlü araç ortaya çıktı. Birinin her zaman ağır eşya taşımasına gerek yoksa, sadece işyerine gitmek için bir araca ihtiyacı varsa, küçük bir Sedan satın alabilir. Birisi biraz daha fazla güce ihtiyaç duyarsa SUV satın alabilir.
Yukarıdaki örneğe dayanarak, ASP.NET Web uygulamamızın ağır yüklü (kamyon gibi) System.Web Montajı kullandığını ve amacımızın sadece bazı dosyalara hizmet etmek olduğu küçük bir Web Uygulaması yapmak istiyorsak söyleyebiliriz biraz istek üzerine, bu ağır System.Web montajını (kamyon) kullanmak zorundayız. Şimdi, OWIN ortaya çıkıyor. OWIN, bir Sunucuyu tanımlayan bir dizi özelliktir (buna arabirim diyebiliriz). Bu spesifikasyona dayanarak, birisi (araç üreticisi gibi) belirli sorun alanlarına / uygulama ihtiyaçlarına göre çeşitli türlerde sunucular oluşturabilir. Microsoft, Web API sunabilecek şekilde Katana adlı OWIN için kendi Uygulamalarını yarattı. WebAPI, tam üflemeli sisteme ihtiyaç duymayan hafif bir teknoloji olduğundan.
Şimdi, ' İhtiyacım var mı?'? Cevap 'Performans ihtiyacınıza bağlıdır'. Bir film izlemek için bile kamyonunuzu sürmenin sakıncası yoksa, belki de OWIN'a ihtiyacınız yoktur. Ama bir şehir içinde sürmek için ihtiyacınız olan tek şey hafif bir Sedan araba, küçük mesafe, film izlemek .. vb .. evet, OWIN piyasada hangi uygulamaları mevcut kontrol edebilirsiniz. Katana, OWIN uygulamalarından biridir, bu nedenle Katana'nın neler sunduğunu kontrol edebilirsiniz. Sadece Katana değil, başka bir şirket OWIN'i belirli Etki Alanına göre (örneğin, en son ilaç bilgilerini indirecek Tıbbi Cihazlar için bir sunucu) uygularsa ve bir doktor iseniz, belki de OWIN'in uygulanmasını kontrol edebilirsiniz. Dahası, herhangi bir nişi hedefleyen kendi OWIN uygulamasını kendiniz oluşturabilirsiniz.
Web uygulamaları açısından, basit bir Web geliştiricisiyseniz, istemcileriniz için özel Web Siteleri geliştirebilirsiniz, belki de OWIN'lerin özel uygulaması hakkında endişelenmenize gerek yoktur, çünkü IIS size dengeli bir şekilde hizmet edecektir. Bir Web API projesi oluşturursanız, Katana tabanlı şablonu Visual Studio -> Yeni Proje'den hazır hale getireceksiniz, böylece Katana'ya özgü teknikleri öğrenmek dışında hiçbir şey için endişelenmenize gerek kalmayacak. Şu anda Katana, ASP.NET MVC için IIS ihtiyacının tamamen yerini alacak kadar olgun değil, belki de gelecekte olacak.
O zaman kendi OWIN Uygulamamı ne zaman yazmam gerekebilir?
Yanıt: Örneğin, arka planda sunucu olarak çalışması ve XXXX bağlantı noktası numarasını dinlemesi gereken bir Windows uygulaması geliştirdiğinizi varsayalım. Sunucunuz yalnızca aşağıdaki gibi bazı İsteklere yanıt verir:
- Envanter AL
- Envanter Kimliği SİL = 4
- PUT Envanter Kimliği = 5
Bu kadar. Ve başka hiçbir şey. Peki, bu küçük görev için neden tam bir IIS web sunucusuna ihtiyacınız var? Bu durumda kendi OWIN uygulamanızı oluşturabilirsiniz. (Belki de bunun için Katana'yı kullanacaksın)
Tamam, bu yüzden anladım, eğer bir ASP.NET MVC web sitesi yapmak istiyorsanız, IIS değiştirme seçeneğim yok, o zaman neden şu anda Katana hakkında bilmem gerekiyor?
Yanıt: Katana, IIS ihtiyacını değiştirmek için yeterince olgun olmasa da, ASP.NET MVC web sitenizi doğrudan Katana'da barındırabilmeniz için, ancak Katana, bu özellikler tarafını kullanma avantajından yararlanabilmeniz için birçok serin OWIN arabirimi uygulamıştır. yan. Örneğin, kullanıcılarınızın Facebook, Google, Twitter vb. Kullanarak giriş yapmalarına izin vermek daha önce kolay değildi. Katana size birçok kanca (orta eşya olarak) verir, böylece Katana'nın sıhhi tesisat kodu yazmadan harici Sosyal Medya Tabanlı Kimlik Doğrulaması'na kolayca bakmasına izin verebilirsiniz. Bu teknolojiyi kullanmaya başladığınızda öğrenebileceğiniz Katana'yı kullanmanın başka birçok avantajı vardır.